sap 动态字段的使用

1、sap中的动态字段其实类似c#里面的指针,都是指向的地址。 只是写法不同,sap 中的field-symbols就是类似指针。

DATA: a TYPE i value 10, b TYPE i.

FIELD-SYMBOLS <fs> TYPE i.

ASSIGN b TO <fs>.

<fs> = a.

WRITE: 'b =',b.

现在b的值即为a的值。
 

2、下面记录一下,我在工作中使用到field-symbol 的情况。

背景介绍:

   用户发送数据过来,有wbs编码,开始日期,结束日期,   我们需要在sap系统的rpsco表中,找到在开始结束日期之间的项目的所有成本,累加返回给用户。

  在rpsco表中  wpl01  wlp02……..wpl12  分别代码1 到12 月每个月的项目成本。 所以我需要将查询出来的所有  这类字段相加。

   如开始结束日期为:  2013.02.08    结束日期     2014.01.01

   项目成本=   (2013年 wpl02+wpl03+…….+wpl12 )+ (2014年  wpl01)

 

我的处理方法是:  把所有的wpl 都查询出来,再根据开始日期和结束日期去计算和。

计算和的代码如下:

注意这里的内表一定要定义成全局的。

 form frm_get_sum using value(u_field)   "字段   gwa_result-wpl
                            value(u_num)     "月份数
                            value(u_begin)   "开始月份
                    changing l_total.
    data:g_field(40).
    data: l_num(2) type n.
    l_num = u_begin.
    do u_num times.
      clear g_field.
      concatenate u_field l_num into g_field.    "这里生产字段  gwa_result-wpl01...
      assign (g_field) to <fs1>.
      if <fs1> is assigned.   “判断是否已指定对象
        l_total  = l_total + <fs1>.    “累加和
      endif.
      unassign <fs1>.    “释放
      l_num = l_num + 1.
    enddo.
  endform.   

 

 

 

 

posted @ 2014-01-24 17:01  cindy_Lu  阅读(1983)  评论(0编辑  收藏  举报