Начиная с версии Netweaver 04 SAP предоставляет разработчикам новую модель для построения ALV таблиц. Новая модель описывается классами семейства CL_SALV*.
Основные преимущества новой модели:
- Благодаря проработанной объектно-ориентированной модели обеспечивается легкость программирования
- Данная модель позволяет с помощью одного единственного класса управлять всем макетом отчёта (настраивать фильтры, сортировки, форматы и пр.)
Главный недостаток данной модели:
- невозможность использования для ввода данных (скорее всего данное ограничение будет снято в будущем)
Основные классы используемые в новой модели:
- Обычная ALV таблица — CL_SALV_TABLE
- Таблица с иерархическим представлением — CL_SALV_HIERSEQU_TABLE
- Древовидное представление — CL_SALV_TREE
Все классы имеют статический (фабричный) метод, который по входящим данным создает экземпляр ALV объекта. Как правило в качестве входящих данных используется внутренняя таблица, по которой автоматически, без создания каталога полей (в старой модели и функциональной модели) строится ALV таблица.
Простейший пример создания ALV отчёта:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 |
REPORT ZALV_SIMPLE. DATA: gt_data TYPE spfli_tab, " Таблица с данными go_alv TYPE REF TO cl_salv_table. START-OF-SELECTION. SELECT * FROM spfli INTO CORRESPONDING FIELDS OF TABLE gt_data. " Фабричный метод возвращяет экзмепляр ALV объекта TRY. cl_salv_table=>factory( IMPORTING r_salv_table = go_alv CHANGING t_table = gt_data ). CATCH cx_salv_msg . MESSAGE 'Ошибка при создании ALV' TYPE 'E'. ENDTRY. " Отобразить ALV представление go_alv->display( ). |
Дерево SALV классов: