Текущее время: Сб, июл 19 2025, 09:29

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


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


ВНИМАНИЕ!

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



Начать новую тему Ответить на тему  [ Сообщений: 20 ]  На страницу 1, 2  След.
Автор Сообщение
 Заголовок сообщения: Создание контейнера на селективном экране
СообщениеДобавлено: Пн, сен 25 2006, 13:58 
Ассистент
Ассистент

Зарегистрирован:
Пн, апр 10 2006, 11:19
Сообщения: 47
Откуда: Оттуда
День добрый!
Можно ли на селективном экране динамически создать контейнер, в который потом я мог бы пометить свой компонент (ну например экземпляр класса C_TEXTEDIT_CONTROL)? Пытаюсь через cl_gui_custom_container, но опыта маловато, может кто подскажет.


Принять этот ответ
Вернуться к началу
 Профиль  
 
 Заголовок сообщения:
СообщениеДобавлено: Пн, сен 25 2006, 14:27 
Младший специалист
Младший специалист

Зарегистрирован:
Ср, сен 20 2006, 16:47
Сообщения: 78
Откуда: Москва
попробуй например вот так:

Code:
REPORT  ZTEST no standard page heading.

tables:
  ekko.

select-options:
  so_ebeln for ekko-ebeln.

data:
  g_docking_container1 type ref to cl_gui_docking_container,
  GRID         TYPE REF TO CL_GUI_ALV_GRID,
  layout TYPE lvc_s_layo,
  gt_fieldcat  TYPE lvc_t_fcat,
  wa_fieldcat TYPE lvc_s_fcat,
  lvc_rows    TYPE lvc_t_row,
  wa1 type lvc_t_row with header line.

data tab type table of ekko.

at selection-screen output.
  select * into table tab from ekko.
  IF g_docking_container1 IS INITIAL.
    CREATE OBJECT G_DOCKING_CONTAINER1
      EXPORTING
            REPID = sy-repid
            DYNNR = '1000'
            EXTENSION = 200
            SIDE = g_docking_container1->dock_at_top
        EXCEPTIONS
            CNTL_ERROR = 1
            CNTL_SYSTEM_ERROR = 2
            CREATE_ERROR = 3
            LIFETIME_ERROR = 4
            LIFETIME_DYNPRO_DYNPRO_LINK = 5.
    IF SY-SUBRC NE 0.
      CALL FUNCTION 'POPUP_TO_INFORM'
        EXPORTING
          TITEL = sy-repid
          TXT2  = SY-SUBRC
          TXT1  = 'Docking container could not be created'.
    ENDIF.
    CREATE OBJECT grid
           EXPORTING i_parent = g_docking_container1.

    call method grid->register_edit_event
      EXPORTING
        i_event_id = cl_gui_alv_grid=>mc_evt_modified.

    layout-zebra = 'X'.
    layout-sel_mode = 'D'.

    PERFORM set_fldcat.

    CALL METHOD grid->set_table_for_first_display
      EXPORTING
        is_layout       = layout
        i_save          = 'A'
      CHANGING
        it_outtab       = tab[]
        it_fieldcatalog = gt_fieldcat.
  ENDIF.
*&---------------------------------------------------------------------*
*&      Form  set_fldcat
*&---------------------------------------------------------------------*
*       text
*----------------------------------------------------------------------*
*  -->  p1        text
*  <--  p2        text
*----------------------------------------------------------------------*
FORM set_fldcat .
  REFRESH: gt_fieldcat.

  CALL FUNCTION 'LVC_FIELDCATALOG_MERGE'
    EXPORTING
      i_structure_name = 'EKKO'
    CHANGING
      ct_fieldcat      = gt_fieldcat.

ENDFORM.                    " set_fldcat


Принять этот ответ
Вернуться к началу
 Профиль  
 
 Заголовок сообщения:
СообщениеДобавлено: Пн, сен 25 2006, 14:29 
Почетный гуру
Почетный гуру

Зарегистрирован:
Вт, авг 17 2004, 10:45
Сообщения: 550
Откуда: SAP_BASIS 640
Можно, но зачем такие сложности? Думается, что проще будет наоборот - в графический экран вставить селекционный. Посмотрите по последним постам, недавно подобная тема пробегала.


Принять этот ответ
Вернуться к началу
 Профиль Отправить email  
 
 Заголовок сообщения:
СообщениеДобавлено: Пн, сен 25 2006, 15:06 
Почетный гуру
Почетный гуру
Аватара пользователя

Зарегистрирован:
Ср, май 04 2005, 16:29
Сообщения: 687
Откуда: Нижневартовск->Москва
Пол: Мужской
На селекционный экран можно положить подэкран с чем угодно.
Например у нас есть подэкран номер 100 с контейнером:
Code:
REPORT.

SELECTION-SCREEN BEGIN OF BLOCK main WITH FRAME TITLE text-001.

* Параметры
  PARAMETERS: dummy1.

* Подэкран с чем угодно
  SELECTION-SCREEN:
    BEGIN OF TABBED BLOCK sub FOR 10 LINES,
    END OF BLOCK sub.

* Параметры
  PARAMETERS: dummy2.

SELECTION-SCREEN END OF BLOCK main.

INITIALIZATION.
  sub-prog = sy-repid.
  sub-dynnr = 100.

MODULE status_0100 OUTPUT.
  ...
* наполнение контейнера
  ...
ENDMODULE.                 " STATUS_0100  OUTPUT


