Текущее время: Ср, июл 23 2025, 09:50

Часовой пояс: 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 часа


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

Сейчас этот форум просматривают: Google [Bot]


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

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