REUSE_ALV_FIELDCATALOG_MERGE – крик души

Пожалуйста, прекратите использовать это г***о, нормально этот ФМ никогда не работал и уже не будет работать.
Проблемы:

  1. Ошибка при наличии слишком длинной строки 72 символа в ПРОГРАММЕ. ПРОГРАММЕ, КАРЛ!!!;
  2. Не возможность использования локальных типов, а если их нельзя использовать, то и смысла нет в применении именно этого ФМ;
  3. Проблема со старыми записями в буфере ALV, т.е. если вы изменили структуру иногда необходимо сбросить буфер при помощи программ
    BALVBUFDEL или BCALV_BUFFER_DEL_SHARED. 

Если вы думаете, что использование данного ФМ экономит время разработки - то это не так. Позже начинаются танцы с бубном при переименовании полей, например.
Был случай с тем, что просто перестал искать структуру в INCLUDE и помогло только указание имени программы в параметр i_inclname.
Гораздо проще и удобнее, создать структуру в словаре и строить каталог полей при помощи ФМ LVC_FIELDCATALOG_MERGE

Если не прав, жду ваших замечаний

ABAP радиокнопки. Скрыть отобразить поля по нажатию. Пример.

 

 

Средство поиска для выбора варианта отображения ALV

 

LEFT JOIN and WHERE . ABAP SQL

В новом синтаксисе ABAP SQL  появилась возможность прописывать условия для таблиц LEFT JOIN  в WHERE.

Однако есть существенное отличие между условием прописанным после ON  и в условии WHERE.

Читать далее «LEFT JOIN and WHERE . ABAP SQL»

BADI. Поиск и использование

Business Add-Ins

User-Exits позволяют клиентам прикрепить дополнительный код для стандартных SAP исходный код без необходимости изменения исходного объекта. Business Add-Ins SAP методика расширений, основанная на ABAP Objects.

Служат для того, чтобы вносить модификацию в алгоритм обработки объекта и свести к минимуму работы при обновлении системы.

Основным преимуществом данной концепции является возможность повторного использования. BAdI может быть реализован несколько раз.

Читать далее «BADI. Поиск и использование»

ЛБД PNPCE пропускает табельный

Бывает, что табельный номер не попадает в выборку  события GET pernr. Одна из причин - нехватка полномочий на один из инфо-типов или даже подтипов. Если у нас нет возможности добавить полномочий пользователю, можно использовать макрос  pnp_sw_skip_pernr = N. Табельный номер не будет пропущен, но данные выберутся только из подтипов на которые есть полномочия.

Добавление нового поля в таблицу с записями.

В результате тестирования разработки оказалось, что при выборке из Z* таблицы выбираются не все значения.
В таблице у нас находятся 15 записей. В se11 мы видим, что у пяти записей в поле del_flag = 'X', у десяти del_flag пустой.

Далее выполняем три запроса к таблице:

В результате имеем: все 15 записей в таблице lt_table_1, 5 записей с del_flag = 'X' в таблице lt_table_2 и ТОЛЬКО 5 записей в таблице lt_table_3 с del_flag 'X'. Куда же делись еще 5 записей, которые должны были выбраться в таблицу ls_table_3 ?

Читать далее «Добавление нового поля в таблицу с записями.»

ALV – FULLSCREEN

Если необходимо вывести ALV на полный экран, то не надо создавать контейнер на экране, из-за возможных проблем с отображением на экранах с различным расширением. Нужно просто записать:

 

cl_gui_alv_grid – текстовая шапка

При необходимости добавить информацию перед таблицей cl_gui_alv_grid, может возникнуть вопрос как это сделать, т.к. Непосредственно сам класс, нам это не позволяет. В общем случае алгоритм точно такой же как и при выводе нескольких ALV в одном контейнере. Только вместо одной из таблиц мы будем выводить текст.

Читать далее «cl_gui_alv_grid – текстовая шапка»

Добавление записей в таблицу без запроса на перенос

Для того чтобы добавлять/удалять/редактировать записи без требований положить их в запрос, мало указать Класс поставки "А", необходимо при генерации ракурса сделать еще несколько настроек.

Читать далее «Добавление записей в таблицу без запроса на перенос»