簡略化の方法については、以下のコードを参考にしてください。下のコードはうまくいきますが、コードを強化したり短縮して動的にする方法はありますか?動的構造体に値を代入する
TYPES: BEGIN OF lty_dates,
yesterday TYPE string,
today TYPE string,
tomorrow TYPE string,
END OF lty_dates.
DATA: it_table TYPE TABLE OF lty_dates.
DO 3 TIMES.
CASE lv_count.
WHEN 1.
it_table[ 1 ]-zyesterday = 'Result Yesterday'.
it_table[ 2 ]-zyesterday = 'Result Yesterday'.
it_table[ 3 ]-zyesterday = 'Result Yesterday'.
WHEN 2.
it_table[ 1 ]-ztoday = 'Result Today'.
it_table[ 2 ]-ztoday = 'Result today'.
it_table[ 3 ]-ztoday = 'Result Today'.
WHEN 3.
it_table[ 1 ]-ztommorrow = 'Result Tomorrow'.
it_table[ 2 ]-ztommorrow = 'Result Tomorrow'.
it_table[ 3 ]-ztommorrow = 'Result Tomorrow'.
ENDCASE.
lv_count = lv_count + 1.
ENDDO.
私の考えは、以下の擬似コードのようなものです。 it_tableのフィールドが100(フィールド)に達すると、CASEを複数回実行する必要はありません。
DO 3 TIMES.
ASSIGN 'ZTODAY' TO <dynamic_fieldname>.
it_table[ 1 ]-<dynamic_fieldname> = <dynamic_result>.
it_table[ 2 ]-<dynamic_fieldname> = <dynamic_result>.
it_table[ 3 ]-<dynamic_fieldname> = <dynamic_result>.
ENDDO.
これを手伝ってください。
正確にもっと動的にしたいのですか? – vwegert
@vwegert私はrow1の結果(昨日、今日、明日)を得るために同様のmapping1を持っています。 row2の結果を取得する別のマッピング2、次にrow3の結果を取得する別のマッピング3だから、すべての行について、私は結果を得るために異なるマッピングを持つでしょうが、各マッピングは、昨日、今日、そして明日の値を取得するために適用されます。私の考えでは、提供されたコードは、昨日の列、今日の列と明日の列と同様のマッピングを想定しています。 ASSIGN COMPONENT構文には何かがあるかもしれません。私もそれを周りに再生する必要があります。 – Czarinaaaaa29