最近优化了很多老程序,代码很冗余,特别是财务的有很多有规则的字段以及月份计算。 通常的来可能会写一个form 来把通用的放在一起,然后通过传值来实现只用一个字段变量来达到动态的目的,但是这个有一个弊端,就是外层还是要把所有字段全部列出来,比如FAGFLEXT 表里的月份字段,12个都要列出来。
为了更简单易懂,删除掉冗余的东西,还是要来点真正的动态。这里用到了指针。来举个具体的例子。
用这段的背景是,我做了QM质检一系列的,有整机档案,检验批,质量通知单, 还有一个汇总的程序,因为要求实时获取,所以当运行汇总程序时会抓取另外三个程序的数据过来,然后在ALV中实现穿透,如果穿透的时候再去调用程序就会太慢了,所以就要把抓取过来的数据存起来,然后根据月份去分类,这时就有个规律了,1-12月,字段也是有规则的。
首先定义好变量用来装字段名 ,然后定义一个指针。
DATA:
fieldname1 TYPE string, " 定义变量用于保存字段名
fieldname2 TYPE string, " 定义变量用于保存字段名
fieldname3 TYPE string. " 定义变量用于保存字段名
FIELD-SYMBOLS:
<dyn_field_c1> TYPE any,
<dyn_field_c2> TYPE any,
<dyn_field_c3> TYPE any.
DO 12 TIMES.
lv_num3 = lv_num3 + 1. &