2

現在、選択オプションのデータ型を使用してメソッドを呼び出すのに問題があります。それは私にエラーを与えます: S_NETWRis not type-compatible with Formal parameter 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
    .

get_po私のクラスのメソッドzcl_audit_02

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.

前もって感謝します!

4

3 に答える 3

3

SELECT-OPTIONSヘッダー行のある内部テーブルを作成します。問題は、ABAP OO を使用している場合、ヘッダー行が許可されなくなったことです。so_foo[]の代わりにメソッドに渡すことで、ヘッダー行を取り除く必要がありますso_foo。ブラケットは、テーブル コンポーネントのみがアドレス指定され、ヘッダー行が無視されることを保証します。

于 2012-08-19T21:36:49.297 に答える
1

クラスでタイプ範囲を定義する必要があり、s_netwr[] と s_datvr[] をエクスポートしました。これで問題は解決しました。皆さんありがとう!

于 2012-08-22T16:19:02.340 に答える
1

メソッド パラメーターの型がわかりません。ただし、次のものである必要があります。符号 char 1 オプション char 2 低 netwr 高 netwr。この型のデータ ディクショナリに構造体を作成してから、その構造体のテーブル型を作成し、そのテーブル型をパラメーターのデータ型として使用します。

于 2012-08-19T21:39:33.760 に答える