Текущее время: Вс, июл 20 2025, 14:56

Часовой пояс: UTC + 3 часа


Правила форума


ВНИМАНИЕ!

Вопросы по SAP Query и Quick View - сюда



Начать новую тему Ответить на тему  [ Сообщений: 16 ]  На страницу 1, 2  След.
Автор Сообщение
 Заголовок сообщения: Создание доп. поле в инфо-наборе
СообщениеДобавлено: Вт, авг 23 2011, 17:12 
Специалист
Специалист
Аватара пользователя

Зарегистрирован:
Пн, июл 03 2006, 18:18
Сообщения: 241
Пол: Женский
Добрый день,

Подскажите какую формулу прописать в кодировке доп. поля , если необходимо определить разницу между двумя строками в одной таблице CKMLKEPH:

Изображение


Принять этот ответ
Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Создание доп. поле в инфо-наборе
СообщениеДобавлено: Пн, сен 26 2011, 18:50 
Специалист
Специалист
Аватара пользователя

Зарегистрирован:
Пн, июл 03 2006, 18:18
Сообщения: 241
Пол: Женский
Подскажите возможно ли выводить в квери отчет информацию о разнице между двумя строчками ?


Принять этот ответ
Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Создание доп. поле в инфо-наборе
СообщениеДобавлено: Вт, сен 27 2011, 09:18 
Начинающий
Начинающий

Зарегистрирован:
Пн, авг 22 2011, 15:47
Сообщения: 19
Откуда: Москва
Пол: Мужской
Привет!
Я бы попробовал следующий вариант:
1)Зайти в запрос ( транзакция SQ01)
2)Два раза нажать F6 ( перейти на экран "поля")
3)Обработать -->Кратикие названия --> Включить
4)Прописать краткое название для полей с которыми необхдимо выполнить действие ( например POLE1 и POLE2)
5)Создать локальное поле ( Обработать--> Локальное поле-->Создать)
6)В локальном поле прописать формулу ( например =POLE1-POLE2)
Думаю у Вас все получится.
7) Дальше в основных данных не забудьте поставить крыжик, чтобы созданное локальное поле выводилось в отчет.

P.S Предложенный вариант подходит для запроса созданного через SQ01,SQ02,SQ03, а не в SQVI.


Принять этот ответ
Вернуться к началу
 Профиль Отправить email  
 
 Заголовок сообщения: Re: Создание доп. поле в инфо-наборе
СообщениеДобавлено: Вт, сен 27 2011, 11:45 
Гуру-эксперт
Гуру-эксперт
Аватара пользователя

Зарегистрирован:
Чт, ноя 11 2004, 16:25
Сообщения: 3109
Пол: Мужской
to Tumma, это получается вычисляемое поле на уровне строки? ТС-у нужно вычислить разницу между двумя строками, хотя тут тоже вопрос к автору, что именно он хочет вычислять и куда результат записывать, логически как то не сходится... Или я чего то не допонимаю.


Принять этот ответ
Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Создание доп. поле в инфо-наборе
СообщениеДобавлено: Вт, сен 27 2011, 12:57 
Начинающий
Начинающий

Зарегистрирован:
Пн, авг 22 2011, 15:47
Сообщения: 19
Откуда: Москва
Пол: Мужской
Разница между двумя столбцами в одной строке
A / B / C
40 10 30
( которым мы присвоим краткие наименования и затем пропишем в формуле для локального поля), будет выводится в локальном поле для каждой строчки.
Т.е A1-B1=C1 , где C - локальное поле, A и B поля по которым нужна разница.
В данном случае как я понял ТС интерсует именно это ;)


Принять этот ответ
Вернуться к началу
 Профиль Отправить email  
 
 Заголовок сообщения: Re: Создание доп. поле в инфо-наборе
СообщениеДобавлено: Вт, сен 27 2011, 13:09 
Гуру-эксперт
Гуру-эксперт

Зарегистрирован:
Вт, сен 07 2004, 17:47
Сообщения: 2988
Tumma написал:
Разница между двумя строками ( которым мы присвоим краткие наименования и затем пропишем в формуле для локального поля),
И каким же образом Вы присваиваете СТРОКАМ(они же записи) краткие наименования?
Если согласно Вашему же описанию в 4) там задаются поля?
Цитата:
будет выводится в локальном поле для каждой строчки. В данном случае как я понял ТС интерсует именно это ;)

Я думаю автору нужно получить, например для поля KST001 = -10000 - ( -9500 ) = - 500

_________________
"После" - не значит "вследствие"


