当前位置: 首页 > news >正文

SAP FICO应付账款账龄分析表

一、报表逻辑

二、报表界面

.

三、报表逻辑

*&---------------------------------------------------------------------*
*& 程序名: ZRPFI_0002
*& 创建者(公司)/日期:*
*& 程序描述:
*&
*&---------------------------------------------------------------------*
*& 版本/修改者(公司)/日期//修改描述
*&
*&---------------------------------------------------------------------*
REPORT zrpfi_0002.

INCLUDE zrpfi_0002_top."变量定义

INCLUDE zrpfi_0002_f01."核心业务代码

INCLUDE zrpfi_0002_f02."响应事件的代码

INCLUDE zrpfi_0002_c01."Class Definition

INCLUDE zrpfi_0002_s01."ALV显示与控制

START-OF-SELECTION.
  READ TABLE s_zdued INDEX 1.
  IF s_zdued-high IS INITIAL.
    MESSAGE '请输入日期上限' TYPE 'S' DISPLAY LIKE 'E'.
    STOP.
  ENDIF.
*  if p_ue = 'X'.
*    IF s_bldat-high IS INITIAL.
*      MESSAGE '请输入期初凭证日期上限' TYPE 'S' DISPLAY LIKE 'E'.
*      STOP.
*    ENDIF.
*  endif.


  PERFORM frm_check_authorization.

  PERFORM frm_get_data.

  PERFORM frm_process_data.
*  if p_ue = 'X'.
    PERFORM frm_get_data_ue.

    PERFORM frm_process_data_ue.

*  endif.

  PERFORM frm_show_alv USING gt_alv.

*&---------------------------------------------------------------------*
*& 包含               ZRPFI_0002_TOP
*&---------------------------------------------------------------------*
TABLES:acdoca,lfb1.

* Switch for list display yes / no
DATA:gv_list_display TYPE sap_bool.
* Reference for container control
DATA:gr_cont TYPE REF TO cl_gui_custom_container.
* Reference for ALV instance
DATA:gr_alv TYPE REF TO cl_salv_table.
* Reference for error situations
DATA:gr_error TYPE REF TO cx_salv_error.

DATA:gt_alv TYPE TABLE OF zsfi_alv_003.

DATA:gt_alv_temp TYPE TABLE OF zsfi_alv_003.

DATA:gt_alv_sum TYPE TABLE OF zsfi_alv_003.

DATA: gs_alv LIKE LINE OF gt_alv.

RANGES: r_racct FOR acdoca-racct.

DATA: BEGIN OF it_acdoca_info_temp OCCURS 0,
        rbukrs   LIKE acdoca-rbukrs,
        lifnr    LIKE acdoca-lifnr,
        rhcur    LIKE acdoca-rhcur,
        rwcur    LIKE acdoca-rwcur,
        drcrk    LIKE acdoca-drcrk,
        prctr    LIKE acdoca-prctr,
        hsl      LIKE acdoca-hsl,
        wsl      LIKE acdoca-wsl,
        sgtxt    LIKE acdoca-sgtxt,
        period   TYPE i,
        gjahr(4),
        poper(3),
        umskz    LIKE acdoca-umskz,
        racct    LIKE acdoca-racct,
        belnr    LIKE acdoca-belnr,
        docln    LIKE acdoca-docln,
        rebzj    LIKE acdoca-rebzj,
        rebzg    LIKE acdoca-rebzg,
        rebzz    LIKE acdoca-rebzz,
        blart    LIKE acdoca-blart,
        budat    TYPE acdoca-budat,
      END OF it_acdoca_info_temp.


SELECTION-SCREEN BEGIN OF BLOCK b_01 WITH FRAME TITLE TEXT-001.
  SELECT-OPTIONS:
    s_bukrs FOR lfb1-bukrs OBLIGATORY,
    s_lifnr FOR acdoca-lifnr,
    s_umskz FOR acdoca-umskz NO-DISPLAY,
    s_zdued FOR acdoca-budat NO-EXTENSION OBLIGATORY DEFAULT sy-datum.

*  parameters: p_ue as checkbox default 'X'.
*
*  SELECT-OPTIONS: s_bldat for acdoca-bldat.
*  PARAMETERS:
**    p_poper TYPE acdoca-poper DEFAULT sy-datum+4(2),
*    p_zdued TYPE budat DEFAULT sy-datum.
SELECTION-SCREEN END OF BLOCK b_01.

*SELECTION-SCREEN BEGIN OF BLOCK b_02 WITH FRAME TITLE TEXT-002.
*  PARAMETERS:p_layout TYPE slis_vari.
*SELECTION-SCREEN END OF BLOCK b_02.

