指针传递内表方式做smartforms
以前寫SMARTFORMS,傳內表數據的時候總要先到SE11建立一個結構,很是麻煩.
下面主要描述一下SMARTFORM是怎么從調用它的程序取相應內表的值.
首先在SMARTFORM 全局定義->類型 這個TAB頁下定義個TYPES,結構跟要取的內表的結構一致.
如:types:BEGIN OF MY_TYPE,
lgnum type ltak-lgnum,
TANUM TYPE LTAK-TANUM,
LGTOR TYPE LTAK-LGTOR,
BNAME TYPE LTAK-BNAME,
…
end of my_type.
然后在 全局定義->全局數據 這個TAB頁下定義一個內表和工作區,如:
GT_TABLE?TYPE TABLE OF MY_TYPE
WA?????? TYPE?????????? MY_TYPE
內表的TYPE ASSIGNMENT這一列,手動輸入TYPE TABLE OF ,這個很關鍵.
最后在 全局定義->初始化 這個TAB頁下寫下面的代碼:
DATA: FIELD(50).
FIELD-SYMBOLS: <f> TYPE ANY.
FIELD = ‘(ZXXXXX)OUTPUT[]‘.????? ”ZXXXXX為程序名,OUTPUT為內表名
ASSIGN (FIELD) TO <f>.
GT_TABLE[] = <f>.
這樣,SMARTFORM就取得了ZXXXXX這個程序,OUTPUT這個內表的值,并將之賦給了GT_TABLE.
特別注意? 程序中的表定義和smartform類型里表定義 必須一致,否則 GT_TABLE[] = <f>.錯誤總結
以上是生活随笔為你收集整理的指针传递内表方式做smartforms的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: smartforms句柄与以簇的方式存储
- 下一篇: 数据从程序中传入到form中