Принять этот ответ
Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Создание доп. поле в инфо-наборе
СообщениеДобавлено: Вт, сен 27 2011, 13:50 
Начинающий
Начинающий

Зарегистрирован:
Пн, авг 22 2011, 15:47
Сообщения: 19
Откуда: Москва
Пол: Мужской
Я имею в виду следующее:
Если ТС необходимо получить например KST001 - KST002 = X, то

KST001 - присвоить краткое наименование - POLE1
KST002 - присвоить краткое наименование - POLE2

X - созданное локальное поле в котором прописана формула для разницы полей
POLE1-POLE2 например.
В query отчете будет выводится столбец X в котором будет результат POLE1-POLE2 для каждой строчки, т.е KST001-KST002.

Если ТС, хочет получить разность именно между строчками, то тогда, я бы попробовал сделать псевдоним таблицы, сделать join с исходной таблицей и получить требуемые поля для расчета не в две строчки а в одну, затем произвести действия описанные выше.


Принять этот ответ
Вернуться к началу
 Профиль Отправить email  
 
 Заголовок сообщения: Re: Создание доп. поле в инфо-наборе
СообщениеДобавлено: Вт, сен 27 2011, 14:54 
Гуру-эксперт
Гуру-эксперт

Зарегистрирован:
Вт, сен 07 2004, 17:47
Сообщения: 2988
Tumma написал:
Если ТС, хочет получить разность именно между строчками, то тогда, я бы попробовал сделать псевдоним таблицы, сделать join с исходной таблицей и получить требуемые поля для расчета не в две строчки а в одну, затем произвести действия описанные выше.

А как можно сделать join со сдвигом строки?

_________________
"После" - не значит "вследствие"


Принять этот ответ
Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Создание доп. поле в инфо-наборе
СообщениеДобавлено: Вт, сен 27 2011, 15:11 
Начинающий
Начинающий

Зарегистрирован:
Пн, авг 22 2011, 15:47
Сообщения: 19
Откуда: Москва
Пол: Мужской
Например:
Делаем из таблицы CKMLKEPH псевдоним, назовем его CKMLKEPH1.
Делаем join этих таблиц по ключу KALNR, для CKMLKERPH ставим условие KKZST = " ", для таблицы CKMLKERPH1 ставим условие KKZST = "X". В отчет выводим
KALNR / KST001 ( из CKMLKERPH) / KST001 ( из CKMLKERPH1).
Исходя из условий для основной таблицы и для таблицы псевдонима получим значения KST001 в одной строчке. Данный join я привел в качестве примера, как вывести KST001 из 2 строчек в 1 строку. ТС нужно определить логику по которой записи в строчках различаются и опираясь на нее вывести данные в одну строку.

P.S При условии что логика, по которой различаются строчки является константой и не является плавающей.


Принять этот ответ
Вернуться к началу
 Профиль Отправить email  
 
 Заголовок сообщения: Re: Создание доп. поле в инфо-наборе
СообщениеДобавлено: Ср, сен 28 2011, 22:30 
Специалист
Специалист
Аватара пользователя

Зарегистрирован:
Пн, июл 03 2006, 18:18
Сообщения: 241
Пол: Женский
sy-uname написал(а):
Tumma написал:
Разница между двумя строками ( которым мы присвоим краткие наименования и затем пропишем в формуле для локального поля),
И каким же образом Вы присваиваете СТРОКАМ(они же записи) краткие наименования?
Если согласно Вашему же описанию в 4) там задаются поля?
Цитата:
будет выводится в локальном поле для каждой строчки. В данном случае как я понял ТС интерсует именно это ;)

Я думаю автору нужно получить, например для поля KST001 = -10000 - ( -9500 ) = - 500


sy-uname вы правильно заметили нужно как раз разница между строками и так по каждому KST00х

KST001 = -10000 - ( -9500 ) = - 500


Принять этот ответ
Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Создание доп. поле в инфо-наборе
СообщениеДобавлено: Ср, сен 28 2011, 23:03 
Специалист
Специалист
Аватара пользователя

Зарегистрирован:
Пн, июл 03 2006, 18:18
Сообщения: 241
Пол: Женский
Tumma написал:
Например:
Делаем из таблицы CKMLKEPH псевдоним, назовем его CKMLKEPH1.
Делаем join этих таблиц по ключу KALNR, для CKMLKERPH ставим условие KKZST = " ", для таблицы CKMLKERPH1 ставим условие KKZST = "X". В отчет выводим
KALNR / KST001 ( из CKMLKERPH) / KST001 ( из CKMLKERPH1).
Исходя из условий для основной таблицы и для таблицы псевдонима получим значения KST001 в одной строчке. Данный join я привел в качестве примера, как вывести KST001 из 2 строчек в 1 строку. ТС нужно определить логику по которой записи в строчках различаются и опираясь на нее вывести данные в одну строку.

