ABAP选择屏幕设置必填Required =‘2‘,回车时光标跳转到必填字段

需求:程序中设置选择屏幕字段为Required = ‘2’(存在必填标记,却不进行必填校验),此时,回车并不会让光标跳转到必填字段上;用户希望在选择屏幕界面回车的时候,光标会自动跳转到必填字段上,可以带给用户更好的使用体验。

需要在 AT SELECTION-SCREEN OUTPUT事件中,增加SET CURSOR FIELD语句,实现方式如下代码。

TABLES marc.

SELECT-OPTIONS: s_matnr FOR marc-matnr.
PARAMETERS: p_werks TYPE resb-werks,
            p_charg TYPE resb-rsnum.

AT SELECTION-SCREEN OUTPUT.

  LOOP AT SCREEN.
    IF screen-name = 'P_WERKS' OR screen-name = 'P_CHARG'.
      screen-required = '2'.
      MODIFY SCREEN.
    ENDIF.
  ENDLOOP.

  IF p_werks IS INITIAL.

    PERFORM frm_set_cursor USING  'P_WERKS'.

  ELSEIF p_charg IS INITIAL.

    PERFORM frm_set_cursor USING  'P_CHARG'.

  ENDIF.

FORM frm_set_cursor  USING l_txt.

  SET CURSOR FIELD l_txt.
  MESSAGE '请输入必填字段' TYPE 'S' DISPLAY LIKE 'E'.
  LEAVE LIST-PROCESSING.

ENDFORM.

ABAP选择屏幕设置必填Required =‘2‘,回车时光标跳转到必填字段_第1张图片
输入第一个必填之后,回车会自动跳转到第二个必填。
ABAP选择屏幕设置必填Required =‘2‘,回车时光标跳转到必填字段_第2张图片

你可能感兴趣的:(abap)