при выводе на экран выбора VS на группу радиокнопок - PullRequest
0 голосов
/ 06 апреля 2019

Я пишу отчет, в котором у меня есть две радиокнопки группы «вкладка».В зависимости от их значения, я должен установить для некоторых полей экрана значение no-display, иначе, отображать их правильно.

Я могу заставить его работать идеально, используя событие at selection-screen output., но оно отказывается работать при использовании at selection-screen on radiobutton group tab - чтобы проверить одно, я закомментирую другое.

Код в обоих случаях одинаков, поэтому кто-то может помочь мне понять разницу в этих двух событиях, чтобы я понял, почему работает только одно?

события ниже, работает только второе.

at selection-screen on radiobutton group tab.
  go_controller->modify_screen( ).


at selection-screen output.
  go_controller->modify_screen( ).

Они оба вызывают один и тот же метод

  method modify_screen.

    loop at screen.

      case  screen-group1.

        when 'TAB'.

          if use_otab = abap_false.
            screen-invisible = 1.
            screen-active    = 0.
            screen-input     = 0.
            p_int            = abap_false.
            p_nat            = abap_false.
            free               p_table[].

          else.
            screen-active    = 1.
            screen-invisible = 0.
            screen-input     = 1.

          endif.

          modify screen.

      endcase.

    endloop.

  endmethod.

Через отладку я вижу, что оба события достигнуты правильнотем не менее, работает только второй.

1 Ответ

2 голосов
/ 06 апреля 2019

Поскольку он сконструирован так: AT SELECTION-SCREEN ON... - это событие «процесс после ввода» (PAI).PAI предназначен для реагирования на действия пользователя.В конце PAI определяется следующее dynpro (даже если оно может совпадать с фактическим), а затем обрабатывается «обработка перед выводом» (PBO) dynpro.Это подготовка элементов экрана для пользователя.Только в PBO изменение таблицы SCREEN влияет на видимость или возможность редактирования элементов экрана.

Итак, в отчетах вы должны использовать at selection-screen output., чтобы влиять на видимость или возможность редактирования параметров и опций выбора.

...