簡體   English   中英

將字段符號傳遞給FORM

[英]Passing field-symbols into FORM

我需要在幾個代碼位中將數據字段(另一個字段符號的組件)分配給字段符號。 為了可重用性,我決定將此代碼封裝在過程中,但我無法理解如何將字段符號傳遞給此過程。

LOOP bseg ASSIGNING <bseg>
...
PERFORM assigning USING <bseg>
                  CHANGING <wrbtr>.
...
ENDLOOP.

FORM assigning USING <bseg> TYPE bseg
               CHANGING <wrbtr> TYPE bseg-wrbtr
IF ...
  some logic here
  ASSIGN <bseg>-wrbtr TO <wrbtr>.
ELSE
  ASSIGN <bseg>-skfbt TO <wrbtr>.
ENDIF.

ENDFORM.

此代碼不起作用。

我該怎么做才能更改字段符號引用?

這是不可能的,至少不是你嘗試這樣做的方式。 字段符號不能作為指針實際傳遞。 如果你需要這樣的東西,你將不得不使用真正的參考。

對其余代碼一無所知 - 看起來有點奇怪。 為什么要直接更改BSEG字段中的數據? 我只能假設你“濫用”字段在整個代碼中傳輸一些自定義值,這通常是一個壞主意。 如果你需要這樣做,我寧願這樣做:

LOOP bseg ASSIGNING <bseg>.
   IF foo.
    l_my_wrbtr = <bseg>-wrbtr.
  ELSE.
    l_my_wrbtr = <bseg>-skfbt.
  ENDIF.

  " ... pro'lly thousands of lines I don't even want to see...

  IF foo.
    <bseg>-wrbtr = l_my_wrbtr.
  ELSE.
    <bseg>-skfbt = l_my_wrbtr.
  ENDIF.
ENDLOOP.    

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM