配置公式计算示例

功能介绍:

用户会配置如下的表,以指定公式:



实现下列功能:

1、单科目:筛选出指定科目的金额并合计

2、区间科目:筛选出指定区间科目的金额并合计

3、计算公式:按照ZCALTEXT中指定的公式去计算,指定的计算项是ZNUM(行号)

这个表的定义如下:


这里是通过一个rfc函数来实现的,函数的代码如下:

FUNCTION zfm_fi_re02.
*"----------------------------------------------------------------------
*"*"Local interface:
*"  IMPORTING
*"     VALUE(IM_RBUKRS) TYPE  BUKRS OPTIONAL
*"     VALUE(IM_RYEAR) TYPE  GJAHR OPTIONAL
*"     VALUE(IM_PRCTR) TYPE  PRCTR OPTIONAL
*"  TABLES
*"      EX_T_002SUM STRUCTURE  ZSFI_002
*"      EX_T_002DETAIL STRUCTURE  ZSFI_002
*"----------------------------------------------------------------------
  TYPES:
  BEGIN OF tp_faglflext,
    rbukrs TYPE faglflext-rbukrs,   "公司代码
    ryear  TYPE faglflext-ryear,    "年度
    prctr  TYPE faglflext-prctr,    "利润中心
    rfarea TYPE faglflext-rfarea,   "功能范围
    racct  TYPE faglflext-racct,    "科目
    hsl01  TYPE faglflext-hsl01,    "1月
    hsl02  TYPE faglflext-hsl02,    "2月
    hsl03  TYPE faglflext-hsl03,    "3月
    hsl04  TYPE faglflext-hsl04,    "4月
    hsl05  TYPE faglflext-hsl05,    "5月
    hsl06  TYPE faglflext-hsl06,    "6月
    hsl07  TYPE faglflext-hsl07,    "7月
    hsl08  TYPE faglflext-hsl08,    "8月
    hsl09  TYPE faglflext-hsl09,    "9月
    hsl10  TYPE faglflext-hsl10,    "10月
    hsl11  TYPE faglflext-hsl11,    "11月
    hsl12  TYPE faglflext-hsl12,    "12月
    END OF tp_faglflext.

  DATA:
        s_rbukrs TYPE RANGE OF faglflext-rbukrs WITH HEADER LINE,
        s_ryear  TYPE RANGE OF faglflext-ryear  WITH HEADER LINE,
        s_prctr  TYPE RANGE OF faglflext-prctr  WITH HEADER LINE,
        s_racct TYPE RANGE OF faglflext-racct WITH HEADER LINE,
        s_rfarea TYPE RANGE OF faglflext-rfarea WITH HEADER LINE,
        it_skat TYPE TABLE OF skat,
        lw_skat TYPE skat,
        wa_str   TYPE ty_str,
        it_data TYPE TABLE OF tp_data,  "按照序号合计金额
        wa_data TYPE tp_data,
        it_faglflext TYPE TABLE OF tp_faglflext,
        wa_faglflext TYPE tp_faglflext,
        it_config TYPE TABLE OF ztfi_002,
        wa_config TYPE ztfi_002.
*-----------------------------------------------------------------------
* 取数
  SELECT FROM ztfi_002 INTO TABLE it_config.
  IF sy-subrc 0.
    LOOP AT it_config INTO wa_config.
      "需要的科目信息
      CLEAR:s_racct.
      CASE wa_config-zcalcu.
        WHEN '1'"单科目
          s_racct-sign 'I'.
          s_racct-option 'EQ'.
          s_racct-low wa_config-racct_f.
          APPEND s_racct.
        WHEN '2'"区间科目
          s_racct-sign 'I'.
          s_racct-option 'BT'.
          s_racct-low 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值