Принять этот ответ
Вернуться к началу
 Профиль  
 
 Заголовок сообщения:
СообщениеДобавлено: Вт, сен 26 2006, 07:03 
Ассистент
Ассистент

Зарегистрирован:
Пн, апр 10 2006, 11:19
Сообщения: 47
Откуда: Оттуда
Мне не нужно что угодно. Мне нужно контейнер (экземпляр cl_gui_custom_container), чтоб я на него потом мог многострочное поле ввода поместить (C_TEXTEDIT_CONTROL). Tabbed_block это вроде что-то другое.


Принять этот ответ
Вернуться к началу
 Профиль  
 
 Заголовок сообщения:
СообщениеДобавлено: Вт, сен 26 2006, 08:42 
Ассистент
Ассистент

Зарегистрирован:
Пн, апр 10 2006, 11:19
Сообщения: 47
Откуда: Оттуда
To AK: Приведенный Вами код не работает, на селективном экране грида нет.

To EGF: Этот селективный экран используется не в одной транзакции, поэтому мне было бы удобнее создавать контейнер именно динамически.

To T: для селективного экрана модули вывода (MODULE status_0100 OUTPUT.) не катят, поскольку селективный экран генерируется автоматически.


Принять этот ответ
Вернуться к началу
 Профиль  
 
 Заголовок сообщения:
СообщениеДобавлено: Вт, сен 26 2006, 08:48 
Младший специалист
Младший специалист

Зарегистрирован:
Ср, сен 20 2006, 16:47
Сообщения: 78
Откуда: Москва
код работает однозначно - прежде чем говорить - лучше запустить...
кроме того контейнер создается и подсунуть туда уже можно что угодно , необязательно грид , грид приведен в качестве примера.
модули селекционного экрана безусловно генерятся автоматически, но Т при этом писал не про экран, а подэкран который можно вывести на селекционном экране, а для него модули уже создаются ручками...


Принять этот ответ
Вернуться к началу
 Профиль  
 
 Заголовок сообщения:
СообщениеДобавлено: Вт, сен 26 2006, 08:56 
Ассистент
Ассистент

Зарегистрирован:
Пн, апр 10 2006, 11:19
Сообщения: 47
Откуда: Оттуда
Я б не стал говорить если б не запускал, скопировал ткст вашей программы целиком и запустил. Грида нет. Естественно я мог бы вместо грида поставить другой компонент, но надо сначала чтоб появился хотя бы грид. Возможно, нужно произвести еще какие-то шаманские действия?


Принять этот ответ
Вернуться к началу
 Профиль  
 
 Заголовок сообщения:
СообщениеДобавлено: Вт, сен 26 2006, 09:06 
Младший специалист
Младший специалист

Зарегистрирован:
Ср, сен 20 2006, 16:47
Сообщения: 78
Откуда: Москва
какая версия системы?


Принять этот ответ
Вернуться к началу
 Профиль  
 
 Заголовок сообщения:
СообщениеДобавлено: Вт, сен 26 2006, 09:11 
Ассистент
Ассистент

Зарегистрирован:
Пн, апр 10 2006, 11:19
Сообщения: 47
Откуда: Оттуда
4.6С


Принять этот ответ
Вернуться к началу
 Профиль  
 
 Заголовок сообщения:
СообщениеДобавлено: Вт, сен 26 2006, 09:13 
Младший специалист
Младший специалист

Зарегистрирован:
Ср, сен 20 2006, 16:47
Сообщения: 78
Откуда: Москва
должно работать... что выводит на экран?


Принять этот ответ
Вернуться к началу
 Профиль  
 
 Заголовок сообщения:
СообщениеДобавлено: Вт, сен 26 2006, 09:20 
Ассистент
Ассистент

Зарегистрирован:
Пн, апр 10 2006, 11:19
Сообщения: 47
Откуда: Оттуда
SO_EBELN выводит и все. Хотя в отладке смотрю - все вроде создается, sy-subrc везде 0. Даже MODIFY SCREEN добавлял - ну никак. :(


Принять этот ответ
Вернуться к началу
 Профиль  
 
 Заголовок сообщения:
СообщениеДобавлено: Вт, сен 26 2006, 09:25 
Младший специалист
Младший специалист

Зарегистрирован:
Ср, сен 20 2006, 16:47
Сообщения: 78
Откуда: Москва
странно... :cry: у меня работает, однако...
создай тогда подэкран - это проще будет и точно работает


Принять этот ответ
Вернуться к началу
 Профиль  
 
 Заголовок сообщения:
СообщениеДобавлено: Вт, сен 26 2006, 09:26 
Директор
Директор
Аватара пользователя

Зарегистрирован:
Ср, сен 22 2004, 08:42
Сообщения: 1079
Откуда: Москва
Пол: Мужской
замените код
EXPORTING
REPID = sy-repid
на
data prog like sy-repid.
prog = sy-repid.
....
exporting
repid = prog


Принять этот ответ
Вернуться к началу
 Профиль  
 
 Заголовок сообщения:
СообщениеДобавлено: Вт, сен 26 2006, 09:30 
Ассистент
Ассистент

Зарегистрирован:
Пн, апр 10 2006, 11:19
Сообщения: 47
Откуда: Оттуда
Спасибо большое всем! Замена помогла :))


Принять этот ответ
Вернуться к началу
 Профиль  
 
Показать сообщения за:  Поле сортировки  
Начать новую тему Ответить на тему  [ Сообщений: 20 ]  На страницу 1, 2  След.

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


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

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


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

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