*&---------------------------------------------------------------------*
*& 包含               ZRPFI_0002_F01
*&---------------------------------------------------------------------*
*&---------------------------------------------------------------------*
*& Form frm_check_authorization
*&---------------------------------------------------------------------*
*& text
*&---------------------------------------------------------------------*
*& -->  p1        text
*& <--  p2        text
*&---------------------------------------------------------------------*
FORM frm_check_authorization .

ENDFORM.
*&---------------------------------------------------------------------*
*& Form frm_get_data
*&---------------------------------------------------------------------*
*& text
*&---------------------------------------------------------------------*
*& -->  p1        text
*& <--  p2        text
*&---------------------------------------------------------------------*
FORM frm_get_data .
*  IF p_zdued IS INITIAL.
*    p_zdued = sy-datum.
*  ENDIF.

  IF s_umskz[] IS INITIAL .
    INSERT VALUE #( sign = 'I' option = 'EQ' low = '' ) INTO TABLE s_umskz.
  ENDIF.

  SELECT
    rbukrs,
    acdoca~lifnr,
    name1,
    umskz,
    rhcur,
    rwcur,
    prctr,
    racct,
    SUM( CASE drcrk WHEN 'S' THEN hsl ELSE 0 END ) AS zdp,
    SUM( CASE drcrk WHEN 'H' THEN hsl ELSE 0 END ) AS zcp,
    SUM( CASE drcrk WHEN 'S' THEN wsl ELSE 0 END ) AS zdp_wsl,
    SUM( CASE drcrk WHEN 'H' THEN wsl ELSE 0 END ) AS zcp_wsl
  FROM acdoca
  INNER JOIN lfa1 ON lfa1~lifnr = acdoca~lifnr
  INTO CORRESPONDING FIELDS OF TABLE @gt_alv
  WHERE rbukrs IN @s_bukrs
    AND acdoca~lifnr IN @s_lifnr
    AND budat IN @s_zdued
    AND koart EQ 'K'
    AND racct IN ('2202010001','2202020001')
    AND umskz IN @s_umskz
    AND ( augbl EQ '' OR ( augbl NE '' AND augdt >= @s_zdued-low ) )
    AND awtyp NE 'MKPF'
    AND blart NE 'UE'
*    AND xreversing = ''
*    AND  xreversed = ''
   GROUP BY rbukrs,acdoca~lifnr,name1,rhcur,rwcur,prctr,umskz,racct.

  CLEAR: gt_alv_temp[].
  SELECT
    rbukrs,
    acdoca~lifnr,
    name1,
    umskz,
    rhcur,
    rwcur,
    prctr,
    racct,
    0 AS zdp,
    0 AS zcp,
    0 AS zdp_wsl,
    0 AS zcp_wsl
  FROM acdoca
  INNER JOIN lfa1 ON lfa1~lifnr = acdoca~lifnr
  INTO CORRESPONDING FIELDS OF TABLE @gt_alv_temp
  WHERE rbukrs IN @s_bukrs
    AND acdoca~lifnr IN @s_lifnr
    AND budat < @s_zdued-low
    AND koart EQ 'K'
    AND racct IN ('2202010001','2202020001')
    AND umskz IN @s_umskz
    AND ( augbl EQ '' OR ( augbl NE '' AND augdt >= @s_zdued-low ) )
    AND awtyp NE 'MKPF'
    AND blart NE 'UE'
  GROUP BY rbukrs,acdoca~lifnr,name1,rhcur,rwcur,prctr,umskz,racct.
  LOOP AT gt_alv_temp INTO gs_alv.
    COLLECT gs_alv INTO gt_alv.
  ENDLOOP.
  CLEAR: gt_alv_temp[].


ENDFORM.
*&---------------------------------------------------------------------*
*& Form frm_process_data
*&---------------------------------------------------------------------*
*& text
*&---------------------------------------------------------------------*
*& -->  p1        text
*& <--  p2        text
*&---------------------------------------------------------------------*
FORM frm_process_data .
*  IF p_poper IS INITIAL.
*    p_poper = sy-datum+4(2).
*  ENDIF.
*
*  DATA(lv_poper) = p_poper - 1.
  DATA: lv_num TYPE acdoca-hsl.

  DATA: lv_date TYPE acdoca-budat,
        ls_rate TYPE bapi1093_0.

  READ TABLE s_zdued INDEX 1.
  "获取最大范围日期当月的最后一天
  lv_date = s_zdued-high.
  CALL FUNCTION 'LAST_DAY_OF_MONTHS'
    EXPORTING
      day_in            = lv_date
    IMPORTING
      last_day_of_month = lv_date
    EXCEPTIONS
      day_in_no_date    = 1
      OTHERS            = 2.
  IF sy-subrc <> 0.
