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. 

原创文章,作者:ItWorker,如若转载,请注明出处:https://blog.ytso.com/20232.html

(0)
上一篇 2021年7月19日
下一篇 2021年7月19日

相关推荐

发表回复

登录后才能评论