Текущее время: Пн, июл 21 2025, 01:01

Часовой пояс: UTC + 3 часа


Правила форума


ВНИМАНИЕ!

Вопросы по SAP Query и Quick View - сюда



Начать новую тему Ответить на тему  [ Сообщений: 3 ] 
Автор Сообщение
 Заголовок сообщения: Динамическое изменение размеров грида на экране.
СообщениеДобавлено: Ср, май 02 2012, 13:56 
Младший специалист
Младший специалист

Зарегистрирован:
Ср, окт 05 2011, 06:11
Сообщения: 61
Здравствуйте!
Подскажите возможно ли на экране создать alv-grid с изменяющимися размерами границ. Т.е, чтобы пользователь мог сжимать грид по горизонтали, вертикали на экране.


Принять этот ответ
Вернуться к началу
 Профиль Отправить email  
 
 Заголовок сообщения: Re: Динамическое изменение размеров грида на экране.
СообщениеДобавлено: Ср, май 02 2012, 14:10 
Старший специалист
Старший специалист

Зарегистрирован:
Пт, авг 24 2007, 11:29
Сообщения: 350
Попробуйте использовать контейнер класса CL_GUI_SPLITTER_CONTAINER.
В нижеописанном примере изменение производится только по вертикале. Для того чтобы динамически изменялся размер по горизонтали необходимо определить 2 колонки в GO_SPLITTERBOX2.
Code:
* ОБЪЯВЛЕНИЯ ДЛЯ GRID
  DATA: GO_GRID1          TYPE REF TO CL_GUI_ALV_GRID,
        GO_DOCKINGBOX1    TYPE REF TO CL_GUI_DOCKING_CONTAINER,
        GO_DOCKINGBOX2    TYPE REF TO CL_GUI_DOCKING_CONTAINER,
        GO_SPLITTERBOX1   TYPE REF TO CL_GUI_SPLITTER_CONTAINER,
        GO_SPLITTERBOX2   TYPE REF TO CL_GUI_SPLITTER_CONTAINER,
        GO_CONTAINERBOX1  TYPE REF TO CL_GUI_CONTAINER,
        GO_CONTAINERBOX2  TYPE REF TO CL_GUI_CONTAINER,
        GO_TOP_TEXT       TYPE REF TO CL_DD_DOCUMENT,

Code:
*-------------------------------------------------------------------------
* MODULE      : PBO_1001
* DESCRIPTION : МОДУЛЬ PBO ЭКРАНА 1001
*-------------------------------------------------------------------------
MODULE PBO_1001 OUTPUT.
  PERFORM SET_BUTTON_STATU CHANGING GT_FCODE.
  SET PF-STATUS 'GUI_ALV' EXCLUDING GT_FCODE.
  IF GV_CREATE_GRID1 = 'X'.
    DATA LV_POS TYPE I.
* ОПРЕДЕЛЯЕМ ВЕРХНЮЮ ЧАСТЬ ЭКРАНА
* ВЫЧИСЛЯЕМ ПАРАМЕТР  EXTENSION (КОЛ-ВО СТРОК НА ЭКРАНЕ * ПРОЦЕНТ ОТ ПОЛНОГО ЭКРАНА * ПОПРАВОЧНЫЙ КОЭФФИЦИЕНТ) / 100
     LV_POS = ( SY-SROWS * 20 * 13 ) / 100.
     CREATE OBJECT GO_DOCKINGBOX1
           EXPORTING REPID = SY-REPID
                     DYNNR = '1001'
                     EXTENSION = LV_POS "50
                     SIDE = CL_GUI_DOCKING_CONTAINER=>DOCK_AT_TOP.
*                     EXTENSION = CL_GUI_DOCKING_CONTAINER=>WS_MAXIMIZEBOX.
     CREATE OBJECT GO_SPLITTERBOX1
           EXPORTING  PARENT  = GO_DOCKINGBOX1
                      LINK_REPID = SY-REPID
                      LINK_DYNNR = '1001'
                      ROWS    = 1
                      COLUMNS = 1.

     GO_SPLITTERBOX1->GET_CONTAINER( EXPORTING ROW = 1 COLUMN = 1 RECEIVING CONTAINER = GO_CONTAINERBOX1 ).

* ОПРЕДЕЛЯЕМ НИЖНЮЮ ЧАСТЬ ЭКРАНА
     LV_POS = ( SY-SROWS * 80 * 13 ) / 100.
     CREATE OBJECT GO_DOCKINGBOX2
           EXPORTING REPID = SY-REPID
                     DYNNR = '1001'
                     EXTENSION = LV_POS "250
                     SIDE = CL_GUI_DOCKING_CONTAINER=>DOCK_AT_TOP.

     CREATE OBJECT GO_SPLITTERBOX2
           EXPORTING  PARENT  = GO_DOCKINGBOX2
                      LINK_REPID = SY-REPID
                      LINK_DYNNR = '1001'
                      ROWS    = 1
                      COLUMNS = 1.

* ОПРЕДЕЛЯЕМ НИЖНИЙ КОНТЕЙНЕР
     GO_SPLITTERBOX2->GET_CONTAINER( EXPORTING ROW = 1 COLUMN = 1 RECEIVING CONTAINER = GO_CONTAINERBOX2 ).

* СОЗДАЕМ ОБЪЕКТ GRID
     CREATE OBJECT GO_GRID1
           EXPORTING I_PARENT        = GO_CONTAINERBOX2 " РОДИТЕЛЬ
                     I_APPL_EVENTS   = 'X'.         " ОБРАБАТЫВАТЬ ВСЕ СОБЫТИЯ



     PERFORM CREATE_GRID1 USING GT_FORM CHANGING GV_ER.

* СОЗДАЕМ И УСТАНАВЛИВАЕМ ТЕКСТ
     CREATE OBJECT GO_TOP_TEXT EXPORTING STYLE = 'ALV_GRID'.
     PERFORM SET_TOP_TEXT USING GO_TOP_TEXT GO_CONTAINERBOX1.
     GV_CREATE_GRID1 = ''.
  ENDIF.
ENDMODULE.


Принять этот ответ
Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Динамическое изменение размеров грида на экране.
СообщениеДобавлено: Ср, май 02 2012, 19:56 
Младший специалист
Младший специалист

Зарегистрирован:
Ср, окт 05 2011, 06:11
Сообщения: 61
Спасибо! буду пробовать.


Принять этот ответ
Вернуться к началу
 Профиль Отправить email  
 
Показать сообщения за:  Поле сортировки  
Начать новую тему Ответить на тему  [ Сообщений: 3 ] 

Часовой пояс: UTC + 3 часа


Кто сейчас на конференции

Сейчас этот форум просматривают: нет зарегистрированных пользователей


Вы не можете начинать темы
Вы не можете отвечать на сообщения
Вы не можете редактировать свои сообщения
Вы не можете удалять свои сообщения
Вы не можете добавлять вложения

Найти:
Перейти:  
cron
Powered by phpBB © 2000, 2002, 2005, 2007 phpBB Group
Русская поддержка phpBB