在设置具有控件动态可见性的选择屏幕时,我遇到了意外的运行时错误DYNP_TOO_MANY_RADIOBUTTONS_ON
。将示例代码简化为以下可重现的示例:
REPORT ztest1.
SELECTION-SCREEN BEGIN OF BLOCK category.
PARAMETER:
rb_cata RADIOBUTTON GROUP cat USER-COMMAND selection_changed DEFAULT 'X',
rb_catb RADIOBUTTON GROUP cat.
SELECTION-SCREEN END OF BLOCK category.
SELECTION-SCREEN BEGIN OF BLOCK action.
PARAMETER:
rb_act1 RADIOBUTTON GROUP act USER-COMMAND selection_changed DEFAULT 'X' MODIF ID act,
rb_act2 RADIOBUTTON GROUP act.
SELECTION-SCREEN END OF BLOCK action.
AT SELECTION-SCREEN OUTPUT.
LOOP AT SCREEN.
CASE screen-group1.
WHEN 'ACT'.
screen-invisible = COND #( WHEN rb_cata = abap_true THEN 0 ELSE 1 ).
WHEN OTHERS.
ENDCASE.
MODIFY SCREEN.
ENDLOOP.
选择rb_catb
然后重新选择第一个单选按钮时,我收到运行时错误 DYNP_TOO_MANY_RADIOBUTTONS_ON 并带有注释:
在一组单选按钮中,必须设置一个字段——这意味着必须具有值“X”。如果不是这种情况,则会出现以下情况之一: - 同时设置了该组的多个单选按钮。此错误会导致应用程序终止并触发您当前正在阅读的短转储。
但我只是在更改按钮的可见性,为什么我会收到与实际活动状态相关的错误?