我当前在使用select选项数据类型调用方法时遇到问题。它给了我一个错误:S_NETWR
与形式参数IN_NETWR
的类型不兼容。
我不确定我需要做什么才能将它们作为参数导出。对不起,我是ABAP的新手。如有任何帮助,我们将不胜感激。
源代码片段:
"set the audit at $50,000
lv_max = 50000.
SELECTION-SCREEN BEGIN OF BLOCK blk1 WITH FRAME TITLE text-001.
SELECT-OPTIONS: s_netwr FOR ekpo-netwr,
s_datvr FOR nast-datvr NO INTERVALS.
SELECTION-SCREEN END OF BLOCK blk1.
*sets last run date from tvarvc
INITIALIZATION.
PERFORM get_lastrun.
CALL METHOD lcl_audit->get_po
EXPORTING
in_netwr = s_netwr
in_datvr = s_datvr
IMPORTING
out_po = it_po
.
来自我的类zcl_audit_02
:的get_po
方法
METHOD get_po.
SELECT DISTINCT ekko~ebeln ekpo~netwr ekko~lifnr ekko~ekorg
ekpo~werks ekko~ekgrp t024~eknam
FROM ( ekpo
INNER JOIN ekko
ON ekko~ebeln = ekpo~ebeln
INNER JOIN t024
ON ekko~ekgrp = t024~ekgrp
INNER JOIN nast
ON nast~objky = ekko~ebeln )
INTO TABLE out_po
WHERE ekpo~netwr = in_netwr
AND nast~datvr = in_datvr.
IF sy-subrc = 0.
SORT out_po BY ebeln ASCENDING.
ELSE.
MESSAGE 'No Purchase Orders Found' TYPE 'I'.
ENDIF.
ENDMETHOD.
提前谢谢!
SELECT-OPTIONS
创建一个带有标题行的内部表。问题是在使用ABAP OO时不再允许使用头行。您必须通过将so_foo[]
而不是so_foo
传递给方法来消除标题行。括号确保只寻址表组件,而忽略标题行。
我看不出你的方法参数是什么类型的。但你需要它是以下类型的。符号字符1选项字符2低netwr高净值。在该类型的数据字典中创建一个结构,然后创建该结构的表类型,并将该表类型用作参数的数据类型。
我需要在类中定义一个类型范围,并导出s_netwr[]和s_datvr[]。这解决了问题。谢谢大家!