SAP FICO应收账款账龄分析报表
一、报表逻辑




二、报表界面


三、报表代码
*&---------------------------------------------------------------------*
*& 程序名: ZRPFI_034
*& 创建者(公司)/日期:*
*& 程序描述:
*& 应收账款账龄分析表
*&---------------------------------------------------------------------*
*& 版本/修改者(公司)/日期//修改描述
*&
*&---------------------------------------------------------------------*
REPORT zrpfi_034.
TABLES: acdoca.
TYPES: BEGIN OF ty_alv,
* lx(10),
kunnr TYPE acdoca-kunnr, "客户代码
name1 TYPE kna1-name1, "客户名称
umskz TYPE acdoca-umskz, "特别总账标识
zterm TYPE knb1-zterm, "付款条件
text1 TYPE t052u-text1, "付款条件描述
prctr TYPE acdoca-prctr, "利润中心
racct TYPE acdoca-racct, "科目
zyt(1) TYPE c, "预提标识,凭证类型 = Z4
rhcur TYPE acdoca-rhcur, "币别
zqc TYPE acdoca-hsl, "期初余额
zdp_sq TYPE acdoca-hsl, "上期借方发生额【不显示】
zcp_sq TYPE acdoca-hsl, "上期贷方发生额【不显示】
zdp TYPE acdoca-hsl, "本期借方发生额
zcp TYPE acdoca-hsl, "本期贷方发生额
zqm TYPE acdoca-hsl, "期末余额
* hl TYPE bapi1093_0-exch_rate, "评估汇率
hl(40),
rwcur TYPE acdoca-rwcur, "原币
zqc_wsl TYPE acdoca-wsl, "期初余额(贷方)
zdp_sq_wsl TYPE acdoca-wsl, "上期借方交易额【不显示】
zcp_sq_wsl TYPE acdoca-wsl, "上期贷方交易额【不显示】
zdp_wsl TYPE acdoca-wsl, "本期借方交易额
zcp_wsl TYPE acdoca-wsl, "本期贷方交易额
zqm_wsl TYPE acdoca-wsl, "期末余额
zd1 TYPE acdoca-hsl, "1个月
zd2 TYPE acdoca-hsl, "2个月
zd3 TYPE acdoca-hsl, "3个月
zd4 TYPE acdoca-hsl, "4-6个月
zd5 TYPE acdoca-hsl, "7-12个月
zd6 TYPE acdoca-hsl, "1-2年
zd7 TYPE acdoca-hsl, "2-3年
zd8 TYPE acdoca-hsl, "3年以上
***增加账龄区间Yina 2024.11.29
zd9 LIKE acdoca-hsl , "4-5年
zd10 LIKE acdoca-hsl , "5年以上
***增加账龄区间Yina 2024.11.29
zqc_zcg TYPE acdoca-wsl, "期初余额【重估金额】
zqc_zcgc TYPE acdoca-wsl, "期初重估差异
zqm_zcg TYPE acdoca-wsl, "期初余额【重估金额】
zqm_zcgc TYPE acdoca-wsl, "期初重估差异
***增加款项性质的查找yina 2024.12.03
ztype1 LIKE bseg-dmbtr , "存货
ztype2 LIKE bseg-dmbtr , "资产
***增加款项性质的查找yina 2024.12.03
END OF ty_alv.
DATA: gt_alv TYPE TABLE OF ty_alv,
gs_alv TYPE ty_alv,
gt_alv_temp TYPE TABLE OF ty_alv.
DATA: gt_fcat TYPE lvc_t_fcat,
gs_fcat TYPE lvc_s_fcat,
gs_layo TYPE lvc_s_layo,
gt_sort TYPE lvc_t_sort,
gs_sort TYPE lvc_s_sort.
DATA: BEGIN OF it_ac_info_temp OCCURS 0,
kunnr LIKE acdoca-kunnr,
rhcur LIKE acdoca-rhcur,
drcrk LIKE acdoca-drcrk,
budat LIKE acdoca-budat,
prctr LIKE acdoca-prctr,
rwcur LIKE acdoca-rwcur,
hsl LIKE acdoca-hsl,
wsl LIKE acdoca-wsl,
umskz LIKE acdoca-umskz,
racct LIKE acdoca-racct,
rbukrs LIKE acdoca-rbukrs,
gjahr LIKE acdoca-gjahr,
belnr LIKE acdoca-belnr,
docln LIKE acdoca-docln,
rebzj LIKE acdoca-rebzj,
rebzg LIKE acdoca-rebzg,
rebzz LIKE acdoca-rebzz,
END OF it_ac_info_temp .
RANGES: r_racct FOR acdoca-racct.
SELECTION-SCREEN BEGIN OF BLOCK b_01 WITH FRAME TITLE TEXT-001.
PARAMETERS: p_rbukrs TYPE acdoca-rbukrs OBLIGATORY DEFAULT '1000'.
SELECT-OPTIONS: s_kunnr FOR acdoca-kunnr,
s_umskz FOR acdoca-umskz NO INTERVALS,
s_budat FOR acdoca-budat NO-EXTENSION OBLIGATORY.
* s_bldat FOR acdoca-bldat.
* parameters: p_ue as checkbox default 'X'.
*
* SELECT-OPTIONS: s_bldat for acdoca-bldat.
SELECTION-SCREEN END OF BLOCK b_01.
AT SELECTION-SCREEN.
"权限检查
DATA: lv_message TYPE string.
AUTHORITY-CHECK OBJECT 'F_BKPF_BUK'
ID 'BUKRS' FIELD p_rbukrs.
IF sy-subrc <> 0.
lv_message = '没有' && p_rbukrs && '公司代码权限!'.
MESSAGE lv_message TYPE 'E'.
ENDIF.
READ TABLE s_budat INDEX 1.
IF s_budat-high IS INITIAL.
s_budat-option = 'BT'.
s_budat-high = s_budat-low.
MODIFY s_budat INDEX 1.
ENDIF.
START-OF-SELECTION.
PERFORM frm_get_data.
* if p_ue = 'X'.
PERFORM frm_get_data_ue.
* endif.
PERFORM frm_build_fieldcat.
PERFORM frm_display_data.
*&---------------------------------------------------------------------*
*& Form frm_get_data
*&---------------------------------------------------------------------*
*& text
*&---------------------------------------------------------------------*
*& --> p1 text
*& <-- p2 text
*&---------------------------------------------------------------------*
FORM frm_get_data .
DATA: BEGIN OF lt_kunnr OCCURS 0,
kunnr TYPE acdoca-kunnr,
prctr TYPE acdoca-prctr,
rhcur TYPE acdoca-rhcur, "币别【本币】
rwcur TYPE acdoca-rwcur, "币别【原币】
umskz TYPE acdoca-umskz,
racct TYPE acdoca-racct,
* blart TYPE acdoca-blart,
END OF lt_kunnr.
DATA: r_racct TYPE RANGE OF acdoca-racct WITH HEADER LINE.
DATA: gt_data TYPE TABLE OF ty_alv WITH HEADER LINE.
DATA: lv_num TYPE i,
lv_date TYPE acdoca-budat,
ls_rate TYPE bapi1093_0.
DATA: lv_zdp TYPE acdoca-hsl,
lv_zcp TYPE acdoca-hsl,
lv_zdp_wsl TYPE acdoca-wsl,
lv_zcp_wsl TYPE acdoca-wsl.
"特别总账标识
IF s_umskz[] IS INITIAL.
INSERT VALUE #( sign = 'I' option = 'EQ' low = '' ) INTO TABLE s_umskz.
ENDIF.
"科目排除
INSERT VALUE #( sign = 'I' option = 'BT' low = '1221000000' high = '1221999999' )
INTO TABLE r_racct.
"本期期间
SELECT kunnr,rhcur,drcrk,rwcur,prctr,umskz,racct,
SUM( CASE WHEN budat >= @s_budat-low THEN hsl ELSE 0 END ) AS hsl,
SUM( CASE WHEN budat >= @s_budat-low THEN wsl ELSE 0 END ) AS wsl
FROM acdoca
WHERE rbukrs = @p_rbukrs
AND kunnr IN @s_kunnr
&n
