Селекционный экран - скрытие полей в зависимости от radiobutton.

добавлено: 01 ноя 12
понравилось:0
просмотров: 6129
комментов: 2

теги:

Автор: Изя Шниперсон

В этом блоге опишу возможности обработки события от radiobutton и возможность скрытия
других полей селекционного экрана взависимости от положения радиокнопки.
Все просто как дважды два.
1) Обявляются переменные селекционного экрана:

selection-screen begin of block b1 with frame title text-003.
parameters : rb1 radiobutton group opr modif id r1 user-command go default 'X',
rb2 radiobutton group opr modif id r2.
selection-screen end of block b1.

Не стоит забывать про ИД модификации у radiobutton group: modif id r1 - иначе не будет возникать события при
смене положения радиокнопок

selection-screen begin of block b2 with frame title text-001.
parameters so_werks type t001w-werks obligatory memory id wrk modif id sc1.
selection-screen end of block b2.

Здесь тоже нужен modif id для возможности обращения к полю в цикле Loop at Screen

2) Обработчик события первоначальной проресовки экрана
at selection-screen output.
loop at screen.
elseif screen-group1 = 'SC1' and rb2 ne space.
screen-active = '0'.
modify screen.
endif.
endloop.
Если элемент экрана имеет признак в группе 1 равный SC1 - элемент скрывается.

3) Обработчик события смены положения радиокнопок. Содержимое обработчика такое же как и у
предшествующего.
at selection-screen on radiobutton group opr.
loop at screen.
elseif screen-group1 = 'SC1' and rb2 ne space.
screen-active = '0'.
modify screen.
endif.
endloop.

Полный текст программы:
report ZRBEVENT.


selection-screen begin of block b1  with frame title  text-003.
parameters : rb1 radiobutton group opr modif id r1 user-command go default 'X',
             rb2 radiobutton group opr modif id r2.
selection-screen end of block b1.

selection-screen begin of block b2  with frame title  text-001.
	parameters so_werks type t001w-werks obligatory memory id wrk modif id sc1.
selection-screen end of block b2.


at selection-screen output.
  loop at screen.
    elseif screen-group1 = 'SC1' and rb2 ne space.
      screen-active = '0'.
      modify screen.
    endif.
  endloop.

at selection-screen on radiobutton group opr.
  loop at screen.
    elseif screen-group1 = 'SC1' and rb2 ne space.
      screen-active = '0'.
      modify screen.
    endif.
  endloop.

Комментарии


  • Что если надо в зависимости от выбранного radiobutton скрыть разные поля?

  • 10 августа 2013, 11:01 Изя Шниперсон

    1) У скрываемых полей нужно указать screen-group который обозначается как modif id
    parameters so_werks type t001w-werks obligatory modif id scg1.

    2) В событии at selection-screen on radiobutton group. сделать цикл loop at screen, в котором скрывать или показывать поля для разных screen-group в зависимости от включенной радиокнопки

    at selection-screen on radiobutton group opr.
    loop at screen.
    elseif screen-group1 = 'SCG1' and rb2 ne space.
    screen-active = '0'.
    modify screen.
    endif.
    endloop.



Необходимо войти на сайт, чтобы оставлять комментарии