Читайте также: |
|
Этот метод следует вызывать только в тех случаях, когда необходимо загрузить изменившееся содержимое таблицы для обновления находящегося на экране управляющего элемента сетки при повторной обработке экрана.
Рисунок 213: Создание элемента экрана "Область специального управляющего элемента"
1. В графическом редакторе форматов можно определить область управляющего элемента экрана. Для этого нажмите кнопку Специальный управляющий элемент в строке инструментов. После этого выберите элемент, укажите размер и позицию области на экране следующим образом:
Щелкните по той точке области обработки, в которой необходимо разместить верхний левый угол специального управляющего элемента, и не отпускайте кнопку мыши. Перетащите курсор по диагонали вниз
и вправо до той точки, в которой должен находиться нижний правый угол. После отпускания кнопки мыши положение нижнего правого угла фиксируется.
Введите новое имя для элемента экрана (в данном случае
CONTAINER_1).
Определите, должен ли изменяться размер области специального управляющего элемента при изменении размера основного экрана, посредством параметров Изменение размера по вертикали и Изменение
Продолжение на следующей странице
размера по горизонтали. При установке этих атрибутов можно также установить минимальные значения для области посредством дополнительных атрибутов Мин. число строк и Мин. число столбцов.
Рисунок 214: Определение ссылочных переменных
2. В ABAP-программе обязательными являются две ссылочные переменные:
• ссылочная переменная, которая должна указывать на еще не созданную инстанцию контейнера (имя: CONTAINER_R);
• ссылочная переменная, которая должна указывать на еще не созданную инстанцию управляющего элемента сетки (имя: GRID_R).
Продолжение на следующей странице
3. Создание инстанций выполняется посредством оператора CREATE OBJECT. Этот оператор должен размещаться в исходном тексте путем его генерации во избежание ошибок и пропусков при вводе. Для этого выведите список объектов соответствующего класса в области навигации навигатора по объектам и перетащите имя класса в исходный текст.
В созданном вызове необходимо указать имя ссылочной переменной для xxxxxxxx и задать значения параметров. Синтаксис вызова очень похож на синтаксис функционального модуля. Однако параметры, которым необходимо присвоить значения посредством оператора CREATE OBJECT, являются интерфейсными параметрами соответствующего конструктора.
Создание инстанций управляющих элементов обязательно осуществляется перед выводом экрана. Эта операция часто выполняется в PBO-модуле.
Создание инстанций управляющих элементов для экрана выполняется только один раз. Это означает, что при повторной обработке экрана этот шаг пропускается. Вместо этого осуществляется запрос одной из двух ссылочных переменных:
IF container_r IS INITIAL.
Продолжение на следующей странице
4. Для переноса содержимого внутренней таблицы и описания ее строк в SAP Grid Control вызовите метод SET_TABLE_FOR_FIRST_DISPLAY инстанции управляющего элемента сетки. Кроме того, в этом случае необходимо создать вызов посредством перетаскивания. Затем
в созданном вызове вместо xxxxxxxx необходимо указать имя ссылочной переменной управляющего элемента сетки и присвоить параметрам значения:
• Затем следует перенести заполненную внутреннюю таблицу в параметр IT_OUTTAB.
• В данном случае вводится внутренняя таблица с прозрачной таблицей SPFLI в качестве типа строк. Поэтому достаточно передать в параметр I_STRUCTURE_NAME только имя этой таблицы. После этого соответствующая информация словаря загружается автоматически и передается в управляющий элемент.
Если в процессе выполнения программы содержимое внутренней таблицы изменяется, необходимо вызвать метод REFRESH_TABLE_DISPLAY для обновления выведенной сетки перед выводом следующего экрана.
Упражнение 19: Использование методов
Цели упражнения
Выполнив это упражнение, вы сможете
• выводить простые списки с применением ALV Grid Control
Практический пример
Созданные ранее списки должны выводиться на экран с использованием
ALV Grid Control.
Задание 1:
Подготовка данных и экрана для вывода управляющих элементов
1. Скопируйте программу SAPBC400RUT_ALV_GRID и все ее компоненты и присвойте ей новое имя ZBC400_##_ALV_GRID.
2. Ознакомьтесь с программой.
В шаблоне имеется внутренняя таблица, совпадающая с таблицей
SPFLI в базе данных, а также экран с номером 100.
3. Внутренняя таблица должна заполняться данными из таблицы данных
SPFLI посредством выборки массива.
4. Создайте область управляющего элемента контейнера на экране 100 (рекомендуемое имя: CONTAINER_1).
Задание 2:
Создание контейнера и управляющего элемента, перенос данных в управляющий элемент
1. Определите ссылочную переменную для класса
CL_GUI_CUSTOM_CONTAINER и класса CL_GUI_ALV_GRID.
2. Внедрите создание инстанции управляющего элемента или контейнера в событие PROCESS BEFORE OUTPUT на экране 100. Задайте только обязательные параметры.
3. В точке PROCESS BEFORE OUTPUT установите вызов метода SET_TABLE_FOR_FIRST_DISPLAY для переноса данных в управляющий элемент сетки. В параметре I_STRUCTURE_NAME (тип строки внутренней таблицы) укажите имя оптимального типа из словаря, в параметре IT_OUTTAB укажите текущую внутреннюю таблицу.
4. Убедитесь, что создание инстанций и вызов методов выполняются только при первой обработке экрана.
Решение 19: Использование методов
Задание 1:
Подготовка данных и экрана для вывода управляющих элементов
1. Скопируйте программу SAPBC400RUT_ALV_GRID и все ее компоненты и присвойте ей новое имя ZBC400_##_ALV_GRID.
a) Этот шаг выполняется в соответствии с обычной процедурой.
2. Ознакомьтесь с программой.
В шаблоне имеется внутренняя таблица, совпадающая с таблицей
SPFLI в базе данных, а также экран с номером 100.
a) Этот шаг выполняется в соответствии с обычной процедурой.
3. Внутренняя таблица должна заполняться данными из таблицы данных
SPFLI посредством выборки массива.
a) См. выдержку из исходного текста в примере решения.
4. Создайте область управляющего элемента контейнера на экране 100 (рекомендуемое имя: CONTAINER_1).
a) Этот шаг выполняется в соответствии с описанием в учебных материалах.
Задание 2:
Создание контейнера и управляющего элемента, перенос данных в управляющий элемент
1. Определите ссылочную переменную для класса
CL_GUI_CUSTOM_CONTAINER и класса CL_GUI_ALV_GRID. a) См. выдержку из исходного текста в примере решения.
2. Внедрите создание инстанции управляющего элемента или контейнера в событие PROCESS BEFORE OUTPUT на экране 100. Задайте только обязательные параметры.
a) См. выдержку из исходного текста в примере решения.
3. В точке PROCESS BEFORE OUTPUT установите вызов метода SET_TABLE_FOR_FIRST_DISPLAY для переноса данных в управляющий элемент сетки. В параметре I_STRUCTURE_NAME (тип строки внутренней таблицы) укажите имя оптимального типа из словаря, в параметре IT_OUTTAB укажите текущую внутреннюю таблицу.
a) См. выдержку из исходного текста в примере решения.
Продолжение на следующей странице
4. Убедитесь, что создание инстанций и вызов методов выполняются только при первой обработке экрана.
a) См. выдержку из исходного текста в примере решения.
Результат
Выдержка из исходного текстаSAPBC400RUS_ALV_GRID
REPORT sapbc400rus_alv_grid.
...
DATA:
Дата добавления: 2015-11-16; просмотров: 138 | Нарушение авторских прав
<== предыдущая страница | | | следующая страница ==> |
DATAreference_name TYPE REF TOclass_name. | | | Skin face pallor |