使用SELECT-OPTIONS作为类方法的导出参数



我当前在使用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[]。这解决了问题。谢谢大家!

最新更新