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.

 对于明细行项目中的数据可以在设计器中直接进行统计计算。如以下案例:

posted @ 2021-09-01 13:38  kang09  阅读(218)  评论(0编辑  收藏  举报