По умолчанию переключатели не запускают никаких событий, что необходимо для выполнения некоторых действий с переключателем переключателя (а не при нажатии клавиши Enter или выполнении). Вы можете сделать это, добавив user-command <eventcode>
к вашей группе переключателей, а затем обработав эти события в At selection-screen output
.
tables: sscrfields. "Only needed if you need to tell different events apart.
select-options:
so_1_1 for lfa1-lifnr modif id g1,
so_1_2 for lfa1-kunnr modif id g1,
so_2_1 for kna1-lifnr modif id g2,
so_2_2 for kna1-kunnr modif id g2,
parameters:
p_1 radiobutton group prct user-command rb_prct default 'X',
p_2 radiobutton group prct,
p_3 radiobutton group prct.
at selection-screen.
lv_ucomm = sscrfields-ucomm. "only needed if you need to tell different events apart.
At selection-screen output.
"In here you can check if lv_ucomm = 'RB_PRCT' before doing anything
case abap_true.
when p_1.
lv_group = 'G1'.
when p_2.
lv_group = 'G2'.
when p_3.
lv_grou = ' '.
endcase.
loop at screen.
screen-active = boolc( screen-group1 is initial or screen-group1 = lv_group )
modify screen.
endloop.
Что-то подобное будет соответствовать вашим потребностям, но если вытребуется больше обработки при нажатии кнопки-переключателя (а не при других действиях), вы можете использовать логику, связанную с SSCRFIELDS, для проверки того, какое событие сработало, и обрабатывать только то, что поступает от переключателей.