SAP Adobe Form总结-2
实现效果:逐笔显示明细,各明细项目中存在备注说明栏位,显示在对应明细的下方,明细显示完成后需显示最后总结栏位,自动换页,如下所示
1)SFP创建接口,在表格构建器中添加对应的内容,如下
2)在Adobe Livecycle Designer中设计表格,结构如下:
为实现明细项(Row1[0])及相应备注栏位(Row1[2])对应显示,Row1中各项需组合为一个Section.
为实现内容动态扩展,最下方Page1以及Subform1设置如下:
Subform2设置如下:
Section设置如下
明细项及备注说明栏位设置如下,
FootRow设置如下
部分实现代码:
DATA: FM_NAME TYPE RS38L_FNAM, "功能模块的名称 FP_DOCPARAMS TYPE SFPDOCPARAMS, "格式处理格式参数 FP_OUTPUTPARAMS TYPE SFPOUTPUTPARAMS. "格式处理输出参数 *打印默认勾选参数 FP_OUTPUTPARAMS-DEST = 'LP01'. FP_OUTPUTPARAMS-REQDEL = 'X'. "FP_OUTPUTPARAMS-NODIALOG = 'X'. "FP_OUTPUTPARAMS-REQIMM = 'X'. * 设置语言 * FP_DOCPARAMS-LANGU = 'E'. * FP_DOCPARAMS-COUNTRY = 'US'. *&----打开 SPOOL JOB CALL FUNCTION 'FP_JOB_OPEN' "& FORM PROCESSING: CALL FORM CHANGING IE_OUTPUTPARAMS = FP_OUTPUTPARAMS EXCEPTIONS CANCEL = 1 USAGE_ERROR = 2 SYSTEM_ERROR = 3 INTERNAL_ERROR = 4 OTHERS = 5. IF SY-SUBRC <> 0. MESSAGE ID SY-MSGID TYPE SY-MSGTY NUMBER SY-MSGNO WITH SY-MSGV1 SY-MSGV2 SY-MSGV3 SY-MSGV4. ENDIF. *&----获取ADOBE FORM的名称参数 CALL FUNCTION 'FP_FUNCTION_MODULE_NAME' EXPORTING I_NAME = 'ZSD_FORM_SO_ORDER' IMPORTING E_FUNCNAME = FM_NAME. IF SY-SUBRC <> 0. MESSAGE ID SY-MSGID TYPE SY-MSGTY NUMBER SY-MSGNO WITH SY-MSGV1 SY-MSGV2 SY-MSGV3 SY-MSGV4. ENDIF. LOOP AT GT_HEAD INTO GW_HEAD. *获取GT_ITEM, *GT_NOTE为内表 *GW_NOTE-ZMARK = 'COMMISSION : ' . *APPEND GW_NOTE TO IT_NOTE. CALL FUNCTION FM_NAME EXPORTING /1BCDWB/DOCPARAMS = FP_DOCPARAMS HEAD = GW_HEAD ITEM = GT_ITEM ZNOTE = GT_NOTE EXCEPTIONS USAGE_ERROR = 1 SYSTEM_ERROR = 2 INTERNAL_ERROR = 3 OTHERS = 4. IF SY-SUBRC <> 0. MESSAGE ID SY-MSGID TYPE SY-MSGTY NUMBER SY-MSGNO WITH SY-MSGV1 SY-MSGV2 SY-MSGV3 SY-MSGV4. ENDIF. CLEAR:GT_NOTE. ENDLOOP. *&----关闭 CALL FUNCTION 'FP_JOB_CLOSE' EXCEPTIONS USAGE_ERROR = 1 SYSTEM_ERROR = 2 INTERNAL_ERROR = 3 OTHERS = 4. IF SY-SUBRC <> 0. MESSAGE ID SY-MSGID TYPE SY-MSGTY NUMBER SY-MSGNO WITH SY-MSGV1 SY-MSGV2 SY-MSGV3 SY-MSGV4. ENDIF.
对于明细行项目中的数据可以在设计器中直接进行统计计算。如以下案例: