在使用samrtform的时候一般都要去SE11里创建一个和要传个smartform内标一样的structure,那可不可以不建structure呢?有,现在就给大家介绍一下:
1。在smartform的Global Definitions的type中建一个和report里内表结构相同的structure.
如,我要传给smartform的 tabel 叫 itab 是这样的:
data: begin of itab occurs 0,
vbeln like vbak-vbeln,
posnr like vbak-posnr,
matnr like vbak-matnr,
matwa like vbak-matwa,
charg like vbak-charg,
vgbel like vbak-vgbel,
vgpos like vbap-vgpos,
end of itab.
那么在这里就要定义一个相同的 structure :
types: begin of l_table,
vbeln like vbak-vbeln,
posnr like vbak-posnr,
matnr like vbak-matnr,
matwa like vbak-matwa,
charg like vbak-charg,
vgbel like vbak-vgbel,
vgpos like vbap-vgpos,
end of l_table。
2.在smartform的Global Data 中定义一个与刚才那个结构相同的内表
如:
g_table type table of l_table.
3.这是最重要的一步了:在Initialization中定义一个FIELD-SYMBOLS,将它指向我们程序内表。
data: field(50).
field-symblos: <test> type any.
field = '(ZJULIA_TEST)ITAB[]'. "这里的ZJULIA_TEST是我的程序名称,ITAB
"是我在程序中要传给smartform的内表
ASSIGN (field) TO <test>.
g_table[] = <test>.
这样在samrtform里就可以使用这个内表了。