在屏幕上验证 SELECT-OPTIONS 值?

Validate SELECT-OPTIONS values on a screen?

在这个事件中我抛出消息

AT SELECTION-SCREEN ON VALUE-REQUEST FOR p_vari.
  CLEAR g_variant.
  PERFORM set_variant.

  IF g_msg IS NOT INITIAL.
    MESSAGE g_msg TYPE 'S' DISPLAY LIKE 'E'.
  ENDIF.**

这里我在不同的块中有两个 select 选项和一个参数。

AT SELECTION-SCREEN ON BLOCK group.
  CLEAR g_msg.
  IF s_prg IS INITIAL AND s_wbs IS INITIAL.
    CONCATENATE g_msg  text-002 INTO g_msg SEPARATED BY space.
  ELSEIF s_prg IS NOT INITIAL AND s_wbs IS NOT INITIAL.
    CONCATENATE g_msg  text-003 INTO g_msg SEPARATED BY space.
  ENDIF.

AT SELECTION-SCREEN ON p_vari.
  CLEAR: g_esito.
  PERFORM check_vari CHANGING g_esito
                              g_msg
                              g_variant.

如果 select 选项被赋值,我希望看到参数 p_vari 的消息。 我不想在使用 select 选项匹配代码时看到消息。

尝试简单地 at-selection-screen 语句来验证参数并在必要时抛出消息。它应该可以工作,但不幸的是我没有知识来解释为什么。