Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:

BC400_RU_ECC_2005

.pdf
Скачиваний:
1462
Добавлен:
21.05.2015
Размер:
40.8 Mб
Скачать

BC400

Урок: Работа с методами

Рисунок 210: Классы доступа к управляющим элементам сетки и контейнера

При создании инстанции неявно вызывается специфичный для класса конструктор (специальный метод CONSTRUCTOR этого класса). Назначение этого метода состоит в заполнении атрибутов создаваемой инстанции значениями его параметров ввода. Таким образом, при создании инстанции (CREATE OBJECT) необходимо указать значения требуемых параметров импорта конструктора.

 

© 2006 г. SAP AG All rights reserved. Авторские

371

06-04-2006

права защищены.

Глава 10: Повторно используемые компоненты

BC400

Рисунок 211: Метод CONSTRUCTOR класса контейнера

Для получения подробной информации о каком-либо глобальном классе или методе можно перейти к построителю классов.

Выведите список объектов класса в области навигации навигатора по объектам. После двойного щелчка по классу происходит переход к подробному просмотру в построителе классов. (Кроме того, можно перейти к построителю классов посредством двойного щелчка по имени класса

в ABAP-программе). Установите курсор на требуемый метод и нажмите кнопку Параметр для просмотра интерфейсных параметров метода.

Метод CONSTRUCTOR глобального класса

CL_GUI_CUSTOM_CONTAINER (класс для контейнера)

имеет обязательный параметр CONTAINER_NAME . Следовательно, при создании инстанции контейнера необходимо определить как минимум этот параметр, а именно имя области управляющего элемента на экране.

372

© 2006 г. SAP AG All rights reserved. Авторские

 

права защищены.

06-04-2006

BC400

Урок: Работа с методами

Рисунок 212: Важные методы для класса управляющих элементов сетки

Глобальный класс CL_GUI_ALV_GRID имеет множество методов, которые могут вызываться для выполнения соответствующих функций управляющего элемента сетки. Для вывода содержимого внутренней таблицы с использованием ALV Grid Control достаточно иметь подробную информацию о следующих трех методах:

CONSTRUCTOR

Класс сетки также имеет конструктор. Единственным обязательным параметром является параметр i_parent , в который должна передаваться уже созданная инстанция контейнера (в форме указателя) при создании инстанции управляющего элемента сетки.

SET_TABLE_FOR_FIRST_DISPLAY

Этот метод созданной инстанции управляющего элемента сетки используется для переноса данных и параметров в управляющий элемент сетки. Выводимая внутренняя таблица должна передаваться в параметр IT_OUTTAB. Она должна представлять собой стандартную таблицу (см. определение типа параметра).

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

В этом случае необходимо лишь перенести имя объекта словаря в параметр I_STRUCTURE_NAME . (Кроме того, можно создать каталог полей и перенести его в параметр IT_FIELDCATALOG .)

 

© 2006 г. SAP AG All rights reserved. Авторские

373

06-04-2006

права защищены.

Глава 10: Повторно используемые компоненты

BC400

REFRESH_TABLE_DISPLAY

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

374

© 2006 г. SAP AG All rights reserved. Авторские

 

права защищены.

06-04-2006

BC400

Урок: Работа с методами

Вывод внутренней таблицы в ALV Grid Control на экране

Рисунок 213: Создание элемента экрана "Область специального управляющего элемента"

1.В графическом редакторе форматов можно определить область управляющего элемента экрана. Для этого нажмите кнопку

Специальный управляющий элемент в строке инструментов. После этого выберите элемент, укажите размер и позицию области на экране следующим образом:

Щелкните по той точке области обработки, в которой необходимо разместить верхний левый угол специального управляющего элемента,

ине отпускайте кнопку мыши. Перетащите курсор по диагонали вниз

ивправо до той точки, в которой должен находиться нижний правый угол. После отпускания кнопки мыши положение нижнего правого угла фиксируется.

Введите новое имя для элемента экрана (в данном случае

CONTAINER_1).

Определите, должен ли изменяться размер области специального управляющего элемента при изменении размера основного экрана,

посредством параметров Изменение размера по вертикали и Изменение

Продолжение на следующей странице

 

© 2006 г. SAP AG All rights reserved. Авторские

375

06-04-2006

права защищены.

Глава 10: Повторно используемые компоненты

BC400

размера по горизонтали. При установке этих атрибутов можно также установить минимальные значения для области посредством дополнительных атрибутов Мин. число строк и Мин. число столбцов.

Рисунок 214: Определение ссылочных переменных

2.В ABAP-программе обязательными являются две ссылочные переменные:

ссылочная переменная, которая должна указывать на еще не созданную инстанцию контейнера (имя: CONTAINER_R);

ссылочная переменная, которая должна указывать на еще не созданную инстанцию управляющего элемента сетки (имя:

GRID_R).

Продолжение на следующей странице

376

© 2006 г. SAP AG All rights reserved. Авторские

 

права защищены.

06-04-2006

BC400

Урок: Работа с методами

Рисунок 215: Создание инстанций

3.Создание инстанций выполняется посредством оператора CREATE OBJECT. Этот оператор должен размещаться в исходном тексте путем его генерации во избежание ошибок и пропусков при вводе. Для этого выведите список объектов соответствующего класса в области навигации навигатора по объектам и перетащите имя класса в исходный текст.

В созданном вызове необходимо указать имя ссылочной переменной для xxxxxxxx и задать значения параметров. Синтаксис вызова очень похож на синтаксис функционального модуля. Однако параметры, которым необходимо присвоить значения посредством оператора CREATE OBJECT, являются интерфейсными параметрами соответствующего конструктора.

Создание инстанций управляющих элементов обязательно осуществляется перед выводом экрана. Эта операция часто выполняется в PBO-модуле.

Создание инстанций управляющих элементов для экрана выполняется только один раз. Это означает, что при повторной обработке экрана этот шаг пропускается. Вместо этого осуществляется запрос одной из двух ссылочных переменных:

IF container_r IS INITIAL.

Продолжение на следующей странице

 

© 2006 г. SAP AG All rights reserved. Авторские

377

06-04-2006

права защищены.

Глава 10: Повторно используемые компоненты

BC400

Рисунок 216: Вызов методов

4.Для переноса содержимого внутренней таблицы и описания ее строк в

SAP Grid Control вызовите метод SET_TABLE_FOR_FIRST_DISPLAY

инстанции управляющего элемента сетки. Кроме того, в этом случае необходимо создать вызов посредством перетаскивания. Затем

в созданном вызове вместо xxxxxxxx необходимо указать имя ссылочной переменной управляющего элемента сетки и присвоить параметрам значения:

Затем следует перенести заполненную внутреннюю таблицу в параметр IT_OUTTAB .

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

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

REFRESH_TABLE_DISPLAY для обновления выведенной сетки перед выводом следующего экрана.

378

© 2006 г. SAP AG All rights reserved. Авторские

 

права защищены.

06-04-2006

BC400

Урок: Работа с методами

Упражнение 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.Убедитесь, что создание инстанций и вызов методов выполняются только при первой обработке экрана.

 

© 2006 г. SAP AG All rights reserved. Авторские

379

06-04-2006

права защищены.

Глава 10: Повторно используемые компоненты

BC400

Решение 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)См. выдержку из исходного текста в примере решения.

Продолжение на следующей странице

380

© 2006 г. SAP AG All rights reserved. Авторские

 

права защищены.

06-04-2006

Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]