应收账款账龄报表 IDCNAR 增加自定义字段

作者:ABAP三叔 约 4 分钟阅读 更新日期:2025-03-02 1 年前更新 标签:ABAP, CO, FI, 开发, 财务

前言

这个报表是国内FI模块非常常用的,有些客户有需求,想要在该报表增加自定义字段,本文将介绍如何实现。

检查是否需要打NOTE

查看当前系统版本是否需要打 3202661NOTE,开发顾问不清楚的话,请FI顾问或者basis协助,不打上这个note的话,增强程序后会DUMP。

结构中增加字段

需要在 “IDCN_S_AR_AGING_HEADER” &“IDCN_S_AR_AGING_ITEM”

两个结构中增加增强的字段

创建隐式增强

1. SE38打开包含程序 **RFIDCN_AR_AGING_SUBROUTINE** ,找到子例程 _** **ficn_app_oth_fields;** ** _

2. 在结尾处增加隐式增强,添加自定义字段的定义;

"""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""$"$\SE:(1) Form FICN_APP_OTH_FIELDS, End A*$*$-Start: (1)---------------------------------------------------------------------------------$*$*ENHANCEMENT 1 ZENH_IDCN_AR_AGING_FCAT. "active version* add by yu.xiaosan 20230516 READ TABLE ct_fieldcat TRANSPORTING NO FIELDS WITH KEY fieldname = 'ZZ01'. IF sy-subrc <> 0. CLEAR ls_fieldcat. ls_fieldcat-fieldname = 'ZZ01'. ls_fieldcat-scrtext_l = '管理利润中心'. ls_fieldcat-scrtext_m = '管理利润中心'. ls_fieldcat-scrtext_s = '管理利润中心'. ls_fieldcat-col_pos = 232. APPEND ls_fieldcat TO ct_fieldcat. ENDIF. CLEAR ls_fieldcat. ls_fieldcat-fieldname = 'ZZ01_TEXT'. ls_fieldcat-scrtext_l = '管理利润中心描述'. ls_fieldcat-scrtext_m = '管理利润中心描述'. ls_fieldcat-scrtext_s = '管理利润中心描述'. ls_fieldcat-col_pos = 233. APPEND ls_fieldcat TO ct_fieldcat.ENDENHANCEMENT.*$*$-End:   (1)---------------------------------------------------------------------------------$*$

c. SE38打开包含程序 **RFIDCN_AR_AGING_PBO,** 找到子例程 **split_screen_0101;**

d. 在开始处增加隐式增强,添加自定义字段的取值逻辑; **

**

"""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""$"$\SE:(1) Form SPLIT_SCREEN_0101, Start A*$*$-Start: (1)---------------------------------------------------------------------------------$*$*ENHANCEMENT 2 ZENH_IDCN_AR_AGING_FCAT. "active version* add by yu.xiaosan 20230516 IF gt_mid_output[] IS NOT INITIAL. SELECT prctr, ltext INTO TABLE @DATA(lt_cepct) FROM cepct FOR ALL ENTRIES IN @gt_mid_output WHERE prctr = @gt_mid_output-zz01 AND spras = @sy-langu. SORT lt_cepct BY prctr. IF sy-subrc = 0. LOOP AT gt_mid_output ASSIGNING FIELD-SYMBOL(<fs_output>). READ TABLE lt_cepct INTO DATA(ls_cepct) WITH KEY prctr = <fs_output>-zz01 BINARY SEARCH. CHECK sy-subrc = 0. <fs_output>-zz01_text = ls_cepct-ltext. ENDLOOP. ENDIF. ENDIF.ENDENHANCEMENT.*$*$-End: (1)---------------------------------------------------------------------------------$*$*

实现BADI IDCN_AR_AGING

SE18创建 IDCN_AR_AGING的实施,

在i f_idcn_ar_aging~post_selection_control方法中添加取值逻辑 。

METHOD if_idcn_ar_aging~post_selection_control. IF ct_content_header[] IS NOT INITIAL. SELECT prctr, ltext INTO TABLE @DATA(lt_cepct) FROM cepct FOR ALL ENTRIES IN @ct_content_header WHERE prctr = @ct_content_header-zz01 AND spras = @sy-langu. SORT lt_cepct BY prctr. IF sy-subrc = 0. LOOP AT ct_content_header ASSIGNING FIELD-SYMBOL(<fs_header>). READ TABLE lt_cepct INTO DATA(ls_cepct) WITH KEY prctr = <fs_header>-zz01 BINARY SEARCH. CHECK sy-subrc = 0. <fs_header>-zz01_text = ls_cepct-ltext. ENDLOOP. ENDIF. ENDIF. ENDMETHOD.

效果展示

第一层汇总ALV

第二层明细ALV

ABAP三叔

关于作者:ABAP三叔

企业信息化与 SAP 技术顾问,长期专注 SAP ABAP、FI/CO、MM、SD 等模块的技术分享与实战经验总结。查看更多介绍

来源说明:本文内容由「应收账款账龄报表IDCNAR增加自定义字段.md」整理生成,仅用于内部技术分享与学习交流。