* Implement suitable error handling here
  ENDIF.

  SELECT
    rbukrs,
    lifnr,
    rhcur,
    rwcur,
    prctr,
    umskz,
    racct,
    SUM( CASE drcrk WHEN 'S' THEN hsl ELSE 0 END ) AS zdp,
    SUM( CASE drcrk WHEN 'H' THEN hsl ELSE 0 END ) AS zcp,
    SUM( CASE drcrk WHEN 'S' THEN wsl ELSE 0 END ) AS zdp_wsl,
    SUM( CASE drcrk WHEN 'H' THEN wsl ELSE 0 END ) AS zcp_wsl
  FROM acdoca INTO TABLE @DATA(lt_acdoca_per)
  WHERE rbukrs IN @s_bukrs
    AND lifnr IN @s_lifnr
    AND budat < @s_zdued-low
    AND koart EQ 'K'
    AND racct IN ('2202010001','2202020001')
    AND umskz IN @s_umskz
    AND ( augbl EQ '' OR ( augbl NE '' AND augdt >= @s_zdued-low ) )
    AND awtyp NE 'MKPF'
    AND blart NE 'UE'
*    and XREVERSED = 'X'
  GROUP BY rbukrs,lifnr,rhcur,rwcur,prctr,umskz,racct.

*  CLEAR lv_poper.

  SELECT
    rbukrs,
    lifnr,
    rhcur,
    rwcur,
    drcrk,
    prctr,
    hsl,
    wsl,
    sgtxt,
    0 AS period,
    left( budat,4 ) AS gjahr,
    substring( budat,5,2 ) AS poper,
    umskz,
    racct,
    belnr,
    docln,
    rebzj,
    rebzg,
    rebzz,
    blart,
    budat
    FROM acdoca
    WHERE rbukrs IN @s_bukrs
      AND lifnr IN @s_lifnr
      AND budat <= @s_zdued-high
      AND koart EQ 'K'
      AND racct IN ('2202010001','2202020001')
      AND umskz IN @s_umskz
*      AND ( augbl EQ '' or ( augbl ne '' and augdt >= @s_zdued-low ) )
      AND ( augbl EQ '' OR ( augbl NE '' AND augdt > @s_zdued-high ) )
*      AND augbl EQ ''
      AND awtyp NE 'MKPF'
      AND blart NE 'UE'
    INTO CORRESPONDING FIELDS OF  TABLE @it_acdoca_info_temp
    .

*  SELECT
*    rbukrs,
*    lifnr,
*    rhcur,
*    rwcur,
*    drcrk,
*    prctr,
*    hsl,
*    wsl,
*    sgtxt,
*    0 AS period,
*    left( budat,4 ) AS gjahr,
*    substring( budat,5,2 ) AS poper,
*    umskz,
*    racct
*    FROM acdoca
*    WHERE rbukrs IN @s_bukrs
*      AND lifnr IN @s_lifnr
*      

http://www.dtcms.com/a/604951.html

相关文章:

  • Pinia Store 生命周期与状态持久性详解
  • 大数据时代时序数据库选型指南:为何Apache IoTDB是最优解
  • 做网站的一个专题在线上传图片生成链接
  • 图论专题(三):“可达性”的探索——DFS/BFS 勇闯「钥匙和房间」
  • 图论专题(一):Hello, Graph! 掌握“建图”与“遍历”的灵魂
  • 做彩票网站能挣到钱吗中国最好的购物平台
  • 南京做网站群的公司岳西县住房和城乡建设局网站
  • 前端高频面试题之Vue(高级篇)
  • 【附源码】告别静态密码!openHiTLS 开源一次性密码协议(HOTP/TOTP),推动动态认证普及
  • UniApp 小程序中使用地图组件
  • 25华北理工大学考情数据分析
  • Unity Shader Graph 3D 实例 - 基础的模型贴图渲染
  • 17.TCP编程
  • Java高级特性:单元测试、反射、注解、动态代理
  • python机器学习工程化demo(包含训练模型,预测数据,模型列表,模型详情,删除模型)支持线性回归、逻辑回归、决策树、SVC、随机森林等模型
  • 逻辑回归在个性化推荐中的原理与应用
  • 织梦网站后台怎么登陆郑州知名做网站公司有哪些
  • 免费做网站的软件跨境电商自建站平台
  • 本机oracle连接延时41970 毫秒
  • 不到一块钱的带USB 2.4G收发 SOC芯片,集成2.4G射频 32位MCU
  • Ubuntu 24.04 安装 PostgreSQL
  • 数据科学每日总结--Day18--数据库
  • 【ZeroRange WebRTC】WebRTC 基于 STUN 的 srflx 直连原理与实现
  • neovim等模态编辑器最优雅的输入法解决方案
  • FaceBook叫板OpenAI!开源 Omnilingual ASR:支持1600多种语言的开源多语言语音识别
  • 分享一个MySQL万能备份脚本
  • 大模型数据洞察能力方法调研
  • 32位MCU芯片国产品牌(32系列单片机常用型号有哪些)
  • 网站底部留言代码赤峰建设淘宝网站
  • 方特网站是谁做的照片做视频的网站