1

SELECT-OPTIONSステートメントを介してクラスメソッドで複雑な論理条件を構築する際に問題に直面しました。

IF col IN seltab.
  ...logic....
ENDIF.

ローカルの SELECT-OPTIONS は許可されていません... というエラーが表示されます。

ABAPDOCUのに従ってコーディングしました。以下のコードも意味がありません。

DATA: codes TYPE RANGE OF tcode.
codes-sign = 'I'.
codes-option = 'EQ'.
codes-low = 'VL32N'.
apppend codes.

Codes is a table without header line というエラーが発生したため、 sign というコンポーネントがありません

クラスで論理選択テーブルを使用することは可能ですか? いいえの場合、代替手段は何ですか?

4

2 に答える 2

1

はい、可能です。システムは正確に何が間違っていたかを示します。これを宣言する必要があります:

DATA: lt_range_codes TYPE RANGE OF tcode,         " this is an internal table WITHOUT a header line
      ls_range_codes LIKE LINE OF lt_range_codes. " this is a corresponding structure

ls_range_codes-sign   = 'I'.
ls_range_codes-option = 'EQ'.
ls_range_codes-low    = 'VL32N'.
APPEND ls_range_codes TO lt_range_codes.

ヘッダ行のあるテーブルは ABAP オブジェクト クラス内では許可されていないため、追加の構造が常に必要になることに注意してください。もちろん、フィールド シンボル とAPPEND INITIAL LINE TO ... ASSIGNING <...>も同様です。

于 2013-03-28T07:47:10.347 に答える