sap 动态字段的使用

本文介绍了如何使用 SAP 中的 field-symbols 功能来处理 RPSCO 表中的动态字段,实现根据特定日期范围计算项目成本总和的方法。通过将 wpl 字段系列的数据累加起来,可以快速准确地获取指定时间段内的成本信息。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

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.   

 

 

 

 

转载于:https://www.cnblogs.com/cindyLu/p/3532665.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值