使用 ABAP 创建选择

Create Selection with ABAP

我是 ABAP 新手。我希望我的代码创建一个选择,我可以在其中输入数字,它会显示我之前创建的客户列表。

这是代码:

REPORT ZBSP_CODING.

DATA: ls_ZBSPCUSTOMERS TYPE ZBSPCUSTOMERS,
  lt_ZBSPCUSTOMERS TYPE TABLE OF ZBSPCUSTOMERS,
  lv_KUNNR TYPE KUNNR.


SELECT-OPTIONS p_KUNNR FOR lv_KUNNR NO INTERVALS.


SELECT * FROM ZBSPCUSTOMERS INTO ls_ZBSPCUSTOMERS WHERE KUNNR IN p_KUNNR.
  WRITE: / ls_ZBSPCUSTOMERS-KUNNR,
         / ls_ZBSPCUSTOMERS-NAME_FIRST, ls_ZBSPCUSTOMERS-NAME_LAST,
         / ls_ZBSPCUSTOMERS-STREET, ls_ZBSPCUSTOMERS-HOUSE_NUM1,
         / ls_ZBSPCUSTOMERS-POST_CODE1, ls_ZBSPCUSTOMERS-CITY1.
ENDSELECT.

问题是,它不会向我显示任何客户。我做错了什么?

会有两种情况。-

  1. 要么 ZBSPCUSTOMERS table 不包含任何数据。

  2. 或者可能是 KUNNR 字段数据值中前导 0's 的数据不匹配。所以,添加这些行-

SELECT-OPTIONS p_KUNNR FOR lv_KUNNR NO INTERVALS.

  "-------add below lines-----
 LOOP AT p_KUNNR.
      CALL FUNCTION 'CONVERSION_EXIT_ALPHA_INPUT'
        EXPORTING
          input  = p_KUNNR-low
        IMPORTING
          output = p_KUNNR-low.
      MODIFY p_KUNNR.
    ENDLOOP.
  "-------End of addition-------------

 SELECT * FROM ZBSPCUSTOMERS INTO ls_ZBSPCUSTOMERS WHERE KUNNR IN p_KUNNR.
    WRITE: / ls_ZBSPCUSTOMERS-KUNNR,
           / ls_ZBSPCUSTOMERS-NAME_FIRST, ls_ZBSPCUSTOMERS-NAME_LAST,
           / ls_ZBSPCUSTOMERS-STREET, ls_ZBSPCUSTOMERS-HOUSE_NUM1,
           / ls_ZBSPCUSTOMERS-POST_CODE1, ls_ZBSPCUSTOMERS-CITY1.
  ENDSELECT.

CONVERSION_EXIT_ALPHA_INPUT 功能模块在值中添加前导 0。例如,如果 DE 大小是 10 位数字,如果您输入 102,那么它会将 fron 102 转换为 0000000102。

谢谢大家,@divScorp 提到它是 F8 按钮而不是 Enter-Key