Убрать двойные полосы прокрутки у АЛВ

При создании экрана может произойти задвоение полос прокрутки. Или же наоборот, целевая область будет непропорционально мала.

Для примера создадим экран следующего вида:

При этом если ваш монитор мал, можно увидеть следующую ситуацию:

Отобразилось по одной полосе прокрутки для каждого элемента. На большом экране, наоборот, элементы могут занимать только малу часть экрана.

Читать далее «Убрать двойные полосы прокрутки у АЛВ»

Изменить поведение стандартной кнопки в ALV GRID

Частенько у консультанта возникает желание сделать так, чтобы кнопка была стандартная и располагалась на своем обычном месте, но реакция на нажатие была несколько другоя. Особенно часто это касается кнопки выгрузки, то формуляр нужен немного другой, то какую-то постобработкку сделать и т.д. Для таких целей можно использовать событие before_user_command
Демо пример:
Читать далее «Изменить поведение стандартной кнопки в ALV GRID»

ALV редактирование\запрет редактирования отдельной ячейки

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

Читать далее «ALV редактирование\запрет редактирования отдельной ячейки»

cl_reca_gui_f4_popup – класс для создания справки

cl_reca_gui_f4_popup -   класс обертка позволяющая  быстро выводить средство поиска. Можно использовать как один из вариантов для f4

 

cl_salv_table – быстрый вывод ALV

Для быстрого вывода ALV, например для  произвольного справочника, можем использовать класс cl_salv_table. Очень удобно и быстро.

Пример:

 

REUSE_ALV_FIELDCATALOG_MERGE – крик души

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

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

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

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

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

 

ALV – FULLSCREEN

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

 

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

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

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

Ошибка при экспорте данных в XLSX из ALV

При выгрузке данных стандартным функционалом ALV возникла ошибка Удаленный компонент: часть/xi/sharedStrings.xml

32461e5e-9472-4373-ad9f-d924eddf952d

Оказывается, проблема была в спецсимволах в строках для вывода. В нашем случае, ALV не понравилась решетка #. Решение на май 2018 только одно - удалить спецсимволы или попытаться выгрузить в другой формат.