Текущее время: Вс, июл 20 2025, 02:43

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


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

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


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

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