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

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


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

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


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

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