SAPфорум.RU
https://sapboard.ru/forum/

ФМ для получения значения признака классификации поставщика
https://sapboard.ru/forum/viewtopic.php?f=13&t=99316
Страница 2 из 2

Автор:  LKU [ Сб, фев 06 2021, 18:49 ]
Заголовок сообщения:  Re: ФМ для получения значения признака классификации поставщика

Еще важный момент именно для sap query: после изменения кодировки отчет не станет работать по-новому если вы просто запустите его по имени через se38.
Как минимум первый раз его надо запускать через интерфейс sq01.

Автор:  Yozhhhhh [ Вс, фев 07 2021, 16:31 ]
Заголовок сообщения:  Re: ФМ для получения значения признака классификации поставщика

фыв
LKU написал:
Еще важный момент именно для sap query: после изменения кодировки отчет не станет работать по-новому если вы просто запустите его по имени через se38.
Как минимум первый раз его надо запускать через интерфейс sq01.

Есть такая фича, изрядно бесит.
Но можно, кстати, не запускать до полного выполнения. А просто выбрать пункт меню запрос - другие функции - сгенерировать программу.
Вообще неплохо бы разработать такую тулзу, которая сама будет искать все запросы с измененным инфонабором и автоматически их перегенерировать. Например, кнопульку заэнхансить в SQ02 :D Ну а шо, ведь польза очевидна!

А теперь еще один самый великолепный прикол, LKU.
Если в одном режиме открыт SQ01 (на первом экране с просмотром списка запросов, то есть не внутри запроса), а во втором режиме внесены изменения в инфонабор в SQ02, то логика подсказывает перейти в режим с SQ01 и либо запустить запрос (по твоему методу) для перегенерации, либо сгенерировать программу (по моему методу). Казалось бы, мы просто в списке запросов, не внутри него (иначе еще хоть как-то можно было бы объяснить баг). Но ничего не перегенерируется. Нужно обязательно ВЫЙТИ из SQ01 вообще, до дерева меню в сапе. И потом снова ее запустить. Кто хочет, может проверить :D

Автор:  riki11 [ Пн, фев 08 2021, 11:58 ]
Заголовок сообщения:  Re: ФМ для получения значения признака классификации поставщика

Программу сгенерировал в SQ01, ошибка осталась таже, выводит значение всем поставщикам в новом поле и прописывает им аналогичный признак.
Подскажите пожалуйста, может есть смысл в селекте условие прописать? Если не сложно подскажите как это правильно вставить в код.

Автор:  Yozhhhhh [ Пн, фев 08 2021, 16:06 ]
Заголовок сообщения:  Re: ФМ для получения значения признака классификации поставщика

Вы где всю эту кодировку выполнили? Я имею в виду пункт по кнопке "Кодировка". Чтобы это работало для каждой записи, это надо делать в обработке записей. Ну и, конечно же, чистить обязательно на каждом прогоне.

В самом простом виде это работает следующим образом.
1. Новые столбцы заводятся на кнопке ДопИнфо.
2. Каждый заведенный столбец будущего отчета не нуждается в объявлении в блоке DATA, система его сама объявит.
3. Все необходимые прочие объекты объявляются в DATA.
4. В START-OF-SELECTION можно подготовить некоторые массивные объемные вещи, которые требуют долгой выборки. Чтобы не повторять их каждый раз в блоке "обработка записей". Например, в DATA объявить таблицу, в старте нашпиговать ее выборкой. Отсортировать и пр. В обработке уже применять read table или через loop с exit (если, например, таблица с ключом сортировки по компонентам).
5. Обработку столбцов, заведенных как доп признаки, делать в блоке "обработка записей". В сгенерированной программе эффект будет таким, что логика этого блока будет применена к каждой записи выборки. Тут же можно даже чекать всякие условия и делать exit. Это будет равносильно вылетанию записи как при ЛБД. То есть ее не будет в отчете. Удобно.
6. Новые столбцы на каждой итерации в блоке "обработка записей" обязательно ЧИСТИТЬ. Потому что это будет глобальная переменная. Однажды будучи присвоенной, она будет повторяться, если, например, для следующей записи признак не найден. Он останется прежним и сядет в столбец.
7. Все новые признаки нацепить на группу полей в SQ02, чтобы выводить их в отчете или использовать на селекционном экране.

Я очень бегло ваш код посмотрел, поэтому я лишь предположу, что вы не там кодировку навесили. Или вы забыли их чистить.
По-хорошему описанное в пунктах 1-7 100% даст результат.

Автор:  riki11 [ Вт, фев 09 2021, 11:45 ]
Заголовок сообщения:  Re: ФМ для получения значения признака классификации поставщика

Кодировку я выполнил в самом поле "Кодировке для доп.поля" во вкладке ДопИнформация
Изображение
Получается, мне нужно все это сделать как вы говорите, только во вкладке "Кодировка" и заполнить правильно, я так никогда если честно не делал, сразу в поле все писал.

Автор:  Yozhhhhh [ Вт, фев 09 2021, 22:57 ]
Заголовок сообщения:  Re: ФМ для получения значения признака классификации поставщика

Мне привычнее просто так. Я описал подход, который сам применяю.
После объявления доп. поля оно становится автоматически доступным в обработке записей, его даже объявлять не нужно.
Я обычно просто чищу его в самом начале и дальше применяю логику.
Попробуйте так. Если будет работать, то и вопрос будет решен.

Страница 2 из 2 Часовой пояс: UTC + 3 часа
Powered by phpBB © 2000, 2002, 2005, 2007 phpBB Group
http://www.phpbb.com/