Текущее время: Сб, июл 26 2025, 11:41

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


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


ВНИМАНИЕ!

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



Начать новую тему Ответить на тему  [ Сообщений: 5 ] 
Автор Сообщение
 Заголовок сообщения: Динамически создаваемый TABSTRIP - кто-нибудь пробовал?
СообщениеДобавлено: Чт, ноя 17 2011, 13:21 
Старший специалист
Старший специалист
Аватара пользователя

Зарегистрирован:
Ср, дек 17 2008, 19:38
Сообщения: 434
Откуда: Санкт-Петербург
Пол: Женский
Добрый день, коллективный разум!
Нужно создавать на своем экране вкладочки динамически, в зависимости от настроек.
Попробовала класс CL_BUS_TABSTRIP, но что-то не получается пока.
Может подскажете чего? :oops:

_________________
Silence v.2.0


Принять этот ответ
Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Динамически создаваемый TABSTRIP - кто-нибудь пробовал?
СообщениеДобавлено: Чт, ноя 17 2011, 13:31 
Гуру-эксперт
Гуру-эксперт

Зарегистрирован:
Вт, сен 07 2004, 17:47
Сообщения: 2988
Silence1 написала:
Добрый день, коллективный разум!
Нужно создавать на своем экране вкладочки динамически, в зависимости от настроек.
Попробовала класс CL_BUS_TABSTRIP, но что-то не получается пока.
Может подскажете чего? :oops:

Вкладки - это кнопки. А кнопки (как и поля ввода-вывода и пр. элементы DynPro) создаются. Пока можно только создавать с запасом и прятать лишнее

_________________
"После" - не значит "вследствие"


Принять этот ответ
Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Динамически создаваемый TABSTRIP - кто-нибудь пробовал?
СообщениеДобавлено: Чт, ноя 17 2011, 13:43 
Модератор
Модератор
Аватара пользователя

Зарегистрирован:
Пт, июн 16 2006, 00:43
Сообщения: 1686
Откуда: Москва <-> Красноярск
Пол: Мужской
В стандартном интерфейсе GUI нельзя. Только, как подсказал sy-uname, в дизайне сделать достаточное кол-во и скрывать/отображать в рантайм.

Еще можно переписать приложение на Web Dynpro. Там можно динамически в рантайм вкладки создавать :)


Принять этот ответ
Вернуться к началу
 Профиль Отправить email  
 
 Заголовок сообщения: Re: Динамически создаваемый TABSTRIP - кто-нибудь пробовал?
СообщениеДобавлено: Чт, ноя 17 2011, 14:31 
Старший специалист
Старший специалист
Аватара пользователя

Зарегистрирован:
Ср, дек 17 2008, 19:38
Сообщения: 434
Откуда: Санкт-Петербург
Пол: Женский
sy-uname, Пономарев Артем - спасибо!
так и придется - с запасом и скрывать :?

_________________
Silence v.2.0


Принять этот ответ
Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Динамически создаваемый TABSTRIP - кто-нибудь пробовал?
СообщениеДобавлено: Пт, дек 30 2011, 12:03 
Почетный гуру
Почетный гуру
Аватара пользователя

Зарегистрирован:
Чт, сен 09 2004, 07:32
Сообщения: 777
Откуда: Москва
Пол: Мужской
Можно сделать как для транзакций, например, AS01-AS03 (по крайней мере, так было реализовано в старых версиях системы):

Для простейшего построения картотеки на экране собственной транзакции следует провести ряд настроек:
V_TAMLAYA_00 - Идентификатор приложения. Вводятся, как характеристики, следующие признаки:
Максимальное число закладок, поддерживаемое приложением (не более 10)
Максимальное число подэкранов, поддерживаемое на каждой закладке
Транзакция основной программы
Пользовательская группа функций - группа функций для расширения набора подэкранов (Unnnn)
Функциональный модуль (проверка?)
V_TAMLAYB_00 - рамки группы. Вводятся стандартные подэкраны (PROG & DYNNR) для каждой группы.
V_TAMLAY0_00 - Идентификатор формата. При выводе картотеки можно использовать различные форматы отображения (набор карточек и групп полей).
V_TAMLAY1_00 - Идентификатор закладки.
V_TAMLAY2_00 - Позиции рамок групп. Перечисление групп подэкранов (берутся из V_TAMLAYB_00 & Группы функций расширения (V_TAMLAYA_00)).

Примечание:
Ведение таблиц пунктов 3-4 осуществляется через ведение кластера ракурсов VC_TAMLAY_00 (транзакция SM34).


Программные шаги:

Простейшая обработка должна проводиться следующим образом:
Code:
PROCESS BEFORE OUTPUT.
  MODULE init.                  " инициализация картотеки
  CALL SUBSCREEN tabs INCLUDING 'SAPLATAB' '0100'.   " обязательный вызов (!)

PROCESS AFTER INPUT.
  CALL SUBSCREEN tabs.               " вызов PAI-логики (если есть) подэкранов
  MODULE user_command.               " обработка команд пользователя


*&---------------------------------------------------------------------*
*&      Module  init  OUTPUT
*&---------------------------------------------------------------------*
*       Инициализация экрана просмотра подробной информации
*----------------------------------------------------------------------*
MODULE init OUTPUT.

  SET PF-STATUS 'ХХХХХ'.

  IF first_run_i IS INITIAL.
*   предварительная обработка (исключить ненужные рамки)
    CALL FUNCTION 'TABSTRIP_LAYOUT_READ'
         EXPORTING
              i_appl       = pa_appl   " приложение
              i_layout     = pa_layo   " формат
         TABLES
              t_tabs       = it_tabs   " набор закладок
              t_tabscreens = it_scrs.   " набор рамок групп

*   инициализация TabStrip'a
    CALL FUNCTION 'TABSTRIP_INIT'
         EXPORTING
              i_appl                        = pa_appl
              i_layout                      = pa_layo
         TABLES
              t_exclude                     = it_excl      " пользовательское исключение закладок
         EXCEPTIONS
              not_found                     = 1
              inconsistent_parameter_values = 2
              group_box_missing             = 3
              OTHERS                        = 4.
    IF sy-subrc <> 0.
      MESSAGE ID     sy-msgid
              TYPE   sy-msgty
              NUMBER sy-msgno
              WITH   sy-msgv1 sy-msgv2 sy-msgv3 sy-msgv4.
      LEAVE SCREEN.
    ENDIF.

    first_run_i = 'X'.
  ENDIF.

ENDMODULE.                 " init  OUTPUT

*&---------------------------------------------------------------------*
*&      Module  user_command  INPUT
*&---------------------------------------------------------------------*
*       Обработка команд пользователя
*----------------------------------------------------------------------*
MODULE user_command INPUT.

  ok_save = ok_code.
  CLEAR ok_code.

  IF ok_save(3) = 'TAB'.
    CALL FUNCTION 'TABSTRIP_TAB_SET'   " установка активной закладки
         EXPORTING
              i_tab = ok_save+3(2).
    EXIT.
  ENDIF.

ENDMODULE.                 " user_command  INPUT


Примечание: Расширенную функциональность обработки картотеки можно использовать через ФМ группы ATAB.

_________________
"Прежде чем сделать что-то, подумай, к чему это может привести..."


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

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


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

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


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

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