P.S При условии что логика, по которой различаются строчки является константой и не является плавающей.


Создала псевдотаблицу CKMLKEPH1, соединила ее с CKMLKEPH по ключу KALNR. А дальше не совсем поняла что делать.
Можете написать где указывается условие KKZST = " "? Это где-то в кодировке ?


Принять этот ответ
Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Создание доп. поле в инфо-наборе
СообщениеДобавлено: Чт, сен 29 2011, 09:09 
Начинающий
Начинающий

Зарегистрирован:
Пн, авг 22 2011, 15:47
Сообщения: 19
Откуда: Москва
Пол: Мужской
Условие для поля KZST можно указывать на экране выбора,( можно создать вариант например, чтобы не прописывать каждый раз). И еще логику относительно KZST я написал исключительно опираясь на скриншот, если признак второй строчки постоянный по полю KZST то все будет ок.


Принять этот ответ
Вернуться к началу
 Профиль Отправить email  
 
 Заголовок сообщения: Re: Создание доп. поле в инфо-наборе
СообщениеДобавлено: Пт, окт 21 2011, 16:45 
Специалист
Специалист
Аватара пользователя

Зарегистрирован:
Пн, июл 03 2006, 18:18
Сообщения: 241
Пол: Женский
Tumma написал:
Условие для поля KZST можно указывать на экране выбора,( можно создать вариант например, чтобы не прописывать каждый раз). И еще логику относительно KZST я написал исключительно опираясь на скриншот, если признак второй строчки постоянный по полю KZST то все будет ок.


Разница не выводится :(


Принять этот ответ
Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Создание доп. поле в инфо-наборе
СообщениеДобавлено: Пн, ноя 07 2011, 21:57 
Президент
Президент

Зарегистрирован:
Пт, апр 28 2006, 22:39
Сообщения: 2514
Откуда: North Taxolina, USA
Пол: Женский
Как Tumma правильно заметил(а), надо прежде всего определиться с критериями. Опять же предполагая, что нужно определить разницу между двумя конкретными записями на скриншоте, это можно решить с помощью дополнительного вычисляемого поля в infoset.

Добавляете в infoset таблицу CKMLKERPH. Критерием для выборки должно быть поле, которое даст результат либо всегда либо хотя бы в большинстве случаев. Например, KKZST = "". Как уже правильно рекомендовали, это поле выводится на selection screen и делается постоянным/скрывается с помощью варианта.

Далее с помощью кнопки Extras, добавляется новое поле (Create -> Additional field). Этому полю на той же закладке присваивается ABAP код. В коде пишете SELECT и производите все вычисления какие надо. Преимущество этого решения в несколько большей гибкости. Кроме того, если, например, запись только одна (т.е. нет KKZST = "X"), то это не проблема (в решении уважаемого(-й) Tumma понадобится как минимум Left Join, что налагает определенные ограничения). Минусы (кроме всяческих допущений) - более низкая производительность. Код будет вставлен внутрь большого SELECT... ENDSELECT и будет, соответственно, выполняться для каждой записи. Но т.к. здесь выборка делается по ключу, то возможно прокатит.

_________________
"One of the symptoms of an approaching nervous breakdown is the belief that one's work is terribly important." Bertrand Russell


Принять этот ответ
Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Создание доп. поле в инфо-наборе
СообщениеДобавлено: Пт, ноя 25 2011, 11:53 
Специалист
Специалист
Аватара пользователя

Зарегистрирован:
Пн, июл 03 2006, 18:18
Сообщения: 241
Пол: Женский
Спасибо за оказанную помощь, получилось, конечно пришлось не один ключ (kkzst)указывать.


Принять этот ответ
Вернуться к началу
 Профиль  
 
Показать сообщения за:  Поле сортировки  
Начать новую тему Ответить на тему  [ Сообщений: 16 ]  На страницу 1, 2  След.

Часовой пояс: UTC + 3 часа


Кто сейчас на конференции

Сейчас этот форум просматривают: Yandex [Bot]


Вы не можете начинать темы
Вы не можете отвечать на сообщения
Вы не можете редактировать свои сообщения
Вы не можете удалять свои сообщения
Вы не можете добавлять вложения

Найти:
Перейти:  
cron
Powered by phpBB © 2000, 2002, 2005, 2007 phpBB Group
Русская поддержка phpBB