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

Часовой пояс: 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 часа


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

Сейчас этот форум просматривают: нет зарегистрированных пользователей


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

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