一般我们在使用smartforms做打印程序的时候都要自己建一个结构,以方便使用,但是有时候多建个结构很麻烦,我们在程序里都建了内表的结构了,而且如果内表格式改变还得跑到数据字典去改.其实我们可以不建这个结构。 在smartforms的 global settings->global definitions 里有个 types 我们可以在这里定义一个和程序里内表一样的结构.但是,在form interface 里定义参数的时候不能使用刚才定义的那个结构,激活的时候会报错。所以我们不要在这里定义参数,内表内容不通过该接口传过来,而是动态读取过来。我们在smartforms里直接读程序里的内表。global settings->global definitions 里有个 initialization 可以在定义一个指针
DATA: field(50).
FIELD-SYMBOLS:
type any.
field = '(Z_TEST)ITAB[]'.
ASSIGN (field) TO .
GT_LABEL[] = .
这样就可以把程序里的内表的值取出来了,并赋给了smartforms里的内表,然后就当GT_LABEL 就是你通过参数传进来的一样用就行了。通过这个方法就不用再需要在SAP Dictionary 里面定义结构了,调smartforms的时候也不用传参数了。
阅读(1521) | 评论(2) | 转发(0) |