如何在FBCJ中自定义现金日记账收据及多公司代码模板配置?
FBCJ现金日记账收据自定义及多公司代码配置方案
1. FBCJ现金日记账收据自定义步骤
- 用事务码
SE71创建/修改SAP脚本模板:- 输入自定义表单名(比如Z_FBCJ_RECEIPT),选“表单”类型后点击创建,建议基于标准收据表单
RFKORD10复制修改,按需调整字段布局、添加公司logo或自定义文本。
- 输入自定义表单名(比如Z_FBCJ_RECEIPT),选“表单”类型后点击创建,建议基于标准收据表单
- 在
FBCJ中关联模板:- 进入现金日记账后,点击菜单栏「环境」→「收据打印」→「维护格式」,把自定义的脚本表单分配给对应业务场景。
- 配置输出类型:
- 用事务码
NACE找到应用程序FI,选中输出类型KORD,将自定义表单分配给该输出类型,并维护对应的处理程序。
- 用事务码
- 测试验证:在FBCJ完成一笔现金业务后执行打印,确认自定义模板生效。
2. 多公司代码不同收据模板配置方案
无需编码实现方式
完全可以通过标准配置搞定,步骤如下:
- 打开事务码
NACE,选FI应用后点击「条件记录」,选中输出类型KORD并点击「创建」。 - 以「公司代码」作为条件字段,为每个公司代码单独分配对应的自定义脚本表单(比如公司代码1000配Z_FBCJ_RECEIPT_1000,2000配Z_FBCJ_RECEIPT_2000)。
- 打印时系统会自动根据当前业务的公司代码匹配对应模板,不用写代码。
ABAP开发实现方式
如果需要更灵活的判断逻辑(比如结合成本中心等其他字段),可以这么做:
- 找到FBCJ打印的标准函数模块
FI_PRINT_CASH_JOURNAL_RECEIPT,或者主程序SAPMF05L,优先用隐式增强而非直接修改标准程序。 - 在表单调用前添加逻辑,根据当前的公司代码(取自BKPF-BUKRS)动态选择对应的表单名称。
- 示例代码片段:
DATA: lv_formname TYPE tdsfname. CASE bkpf-bukrs. WHEN '1000'. lv_formname = 'Z_FBCJ_RECEIPT_1000'. WHEN '2000'. lv_formname = 'Z_FBCJ_RECEIPT_2000'. WHEN OTHERS. lv_formname = 'RFKORD10'. " fallback到标准模板 ENDCASE. CALL FUNCTION 'OPEN_FORM' EXPORTING FORM = lv_formname LANGUAGE = sy-langu DEVICE = 'PRINTER'.
- 注意:做系统变更前要遵循企业的ABAP开发规范,优先使用增强方式避免破坏标准功能。
内容的提问来源于stack exchange,提问作者Mirzonabot Mirzonabotov
相关产品推荐
相关产品推荐

