业务背景:
在FBL1N/FBL3N/FBL5N未清项报表中,显示总账科目名称、供应商名称1、客户名称1。
解决方案:
FIBF > Settings > Products > of a Customer
添加所需的field,此处称为product,同时需要激活勾选Active
FIBF > Settings > P/S Mod > of a Customer
添加内容
Event:00001650
Product:XXXXXX
Ctr:SE
Function Module:Z_FI_ITEMREPORT
注此处所写入的Function Module需在后续的步骤中去创建。
Se11:Append Structure to RFPOS
在Append Structure中写入你需要添加的field,保存激活。
Se11:Append Structure to RFPOSX
在RFPOSX中加入和RFPOS同样的field,保存激活。
此处这两个structure则是控制layout的数据。
Se37 Creating a Z_FI_FG Function Group.
then Copy Function SAMPLE_INTERFACE_00001650 into Z_FI_ITEMREPORT
此处的Z_FI_ITEMREPORT请与step2中的名称一致。
加入code实现:
FUNCTION Z_FI_ITEMREPORT.
*"------------------------------------
*"*"局部接口:
*" IMPORTING
*" VALUE(I_POSTAB) LIKE RFPOS STRUCTURE RFPOS
*" EXPORTING
*" VALUE(E_POSTAB) LIKE RFPOS STRUCTURE RFPOS
*"------------------------------------
*-------------- Initialize Output by using the following line ----------
E_POSTAB = I_POSTAB.
*BREAK-POINT.
data: ZKNAME1 type LFA1-NAME1,
ZDNAME1 type KNA1-NAME1,
ZSKATTXT type SKAT-TXT20.
"得到供应商名称1
IF I_POSTAB-KOART = 'K'.
select single NAME1 from LFA1
into ZKNAME1
where LIFNR = I_POSTAB-KONTO.
ENDIF.
"得到客户名称1
IF I_POSTAB-KOART = 'D'.
select single NAME1 from KNA1
into ZKNAME1
where KUNNR = I_POSTAB-KONTO.
ENDIF.
"得到总账科目名称
select single TXT20 from SKAT
into ZSKATTXT
where SAKNR = I_POSTAB-HKONT
AND KTOPL = '1000'.
E_POSTAB-ZKNAME1 = ZKNAME1.
E_POSTAB-ZDNAME1 = ZDNAME1.
E_POSTAB-ZSKATTXT = ZSKATTXT.
ENDFUNCTION.
Se38 Run Report RFPOSXEXTEND then click Yes
在执行的时候,会提示如下页面
点击yes执行完成。
到此为止,已经可以实现对layout的任意设置,任意TABLE,任意field。