+ Sapforum.Biz » Инструменты » ABAP - Инструментальные средстваТема:
|- Поле Формат списком.




Автор Тема: Поле Формат списком.  (Прочитано 2533 раз)

0 Пользователей и 1 Гость просматривают эту тему.

Оффлайн themax

  • Newbie
  • *
  • Сообщений: 219
  • Reputation Power: 0
  • themax has no influence.
  • YearsYearsYearsYearsYearsYears
Поле Формат списком.
« : Февраль 12, 2015, 10:27:30 am »
Всем добрый день! Я с АБАПом на вы поэтому нужна подсказка как сделать так чтобы на селекционном экране была возможность выбора формата из списка, т.е. есть экранчик селекционный для вывода отчёта, отчёт выводится и там есть возможность убирать юзерам не нужные поля и сохранять это в качестве формата. На селекционном экране я вывел это поле, но нужно имя формата набирать ручками. Как бы сделать так чтобы можно было бы выбрать из списка созданных форматов нужный тебе?  Или есть какой нить функицональный модуль например который может вывести из этой структуры, где хранятся эти форматы список в поле на селекционном экране? Вот собственно кусок программы, где я использую в самом отчёте варианты формата:
Код: You are not allowed to view links. Register or Login
data: variante        like disvariant,
      def_variante    like disvariant.
data: is_variant    like disvariant.
это объявление, затем после
Код: You are not allowed to view links. Register or Login
parameters: variant1        like disvariant-variant.
start-of-selection.

  variante-report = 'Z_TOK'.
  variante-variant = variant1.
Затем идут нужные селекты, а потом функциональный модуль для вывода алвгрида.
Код: You are not allowed to view links. Register or Login
call function 'REUSE_ALV_GRID_DISPLAY'
      exporting
       i_callback_program             = 'Z_TOK'
       i_callback_pf_status_set       = 'PF_STAT_SET'
     i_callback_user_command        = 'USER_COMMAND'
       is_layout                      = layout
*   it_excluding            = GT_EXCLUD[]
       it_fieldcat                    = fieldcat[]
****   I_DEFAULT                      = 'X'
       i_save                         = 'A'
       is_variant                     = variante

***   IS_PRINT                       = PRINT
        tables
          t_outtab                       = tab
      exceptions
*   PROGRAM_ERROR                  = 1
       others                         = 2
                .
Может кто делал? Буду весьма признателен за подсказку.

Оффлайн Uukrul

  • SAP ECC 6.0 Ehp(*)
  • Administrator
  • Epic Member
  • *****
  • Сообщений: 3 674
  • Reputation Power: 2
  • Uukrul barely matters.Uukrul barely matters.
  • Пол: Мужской
  • YearsYearsYearsYearsYearsYearsYearsYearsYearsYearsYears
    • Sapforum.BIZ
Re: Поле Формат списком.
« Ответ #1 : Февраль 16, 2015, 10:42:12 pm »
Ну если не поздно, а может кому еще будет нужно:

Поле на селекционной экране
Код: You are not allowed to view links. Register or Login
PARAMETERS: p_alvdef LIKE disvariant-variant.

Далее обработчик выбора вариантов которые сохранены. В первый раз ясно ничего не будет. Но если сохраните,то потом все появится. Переменная DATA: gs_alv_variant LIKE disvariant, - Ее собственно в ALV передаем далее
Код: You are not allowed to view links. Register or Login
AT SELECTION-SCREEN ON VALUE-REQUEST FOR p_alvdef.
  gs_alv_variant-report = sy-repid.
  CALL FUNCTION 'REUSE_ALV_VARIANT_F4'
    EXPORTING
      is_variant = gs_alv_variant
      i_save     = 'A'
    IMPORTING
      es_variant = gs_alv_variant
    EXCEPTIONS
      not_found  = 2.
  IF sy-subrc = 2.
    MESSAGE ID sy-msgid TYPE 'S' NUMBER sy-msgno
            WITH sy-msgv1 sy-msgv2 sy-msgv3 sy-msgv4.
  ELSE.
    p_alvdef = gs_alv_variant-variant.
  ENDIF.

Ну и далее перед вызовом REUSE_ALV_GRID_DISPLAY делаем нечто такое
Код: You are not allowed to view links. Register or Login
  gs_alv_variant-report = sy-repid.
  gs_alv_variant-variant = p_alvdef.
  IF NOT p_alvdef IS INITIAL.
*   Проверить а есть ли такой вариант что передали для использования
    CALL FUNCTION 'REUSE_ALV_VARIANT_EXISTENCE'
      EXPORTING
        i_save     = 'A'
      CHANGING
        cs_variant = gs_alv_variant
      EXCEPTIONS
        OTHERS     = 1.
    IF sy-subrc <> 0. MESSAGE e321(m7) WITH gs_alv_variant gs_alv_variant-report. ENDIF.
  ENDIF.


  CALL FUNCTION 'REUSE_ALV_GRID_DISPLAY'
    EXPORTING
....
      i_save                   = 'A'
      is_variant               = gs_alv_variant
....

Как-то так!

Оффлайн themax

  • Newbie
  • *
  • Сообщений: 219
  • Reputation Power: 0
  • themax has no influence.
  • YearsYearsYearsYearsYearsYears
Re: Поле Формат списком.
« Ответ #2 : Февраль 17, 2015, 11:21:37 am »
Круто. Спасибо. Теперь список появляется прямо на селекционном экране.