付款凭证列印

经过了一系列的大餐,就不能再少了SmartForm的应用咯。当然这个例子还包括了include,和 去前导零 CALL FUNCTION 'CONVERSION_EXIT_ALPHA_OUTPUT'

先来看看ZFI006
  1. REPORT  ZFI006.  
  2. TABLES: BSEG,BKPF,SKAT,LFA1,VBSEGS .  
  3. TYPE-POOLS: SLIS.  
  4.   
  5. INCLUDE ZFI006TOP.  
  6.   
  7. SELECTION-SCREEN BEGIN OF BLOCK B1 WITH FRAME TITLE TEXT-001.  
  8. SELECT-OPTIONS:  
  9.   S_BUKRS FOR BKPF-BUKRS Default 5000,          "CoCode  
  10.   S_BELNR FOR BKPF-BELNR OBLIGATORY,            "FI Doc  
  11.   S_GJAHR FOR BKPF-GJAHR ,                      "Fiscal Year  
  12.   S_BLART FOR BKPF-BLART no-display,            "Doc Type  
  13.   S_BLDAT FOR BKPF-BLDAT no-display,            "Doc Date  
  14.   S_BUDAT FOR BKPF-BUDAT.                       "Posting Date  
  15. SELECTION-SCREEN END OF BLOCK b1.  
  16.   
  17. INCLUDE ZFI006F00.  
  18. INCLUDE ZFI006F01.  
  19.   
  20. INITIALIZATION.  
  21.   
  22. AT SELECTION-SCREEN OUTPUT.  
  23.   
  24. START-OF-SELECTION.  
  25.     PERFORM GET_BSEG.  
  26.     PERFORM PROCESS_DATA.  
  27.     PERFORM CAL_DATA.  
  28.     PERFORM EVENTS_BUILD.  
  29.     PERFORM LAYOUT_BUILD.  
  30.     PERFORM FIELDS_BUILD.  
  31.     PERFORM DISPLAY_DATA.  
  32. END-OF-SELECTION.  
  33.   
  34. TOP-OF-PAGE.  
  35.   
  36. AT USER-COMMAND.  
  37.   
  38. AT LINE-SELECTION.  
REPORT  ZFI006.
TABLES: BSEG,BKPF,SKAT,LFA1,VBSEGS .
TYPE-POOLS: SLIS.

INCLUDE ZFI006TOP.

SELECTION-SCREEN BEGIN OF BLOCK B1 WITH FRAME TITLE TEXT-001.
SELECT-OPTIONS:
  S_BUKRS FOR BKPF-BUKRS Default 5000,          "CoCode
  S_BELNR FOR BKPF-BELNR OBLIGATORY,            "FI Doc
  S_GJAHR FOR BKPF-GJAHR ,                      "Fiscal Year
  S_BLART FOR BKPF-BLART no-display,            "Doc Type
  S_BLDAT FOR BKPF-BLDAT no-display,            "Doc Date
  S_BUDAT FOR BKPF-BUDAT.                       "Posting Date
SELECTION-SCREEN END OF BLOCK b1.

INCLUDE ZFI006F00.
INCLUDE ZFI006F01.

INITIALIZATION.

AT SELECTION-SCREEN OUTPUT.

START-OF-SELECTION.
    PERFORM GET_BSEG.
    PERFORM PROCESS_DATA.
    PERFORM CAL_DATA.
    PERFORM EVENTS_BUILD.
    PERFORM LAYOUT_BUILD.
    PERFORM FIELDS_BUILD.
    PERFORM DISPLAY_DATA.
END-OF-SELECTION.

TOP-OF-PAGE.

AT USER-COMMAND.

AT LINE-SELECTION.

再来看它所包括的ZFI006Top(主要是定义数据

  1. *&---------------------------------------------------------------------*  
  2. *&  包括                ZFI006TOP  
  3. *&---------------------------------------------------------------------*  
  4. DATA:  
  5.       I_FIELDCAT_ALV    TYPE SLIS_T_FIELDCAT_ALV,  
  6.       I_FIELDCAT        TYPE SLIS_FIELDCAT_ALV,  
  7.       I_LAYOUT          TYPE SLIS_LAYOUT_ALV,  
  8.       I_EVENTS          TYPE SLIS_T_EVENT,  
  9.       W_EVENTS          LIKE LINE OF I_EVENTS,  
  10.       I_LIST_COMMENTS   TYPE SLIS_T_LISTHEADER,  
  11.       W_LIST_COMMENTS   LIKE LINE OF I_LIST_COMMENTS,  
  12.       W_REPID           LIKE SY-REPID.  
  13.   
  14. DATA: G_STATUS TYPE SLIS_FORMNAME VALUE 'STANDARD_02'.        "加工具栏  
  15. DATA: BEGIN OF I_BKPF OCCURS 0,  
  16.          BUKRS LIKE BKPF-BUKRS,  "CoCode  
  17.          BELNR LIKE BKPF-BELNR,  "FI Doc  
  18.          GJAHR LIKE BKPF-GJAHR,  "Fiscal Year  
  19.          BLART LIKE BKPF-BLART,  "Doc Type  
  20.          BLDAT LIKE BKPF-BLDAT,  "Doc Date  
  21.          BUDAT LIKE BKPF-BUDAT,  "Posting Date  
  22.          BKTXT LIKE BKPF-BKTXT,  "抬头文本  
  23.          TCODE LIKE BKPF-TCODE,  "Transaction Code  
  24.          AWKEY LIKE BKPF-AWKEY,  "Reference Doc  
  25.          BSTAT LIKE BKPF-BSTAT,  "Document Status  
  26.          USNAM LIKE BKPF-USNAM,  
  27.          WAERS LIKE BKPF-WAERS,  "币别  
  28.          XBLNR LIKE BKPF-XBLNR,  "参照号  
  29.       END OF I_BKPF.  
  30. DATA: BEGIN OF I_BSEG OCCURS 0,  
  31.          BUKRS   LIKE BKPF-BUKRS,  
  32.          BELNR   LIKE BKPF-BELNR,     "  
  33.          GJAHR   LIKE BKPF-GJAHR,  
  34.          BUZEI   LIKE BSEG-BUZEI,  
  35.          SHKZG   LIKE BSEG-SHKZG,     "借/贷  
  36.          PSWSL   LIKE BSEG-PSWSL,  
  37.          WRBTR   LIKE BSEG-WRBTR,     "本位币金额  
  38.          PSWBT   LIKE BSEG-PSWBT,  
  39.          SAKNR   LIKE BSEG-SAKNR,     "总帐科目  
  40.          HKONT   LIKE BSEG-HKONT,     "会计科目  
  41.          BSCHL   LIKE BSEG-BSCHL,  
  42.          LIFNR   LIKE BSEG-LIFNR,  
  43.          UMSKZ   LIKE BSEG-UMSKZ,  
  44.          SGTXT   LIKE BSEG-SGTXT,     "摘要  
  45.          ZUONR   LIKE BSEG-ZUONR,     "分配号码  
  46.          NAME1   LIKE LFA1-NAME1,  
  47.          TXT20   LIKE SKAT-TXT20,     "会计科目名称  
  48.       END OF I_BSEG.  
  49. DATA: BEGIN OF T_SKAT OCCURS 0,  
  50.       SAKNR LIKE SKAT-SAKNR,  
  51.       TXT20 LIKE SKAT-TXT20,  
  52.       END OF T_SKAT.  
  53. DATA W_LEN TYPE I.  
  54. *  
  55. DATA: BEGIN OF T_DATA OCCURS 0,  
  56.          BUKRS   LIKE BKPF-BUKRS,  
  57.          BELNR   LIKE BKPF-BELNR,  
  58.          GJAHR   LIKE BKPF-GJAHR,  
  59.          BLART   LIKE BKPF-BLART,  
  60.          BLDAT   LIKE BKPF-BLDAT,  
  61.          BUDAT   LIKE BKPF-BUDAT,  
  62.          TCODE   LIKE BKPF-TCODE,  
  63.          AWKEY   LIKE BKPF-AWKEY,  
  64.          BSTAT   LIKE BKPF-BSTAT,  
  65.          USNAM   LIKE BKPF-USNAM,  
  66.          WAERS   LIKE BKPF-WAERS,     "币别  
  67.          XBLNR   LIKE BKPF-XBLNR,     "参照号  
  68.          BUZEI   LIKE BSEG-BUZEI,  
  69.          SHKZG   LIKE BSEG-SHKZG,  
  70.          PSWSL   LIKE BSEG-PSWSL,  
  71.          WRBTR   LIKE BSEG-WRBTR,  
  72.          PSWBT   LIKE BSEG-PSWBT,  
  73.          SAKNR   LIKE BSEG-SAKNR,  
  74.          HKONT   LIKE BSEG-HKONT,  
  75.          BSCHL   LIKE BSEG-BSCHL,  
  76.          LIFNR   LIKE BSEG-LIFNR,  
  77.          UMSKZ   LIKE BSEG-UMSKZ,  
  78.          SGTXT   LIKE BSEG-SGTXT,  
  79.          NAME1   LIKE LFA1-NAME1,  
  80.          TXT20   LIKE SKAT-TXT20,  
  81.          BKTXT   LIKE BKPF-BKTXT,  
  82.          ZUONR   LIKE BSEG-ZUONR,     "分配号码  
  83.          BOX(1),  
  84.       END OF T_DATA.  
  85.   
  86. DATA:  BEGIN OF ZITAB OCCURS 0.  
  87.         INCLUDE STRUCTURE ZMDOC_A.  
  88. DATA:  END OF ZITAB.  
  89. DATA:  W_ZITAB LIKE LINE OF ZITAB.  
  90. DATA:  I_ZITAB LIKE ZITAB OCCURS 0 WITH HEADER LINE.  
  91.   
  92. DATA: W_LOOP TYPE SY-TABIX.  
  93. DATA: NN TYPE I.  
  94. DATA: RCOUNT TYPE I.  
  95. DATA  SCOUNT(8).  
  96. DATA  LSTR(20).  
  97. DATA: P_CLASS(4).  
  98. DATA: DIFF   TYPE I.  
  99. DATA: DIFT   TYPE I.  
  100. DATA: FNAME(30) VALUE 'ZFI06_SMARTFORM'.  
  101. DATA: FM_NAME TYPE  RS38L_FNAM.  
  102. DATA: S1(8),S2(5),S3(8).  
  103. DATA: LABNOTE(30).  
  104. DATA: _BELNR TYPE BKPF-BELNR,    "付款凭证号  
  105.       WRBTR1 LIKE BSEG-WRBTR,    "合计贷方金额  
  106.       WRBTR2 LIKE BSEG-WRBTR,    "合计借方金额  
  107.       WAERS1 LIKE BKPF-WAERS,    "币别  
  108.       XBLNR1 LIKE BKPF-XBLNR.    "分配号  
  109. DATA: HDATE   TYPE SY-DATUM.  
  110. DATA: P1(255).  
  111. DATA: CMP TYPE I.  
  112. DATA: P_NUM TYPE I.  
*&---------------------------------------------------------------------*
*&  包括                ZFI006TOP
*&---------------------------------------------------------------------*
DATA:
      I_FIELDCAT_ALV    TYPE SLIS_T_FIELDCAT_ALV,
      I_FIELDCAT        TYPE SLIS_FIELDCAT_ALV,
      I_LAYOUT          TYPE SLIS_LAYOUT_ALV,
      I_EVENTS          TYPE SLIS_T_EVENT,
      W_EVENTS          LIKE LINE OF I_EVENTS,
      I_LIST_COMMENTS   TYPE SLIS_T_LISTHEADER,
      W_LIST_COMMENTS   LIKE LINE OF I_LIST_COMMENTS,
      W_REPID           LIKE SY-REPID.

DATA: G_STATUS TYPE SLIS_FORMNAME VALUE 'STANDARD_02'.        "加工具栏
DATA: BEGIN OF I_BKPF OCCURS 0,
         BUKRS LIKE BKPF-BUKRS,  "CoCode
         BELNR LIKE BKPF-BELNR,  "FI Doc
         GJAHR LIKE BKPF-GJAHR,  "Fiscal Year
         BLART LIKE BKPF-BLART,  "Doc Type
         BLDAT LIKE BKPF-BLDAT,  "Doc Date
         BUDAT LIKE BKPF-BUDAT,  "Posting Date
         BKTXT LIKE BKPF-BKTXT,  "抬头文本
         TCODE LIKE BKPF-TCODE,  "Transaction Code
         AWKEY LIKE BKPF-AWKEY,  "Reference Doc
         BSTAT LIKE BKPF-BSTAT,  "Document Status
         USNAM LIKE BKPF-USNAM,
         WAERS LIKE BKPF-WAERS,  "币别
         XBLNR LIKE BKPF-XBLNR,  "参照号
      END OF I_BKPF.
DATA: BEGIN OF I_BSEG OCCURS 0,
         BUKRS   LIKE BKPF-BUKRS,
         BELNR   LIKE BKPF-BELNR,     "
         GJAHR   LIKE BKPF-GJAHR,
         BUZEI   LIKE BSEG-BUZEI,
         SHKZG   LIKE BSEG-SHKZG,     "借/贷
         PSWSL   LIKE BSEG-PSWSL,
         WRBTR   LIKE BSEG-WRBTR,     "本位币金额
         PSWBT   LIKE BSEG-PSWBT,
         SAKNR   LIKE BSEG-SAKNR,     "总帐科目
         HKONT   LIKE BSEG-HKONT,     "会计科目
         BSCHL   LIKE BSEG-BSCHL,
         LIFNR   LIKE BSEG-LIFNR,
         UMSKZ   LIKE BSEG-UMSKZ,
         SGTXT   LIKE BSEG-SGTXT,     "摘要
         ZUONR   LIKE BSEG-ZUONR,     "分配号码
         NAME1   LIKE LFA1-NAME1,
         TXT20   LIKE SKAT-TXT20,     "会计科目名称
      END OF I_BSEG.
DATA: BEGIN OF T_SKAT OCCURS 0,
      SAKNR LIKE SKAT-SAKNR,
      TXT20 LIKE SKAT-TXT20,
      END OF T_SKAT.
DATA W_LEN TYPE I.
*
DATA: BEGIN OF T_DATA OCCURS 0,
         BUKRS   LIKE BKPF-BUKRS,
         BELNR   LIKE BKPF-BELNR,
         GJAHR   LIKE BKPF-GJAHR,
         BLART   LIKE BKPF-BLART,
         BLDAT   LIKE BKPF-BLDAT,
         BUDAT   LIKE BKPF-BUDAT,
         TCODE   LIKE BKPF-TCODE,
         AWKEY   LIKE BKPF-AWKEY,
         BSTAT   LIKE BKPF-BSTAT,
         USNAM   LIKE BKPF-USNAM,
         WAERS   LIKE BKPF-WAERS,     "币别
         XBLNR   LIKE BKPF-XBLNR,     "参照号
         BUZEI   LIKE BSEG-BUZEI,
         SHKZG   LIKE BSEG-SHKZG,
         PSWSL   LIKE BSEG-PSWSL,
         WRBTR   LIKE BSEG-WRBTR,
         PSWBT   LIKE BSEG-PSWBT,
         SAKNR   LIKE BSEG-SAKNR,
         HKONT   LIKE BSEG-HKONT,
         BSCHL   LIKE BSEG-BSCHL,
         LIFNR   LIKE BSEG-LIFNR,
         UMSKZ   LIKE BSEG-UMSKZ,
         SGTXT   LIKE BSEG-SGTXT,
         NAME1   LIKE LFA1-NAME1,
         TXT20   LIKE SKAT-TXT20,
         BKTXT   LIKE BKPF-BKTXT,
         ZUONR   LIKE BSEG-ZUONR,     "分配号码
         BOX(1),
      END OF T_DATA.

DATA:  BEGIN OF ZITAB OCCURS 0.
        INCLUDE STRUCTURE ZMDOC_A.
DATA:  END OF ZITAB.
DATA:  W_ZITAB LIKE LINE OF ZITAB.
DATA:  I_ZITAB LIKE ZITAB OCCURS 0 WITH HEADER LINE.

DATA: W_LOOP TYPE SY-TABIX.
DATA: NN TYPE I.
DATA: RCOUNT TYPE I.
DATA  SCOUNT(8).
DATA  LSTR(20).
DATA: P_CLASS(4).
DATA: DIFF   TYPE I.
DATA: DIFT   TYPE I.
DATA: FNAME(30) VALUE 'ZFI06_SMARTFORM'.
DATA: FM_NAME TYPE  RS38L_FNAM.
DATA: S1(8),S2(5),S3(8).
DATA: LABNOTE(30).
DATA: _BELNR TYPE BKPF-BELNR,    "付款凭证号
      WRBTR1 LIKE BSEG-WRBTR,    "合计贷方金额
      WRBTR2 LIKE BSEG-WRBTR,    "合计借方金额
      WAERS1 LIKE BKPF-WAERS,    "币别
      XBLNR1 LIKE BKPF-XBLNR.    "分配号
DATA: HDATE   TYPE SY-DATUM.
DATA: P1(255).
DATA: CMP TYPE I.
DATA: P_NUM TYPE I.

紧跟着就来欣赏一下ZFI006F00跟ZFI006F01
ZFI006F00
  1. *&---------------------------------------------------------------------*  
  2. *&  包括                ZFI006F00  
  3. *&---------------------------------------------------------------------*  
  4. *-----------------------------------------------------------------------  
  5. *    FORM PF_STATUS_SET   加工具栏  
  6. *-----------------------------------------------------------------------  
  7. FORM STANDARD_02 USING  EXTAB TYPE SLIS_T_EXTAB.  
  8.   SET PF-STATUS 'STD' EXCLUDING EXTAB.  
  9. ENDFORM.                    "STANDARD_02  
  10. *&---------------------------------------------------------------------*  
  11. *&      Form  DISPLAY_DATA  
  12. *&---------------------------------------------------------------------*  
  13. FORM DISPLAY_DATA .  
  14. *  CALL FUNCTION 'REUSE_ALV_GRID_DISPLAY'  
  15.   CALL FUNCTION 'REUSE_ALV_LIST_DISPLAY'  
  16.     EXPORTING  
  17.       I_CALLBACK_USER_COMMAND  = 'USER_COMMAND'           "用户触发事件  
  18.       I_CALLBACK_PF_STATUS_SET = G_STATUS                          "调用用户事件和按钮事件  
  19.       I_CALLBACK_PROGRAM       = W_REPID                  "当前程序  
  20.       IS_LAYOUT                = I_LAYOUT                 "子函数layout_build填充的格式定义  
  21.       IT_FIELDCAT              = I_FIELDCAT_ALV[]         "子函数fields填充的各列  
  22.       IT_EVENTS                = I_EVENTS[]  
  23.       I_SAVE                   = 'A'                      "保存变式  
  24.     TABLES  
  25.       T_OUTTAB                 = T_DATA.                  "T_DATA. "假设数据都在itab内表中  
  26. ENDFORM.                    " DISPLAY_DATA  
  27. *&---------------------------------------------------------------------*  
  28. *&      Form  LAYOUT_BUILD  
  29. *&---------------------------------------------------------------------*  
  30. FORM LAYOUT_BUILD .  
  31. *  i_layout-detail_popup        = 'X'.        "弹出详细信息窗口  
  32. *  i-layout-no_vline            = 'X'.        "设置列间隔线  
  33.   I_LAYOUT-INFO_FIELDNAME       = 'COLOR'.    "颜色值  
  34. *  I_LAYOUT-COLWIDTH_OPTIMIZE    = 'X'.       "优化列宽选项  
  35.   I_LAYOUT-DETAIL_INITIAL_LINES = 'X'.  
  36.   I_LAYOUT-DETAIL_TITLEBAR      = '会计报表'.  
  37.   I_LAYOUT-NO_COLHEAD           =' '.  
  38.   W_REPID = SY-REPID.  
  39. ENDFORM.                    " LAYOUT_BUILD  
  40. *&---------------------------------------------------------------------*  
  41. *&      Form  EVENTS_BUILD  
  42. *&---------------------------------------------------------------------*  
  43. FORM EVENTS_BUILD .  
  44.   CALL FUNCTION 'REUSE_ALV_EVENTS_GET'  
  45.     EXPORTING  
  46.       I_LIST_TYPE = 0  
  47.     IMPORTING  
  48.       ET_EVENTS   = I_EVENTS.  
  49. ** 页眉  
  50. *  READ TABLE I_EVENTS  WITH KEY NAME = 'TOP_OF_PAGE'  INTO W_EVENTS.  
  51. *  IF SY-SUBRC = 0.  
  52. *    MOVE 'ALV_TOP_OF_PAGE' TO W_EVENTS-FORM.  
  53. *    MODIFY I_EVENTS FROM W_EVENTS INDEX SY-TABIX.  
  54. *  ENDIF.  
  55. * 页尾  
  56.   READ TABLE I_EVENTS  WITH KEY NAME = 'END_OF_LIST'  INTO W_EVENTS.  
  57.   IF SY-SUBRC = 0.  
  58.     MOVE 'ALV_END_OF_LIST' TO W_EVENTS-FORM.  
  59.     MODIFY I_EVENTS FROM W_EVENTS INDEX SY-TABIX.  
  60.   ENDIF.  
  61. * 页跳转  
  62.   READ TABLE I_EVENTS WITH KEY NAME = 'USER_COMMAND'   INTO W_EVENTS.  
  63.   IF SY-SUBRC = 0.  
  64.     MOVE 'USER_COMMAND' TO W_EVENTS-FORM.  
  65.     MODIFY I_EVENTS FROM W_EVENTS INDEX SY-TABIX.  
  66.   ENDIF.  
  67. ENDFORM.                    " EVENTS_BUILD  
  68. *&--------------------------------------------------------------------*  
  69. *&      Form  ALV_TOP_OF_PAGE  
  70. *&--------------------------------------------------------------------*  
  71. FORM ALV_TOP_OF_PAGE.  
  72. *  DATA: DEP(20),  
  73. *        SDATE(50).  
  74. *  CONCATENATE '部          门:' DEPNAME INTO DEP.  
  75. *  CONCATENATE '方          式:' P1 INTO SDATE.  
  76. *  
  77. *  CLEAR: I_LIST_COMMENTS.  
  78. *  W_LIST_COMMENTS-TYP = 'S'.  
  79. *  W_LIST_COMMENTS-KEY = ''.  
  80. *  W_LIST_COMMENTS-INFO = DEP.  
  81. *  APPEND W_LIST_COMMENTS TO I_LIST_COMMENTS.  
  82. *  CLEAR W_LIST_COMMENTS.  
  83. *  
  84. *  CALL FUNCTION 'REUSE_ALV_COMMENTARY_WRITE'  
  85. *    EXPORTING  
  86. *      IT_LIST_COMMENTARY = I_LIST_COMMENTS  
  87. *      I_END_OF_LIST_GRID = 'X'.  
  88.   
  89. ENDFORM.                    "ALV_END_OF_LIST  
  90. *&--------------------------------------------------------------------*  
  91. *&      Form  ALV_END_OF_LIST  
  92. *&--------------------------------------------------------------------*  
  93. FORM ALV_END_OF_LIST.  
  94.   CLEAR: I_LIST_COMMENTS.  
  95.   W_LIST_COMMENTS-TYP = 'H'.  
  96.   W_LIST_COMMENTS-KEY = ''.  
  97.   W_LIST_COMMENTS-INFO = LSTR.  
  98.   APPEND W_LIST_COMMENTS TO I_LIST_COMMENTS.  
  99.   CLEAR W_LIST_COMMENTS.  
  100.   
  101.   W_LIST_COMMENTS-TYP = 'S'.  
  102.   W_LIST_COMMENTS-KEY = ''.  
  103.   W_LIST_COMMENTS-INFO = '    报表开发者:IT部--Jasson.Lee          开发日期:2011/06/02'.  
  104.   APPEND W_LIST_COMMENTS TO I_LIST_COMMENTS.  
  105.   CLEAR W_LIST_COMMENTS.  
  106.   
  107.   CALL FUNCTION 'REUSE_ALV_COMMENTARY_WRITE'  
  108.     EXPORTING  
  109.       IT_LIST_COMMENTARY = I_LIST_COMMENTS  
  110.       I_END_OF_LIST_GRID = 'X'.  
  111.   
  112. ENDFORM.                    "ALV_END_OF_LIST  
  113. *&---------------------------------------------------------------------*  
  114. *&      Form  USER_COMMAND  
  115. *&---------------------------------------------------------------------*  
  116. FORM USER_COMMAND  USING I_UCOMM LIKE SY-UCOMM  
  117.                          SELFIELD TYPE SLIS_SELFIELD.  
  118.   CLEAR T_DATA.  
  119.   READ TABLE T_DATA INDEX SELFIELD-TABINDEX.  
  120.   CASE I_UCOMM.  
  121.     WHEN '&IC1'.  
  122.       CASE SELFIELD-SEL_TAB_FIELD.  
  123.         WHEN 'T_DATA-BELNR'.  
  124.           SET PARAMETER ID 'BLN' FIELD T_DATA-BELNR.  
  125.           SET PARAMETER ID 'BUK' FIELD T_DATA-BUKRS.  
  126.           SET PARAMETER ID 'GJR' FIELD T_DATA-GJAHR.  
  127.           CALL TRANSACTION 'FB03' AND SKIP FIRST SCREEN.  
  128.       ENDCASE.  
  129.     WHEN '&PRT'.  
  130.       PERFORM GET_ZITAB.  
  131.       PERFORM PRINT_FROM.  
  132.     WHEN OTHERS.  
  133.   ENDCASE.  
  134. ENDFORM.                    "callback_ucomm  
  135. *&---------------------------------------------------------------------*  
  136. *&      Form  GET_BSEG  
  137. *&---------------------------------------------------------------------*  
  138. FORM GET_BSEG .  
  139.   
  140.   SELECT BUKRS BELNR GJAHR BLART BLDAT BUDAT BKTXT TCODE AWKEY BSTAT USNAM WAERS XBLNR  
  141.     INTO TABLE I_BKPF  
  142.   FROM BKPF  
  143.     WHERE BUKRS IN S_BUKRS AND BELNR IN S_BELNR AND BLDAT IN S_BLDAT  
  144.       AND GJAHR IN S_GJAHR AND BLART IN S_BLART AND BUDAT IN S_BUDAT.  
  145.   
  146.   IF I_BKPF[] IS INITIAL.  
  147.     MESSAGE I000(ZMSG) WITH '没找到对应的数据,请更改查询条件'.  
  148.     LEAVE LIST-PROCESSING.  
  149.   ENDIF.  
  150.   
  151.   SELECT BUKRS BELNR GJAHR BUZEI SHKZG PSWSL WRBTR PSWBT SAKNR HKONT BSCHL LIFNR UMSKZ SGTXT ZUONR  
  152.     INTO TABLE I_BSEG  
  153.   FROM BSEG  
  154.   FOR ALL ENTRIES IN I_BKPF  
  155.   WHERE BUKRS = I_BKPF-BUKRS AND BELNR = I_BKPF-BELNR AND GJAHR = I_BKPF-GJAHR.  
  156.   
  157.   SELECT BUKRS BELNR GJAHR BUZEI SHKZG  WRBTR SAKNR SAKNR AS HKONT BSCHL SGTXT ZUONR  
  158.     INTO CORRESPONDING FIELDS OF TABLE I_BSEG  
  159.   FROM VBSEGS "BSEG  
  160.   FOR ALL ENTRIES IN I_BKPF  
  161.   WHERE BUKRS = I_BKPF-BUKRS AND BELNR = I_BKPF-BELNR AND GJAHR = I_BKPF-GJAHR.  
  162.   
  163. ENDFORM.                    " GET_MSEG  
  164. *&---------------------------------------------------------------------*  
  165. *&      Form  PROCESS_DATA  
  166. *&---------------------------------------------------------------------*  
  167. FORM PROCESS_DATA .  
  168.   DATA: _NAME1 LIKE LFA1-NAME1.  
  169.   DATA: _TXT20 LIKE SKAT-TXT20.  
  170.   SORT I_BSEG BY BUKRS GJAHR BELNR.  
  171.   SORT I_BKPF BY BUKRS GJAHR BELNR.  
  172.   LOOP AT I_BSEG.  
  173.     W_LOOP = SY-TABIX.  
  174.     CLEAR I_BKPF.  
  175.     READ TABLE I_BKPF WITH KEY BUKRS = I_BSEG-BUKRS BELNR = I_BSEG-BELNR GJAHR = I_BSEG-GJAHR BINARY SEARCH.  
  176.     IF SY-SUBRC = 0.  
  177.       T_DATA-BLART = I_BKPF-BLART.  
  178.       T_DATA-BLDAT = I_BKPF-BLDAT.  
  179.       T_DATA-BUDAT = I_BKPF-BUDAT.  
  180.       T_DATA-TCODE = I_BKPF-TCODE.  
  181.       T_DATA-AWKEY = I_BKPF-AWKEY.  
  182.       T_DATA-BSTAT = I_BKPF-BSTAT.  
  183.       T_DATA-USNAM = I_BKPF-USNAM.  
  184.       T_DATA-BKTXT = I_BKPF-BKTXT.  
  185.       T_DATA-WAERS = I_BKPF-WAERS.  
  186.       T_DATA-XBLNR = I_BKPF-XBLNR.  
  187.       MODIFY I_BSEG INDEX W_LOOP.  
  188.     ENDIF.  
  189.     T_DATA-BUKRS = I_BSEG-BUKRS.  
  190.     T_DATA-BELNR = I_BSEG-BELNR.  
  191.     T_DATA-GJAHR = I_BSEG-GJAHR.  
  192.     T_DATA-BUZEI = I_BSEG-BUZEI.  
  193.     T_DATA-SHKZG = I_BSEG-SHKZG.  
  194.     T_DATA-PSWSL = I_BSEG-PSWSL.  
  195.     IF I_BSEG-SHKZG = 'H'.  
  196.       T_DATA-WRBTR = I_BSEG-WRBTR * ( -1 ).  
  197.     ELSE.  
  198.       T_DATA-WRBTR = I_BSEG-WRBTR.  
  199.     ENDIF.  
  200.     T_DATA-PSWBT = I_BSEG-PSWBT.  
  201.     T_DATA-SAKNR = I_BSEG-SAKNR.  
  202.     T_DATA-HKONT = I_BSEG-HKONT.  
  203.     T_DATA-BSCHL = I_BSEG-BSCHL.  
  204.     T_DATA-LIFNR = I_BSEG-LIFNR.  
  205.     T_DATA-UMSKZ = I_BSEG-UMSKZ.  
  206.     T_DATA-SGTXT = I_BSEG-SGTXT.  
  207.     T_DATA-ZUONR = I_BSEG-ZUONR.  
  208.     T_DATA-NAME1 = I_BSEG-NAME1.  
  209.     T_DATA-TXT20 = I_BSEG-TXT20.  
  210. *供应商  
  211.     _NAME1 = ''.  
  212.     SELECT NAME1 INTO _NAME1 FROM LFA1 WHERE LIFNR = I_BSEG-LIFNR.  
  213.       IF _NAME1 <> ''.  
  214.         T_DATA-NAME1 = _NAME1.  
  215.       ENDIF.  
  216.     ENDSELECT.  
  217. *科目名称  
  218.     _TXT20 = ''.  
  219.     SELECT TXT20 INTO _TXT20 FROM SKAT WHERE SAKNR = T_DATA-HKONT AND SPRAS = SY-LANGU AND KTOPL = 'INT'.  
  220.       IF _TXT20 <> ''.  
  221.         T_DATA-TXT20 = _TXT20.  
  222.       ENDIF.  
  223.     ENDSELECT.  
  224.     APPEND T_DATA.  
  225.     SY-TABIX = W_LOOP + 1.  
  226.   ENDLOOP.  
  227. ENDFORM.                    " PROCESS_DATA  
  228. *&---------------------------------------------------------------------*  
  229. *&      Form  CAL_DATA  
  230. *&---------------------------------------------------------------------*  
  231. FORM CAL_DATA .  
  232.   DESCRIBE TABLE T_DATA LINES RCOUNT.  
  233.   SCOUNT = RCOUNT.  
  234.   CONCATENATE '要打印的付款凭证数:' SCOUNT INTO LSTR.  
  235.   IF T_DATA[] IS INITIAL.  
  236.     MESSAGE I000(ZMSG) WITH '没找到对应的查询数据,请更改查询条件.'.  
  237.     LEAVE LIST-PROCESSING.  
  238.   ENDIF.  
  239. ENDFORM.                    " CAL_DATA  
  240. *&---------------------------------------------------------------------*  
  241. *&      Form  GET_ZITAB  
  242. *&---------------------------------------------------------------------*  
  243. FORM GET_ZITAB .  
  244.   DATA:  OUTPUT1(10) TYPE C.  
  245.   LABNOTE = ''.  
  246.   _BELNR =  
  247.   WRBTR1 = 0.  
  248.   WRBTR2 = 0.  
  249.   WAERS1 = ''.    "币别  
  250.   XBLNR1 = ''.    "分配号  
  251.   CLEAR ZITAB[].  
  252.   SORT T_DATA BY BELNR BUZEI .  
  253.   CLEAR ZITAB[].  
  254.   LOOP AT T_DATA WHERE BOX = 'X'.  
  255.     W_LOOP = SY-TABIX.  
  256.     _BELNR = T_DATA-BELNR.  
  257.     WAERS1 = T_DATA-WAERS.    "币别  
  258.     XBLNR1 = T_DATA-XBLNR.    "分配号  
  259.   
  260.     CALL FUNCTION 'CONVERSION_EXIT_ALPHA_OUTPUT'  
  261.       EXPORTING  
  262.         INPUT  = T_DATA-HKONT  
  263.       IMPORTING  
  264.         OUTPUT = OUTPUT1.  
  265.   
  266.     IF OUTPUT1+0(3) = '113'.  
  267.       CONCATENATE T_DATA-TXT20 ' ('OUTPUT1 ')' INTO LABNOTE. "银行名称  
  268.     ENDIF.  
  269.     ZITAB-WERKS = T_DATA-BUKRS.         "公司  
  270.     ZITAB-AUFNR = T_DATA-BELNR.         "付款凭证单号  
  271.     ZITAB-LDDAT = T_DATA-BUDAT.         "过帐日期  
  272.     ZITAB-PAKTX = T_DATA-SGTXT+0(39).   "摘要  
  273.     ZITAB-PATNR = T_DATA-ZUONR.         "分配号码  
  274.     IF T_DATA-SHKZG = 'S'.  
  275.       ZITAB-SID = 'DR'.                 "借  
  276.       ZITAB-MBLNR  = T_DATA-WRBTR.      "贷方金额  
  277.       ZITAB-EBELN  = ''.  
  278.       WRBTR1 = WRBTR1 + T_DATA-WRBTR.  
  279.     ELSE.  
  280.       ZITAB-SID = 'CR'.                 "贷  
  281.       ZITAB-MBLNR  = ''.  
  282.       ZITAB-EBELN  = T_DATA-WRBTR * ( -1 ). "贷方金额  
  283.       WRBTR2 = WRBTR2 + T_DATA-WRBTR * ( -1 ).  
  284.     ENDIF.  
  285.     IF T_DATA-LIFNR = ''.  
  286.       CONCATENATE T_DATA-TXT20  ' ('OUTPUT1 ')' INTO ZITAB-MAKTX. "会计科目名称  
  287.     ELSE.  
  288.       CONCATENATE T_DATA-NAME1  ' ('OUTPUT1 ')' INTO ZITAB-MAKTX. "会计科目名称  
  289.     ENDIF.  
  290.     APPEND ZITAB.  
  291.     SY-TABIX = W_LOOP.  
  292.   ENDLOOP.  
  293.   
  294. ENDFORM.                    " GET_ZITAB  
  295. *&---------------------------------------------------------------------*  
  296. *&      Form  PRINT_FROM  
  297. *&---------------------------------------------------------------------*  
  298. FORM PRINT_FROM .  
  299.   
  300.   DATA: LS_CONTROL_PARAM   TYPE  SSFCTRLOP .  
  301.   DATA: LS_COMPOSER_PARAM  TYPE  SSFCOMPOP .  
  302.   DATA: OUTOPT             TYPE  SSFCRESOP.  
  303.   DATA: I_JOB_OUTPUT_INFO  TYPE  SSFCRESCL.  
  304.   
  305.   LS_CONTROL_PARAM-LANGU = '1'.  
  306.   LS_CONTROL_PARAM-NO_OPEN  = 'X'.  
  307.   LS_CONTROL_PARAM-NO_CLOSE = 'X'.  
  308.   
  309.   CALL FUNCTION 'SSF_OPEN'  
  310.     EXPORTING  
  311.       CONTROL_PARAMETERS = LS_CONTROL_PARAM  
  312.       OUTPUT_OPTIONS     = LS_COMPOSER_PARAM  
  313.     IMPORTING  
  314.       JOB_OUTPUT_OPTIONS = OUTOPT  
  315.     EXCEPTIONS  
  316.       FORMATTING_ERROR   = 1  
  317.       INTERNAL_ERROR     = 2  
  318.       SEND_ERROR         = 3  
  319.       USER_CANCELED      = 4  
  320.       OTHERS             = 5.  
  321.   
  322.   IF SY-SUBRC <> 0.  
  323.     MESSAGE ID SY-MSGID TYPE SY-MSGTY NUMBER SY-MSGNO  
  324.             WITH SY-MSGV1 SY-MSGV2 SY-MSGV3 SY-MSGV4.  
  325.     EXIT.  
  326.   ENDIF.  
  327. * 根据SmartForm 名称获得Form的 Function Name  
  328.   FNAME = 'ZFI06_SMARTFORM'.               "列印格式  
  329.   CALL FUNCTION 'SSF_FUNCTION_MODULE_NAME'  
  330.      EXPORTING  
  331.        FORMNAME                 =  FNAME  
  332. *      VARIANT                  = ' '  
  333. *      DIRECT_CALL              = ' '  
  334.     IMPORTING  
  335.        FM_NAME                   = FM_NAME  
  336.     EXCEPTIONS  
  337.        NO_FORM                  = 1  
  338.        NO_FUNCTION_MODULE       = 2  
  339.        OTHERS                   = 3 .  
  340.   IF SY-SUBRC <> 0.  
  341.     MESSAGE 'Call SSF_FUNCTION_MODULE_NAME Error' TYPE 'E'.  
  342.   ENDIF.  
  343.   
  344.   IF SY-SUBRC <> 0.  
  345.     MESSAGE ID SY-MSGID TYPE SY-MSGTY NUMBER SY-MSGNO  
  346.        WITH SY-MSGV1 SY-MSGV2 SY-MSGV3 SY-MSGV4.  
  347.   ENDIF.  
  348.   
  349. *  LOOP AT ZITAB INTO W_ZITAB.  
  350. *    MOVE-CORRESPONDING W_ZITAB TO I_ZITAB.  
  351.   CALL FUNCTION FM_NAME  
  352.     EXPORTING  
  353.       CONTROL_PARAMETERS = LS_CONTROL_PARAM  
  354.       OUTPUT_OPTIONS     = LS_COMPOSER_PARAM  
  355.       PARA1              = _BELNR  
  356.       PARA2              = LABNOTE  
  357.       PARA3              = WRBTR1  
  358.       PARA4              = WRBTR2  
  359.       PARA5              = WAERS1  
  360.       PARA6              = XBLNR1  
  361.     TABLES  
  362.       ZITAB              = ZITAB  
  363.     EXCEPTIONS  
  364.       FORMATTING_ERROR   = 1  
  365.       INTERNAL_ERROR     = 2  
  366.       SEND_ERROR         = 3  
  367.       USER_CANCELED      = 4  
  368.       OTHERS             = 5.  
  369.   IF SY-SUBRC <> 0.  
  370.     MESSAGE 'Call SmartForms Error' TYPE 'E'.  
  371.   ENDIF.  
  372.   IF OUTOPT-TDPREVIEW = 'X'.  
  373. *      EXIT.                   "是否全部预览  
  374.   ENDIF.  
  375. *    CLEAR I_ZITAB[].  
  376. *  ENDLOOP.  
  377.   
  378.   CALL FUNCTION 'SSF_CLOSE'  
  379.     IMPORTING  
  380.       JOB_OUTPUT_INFO  = I_JOB_OUTPUT_INFO  
  381.     EXCEPTIONS  
  382.       FORMATTING_ERROR = 1  
  383.       INTERNAL_ERROR   = 2  
  384.       SEND_ERROR       = 3  
  385.       OTHERS           = 4.  
  386.   IF SY-SUBRC <> 0.  
  387.     MESSAGE ID SY-MSGID TYPE SY-MSGTY NUMBER SY-MSGNO  
  388.             WITH SY-MSGV1 SY-MSGV2 SY-MSGV3 SY-MSGV4.  
  389.   ENDIF.  
  390. ENDFORM.                    " PRINT_FROM  
*&---------------------------------------------------------------------*
*&  包括                ZFI006F00
*&---------------------------------------------------------------------*
*-----------------------------------------------------------------------
*    FORM PF_STATUS_SET   加工具栏
*-----------------------------------------------------------------------
FORM STANDARD_02 USING  EXTAB TYPE SLIS_T_EXTAB.
  SET PF-STATUS 'STD' EXCLUDING EXTAB.
ENDFORM.                    "STANDARD_02
*&---------------------------------------------------------------------*
*&      Form  DISPLAY_DATA
*&---------------------------------------------------------------------*
FORM DISPLAY_DATA .
*  CALL FUNCTION 'REUSE_ALV_GRID_DISPLAY'
  CALL FUNCTION 'REUSE_ALV_LIST_DISPLAY'
    EXPORTING
      I_CALLBACK_USER_COMMAND  = 'USER_COMMAND'           "用户触发事件
      I_CALLBACK_PF_STATUS_SET = G_STATUS                          "调用用户事件和按钮事件
      I_CALLBACK_PROGRAM       = W_REPID                  "当前程序
      IS_LAYOUT                = I_LAYOUT                 "子函数layout_build填充的格式定义
      IT_FIELDCAT              = I_FIELDCAT_ALV[]         "子函数fields填充的各列
      IT_EVENTS                = I_EVENTS[]
      I_SAVE                   = 'A'                      "保存变式
    TABLES
      T_OUTTAB                 = T_DATA.                  "T_DATA. "假设数据都在itab内表中
ENDFORM.                    " DISPLAY_DATA
*&---------------------------------------------------------------------*
*&      Form  LAYOUT_BUILD
*&---------------------------------------------------------------------*
FORM LAYOUT_BUILD .
*  i_layout-detail_popup        = 'X'.        "弹出详细信息窗口
*  i-layout-no_vline            = 'X'.        "设置列间隔线
  I_LAYOUT-INFO_FIELDNAME       = 'COLOR'.    "颜色值
*  I_LAYOUT-COLWIDTH_OPTIMIZE    = 'X'.       "优化列宽选项
  I_LAYOUT-DETAIL_INITIAL_LINES = 'X'.
  I_LAYOUT-DETAIL_TITLEBAR      = '会计报表'.
  I_LAYOUT-NO_COLHEAD           =' '.
  W_REPID = SY-REPID.
ENDFORM.                    " LAYOUT_BUILD
*&---------------------------------------------------------------------*
*&      Form  EVENTS_BUILD
*&---------------------------------------------------------------------*
FORM EVENTS_BUILD .
  CALL FUNCTION 'REUSE_ALV_EVENTS_GET'
    EXPORTING
      I_LIST_TYPE = 0
    IMPORTING
      ET_EVENTS   = I_EVENTS.
** 页眉
*  READ TABLE I_EVENTS  WITH KEY NAME = 'TOP_OF_PAGE'  INTO W_EVENTS.
*  IF SY-SUBRC = 0.
*    MOVE 'ALV_TOP_OF_PAGE' TO W_EVENTS-FORM.
*    MODIFY I_EVENTS FROM W_EVENTS INDEX SY-TABIX.
*  ENDIF.
* 页尾
  READ TABLE I_EVENTS  WITH KEY NAME = 'END_OF_LIST'  INTO W_EVENTS.
  IF SY-SUBRC = 0.
    MOVE 'ALV_END_OF_LIST' TO W_EVENTS-FORM.
    MODIFY I_EVENTS FROM W_EVENTS INDEX SY-TABIX.
  ENDIF.
* 页跳转
  READ TABLE I_EVENTS WITH KEY NAME = 'USER_COMMAND'   INTO W_EVENTS.
  IF SY-SUBRC = 0.
    MOVE 'USER_COMMAND' TO W_EVENTS-FORM.
    MODIFY I_EVENTS FROM W_EVENTS INDEX SY-TABIX.
  ENDIF.
ENDFORM.                    " EVENTS_BUILD
*&--------------------------------------------------------------------*
*&      Form  ALV_TOP_OF_PAGE
*&--------------------------------------------------------------------*
FORM ALV_TOP_OF_PAGE.
*  DATA: DEP(20),
*        SDATE(50).
*  CONCATENATE '部          门:' DEPNAME INTO DEP.
*  CONCATENATE '方          式:' P1 INTO SDATE.
*
*  CLEAR: I_LIST_COMMENTS.
*  W_LIST_COMMENTS-TYP = 'S'.
*  W_LIST_COMMENTS-KEY = ''.
*  W_LIST_COMMENTS-INFO = DEP.
*  APPEND W_LIST_COMMENTS TO I_LIST_COMMENTS.
*  CLEAR W_LIST_COMMENTS.
*
*  CALL FUNCTION 'REUSE_ALV_COMMENTARY_WRITE'
*    EXPORTING
*      IT_LIST_COMMENTARY = I_LIST_COMMENTS
*      I_END_OF_LIST_GRID = 'X'.

ENDFORM.                    "ALV_END_OF_LIST
*&--------------------------------------------------------------------*
*&      Form  ALV_END_OF_LIST
*&--------------------------------------------------------------------*
FORM ALV_END_OF_LIST.
  CLEAR: I_LIST_COMMENTS.
  W_LIST_COMMENTS-TYP = 'H'.
  W_LIST_COMMENTS-KEY = ''.
  W_LIST_COMMENTS-INFO = LSTR.
  APPEND W_LIST_COMMENTS TO I_LIST_COMMENTS.
  CLEAR W_LIST_COMMENTS.

  W_LIST_COMMENTS-TYP = 'S'.
  W_LIST_COMMENTS-KEY = ''.
  W_LIST_COMMENTS-INFO = '    报表开发者:IT部--Jasson.Lee          开发日期:2011/06/02'.
  APPEND W_LIST_COMMENTS TO I_LIST_COMMENTS.
  CLEAR W_LIST_COMMENTS.

  CALL FUNCTION 'REUSE_ALV_COMMENTARY_WRITE'
    EXPORTING
      IT_LIST_COMMENTARY = I_LIST_COMMENTS
      I_END_OF_LIST_GRID = 'X'.

ENDFORM.                    "ALV_END_OF_LIST
*&---------------------------------------------------------------------*
*&      Form  USER_COMMAND
*&---------------------------------------------------------------------*
FORM USER_COMMAND  USING I_UCOMM LIKE SY-UCOMM
                         SELFIELD TYPE SLIS_SELFIELD.
  CLEAR T_DATA.
  READ TABLE T_DATA INDEX SELFIELD-TABINDEX.
  CASE I_UCOMM.
    WHEN '&IC1'.
      CASE SELFIELD-SEL_TAB_FIELD.
        WHEN 'T_DATA-BELNR'.
          SET PARAMETER ID 'BLN' FIELD T_DATA-BELNR.
          SET PARAMETER ID 'BUK' FIELD T_DATA-BUKRS.
          SET PARAMETER ID 'GJR' FIELD T_DATA-GJAHR.
          CALL TRANSACTION 'FB03' AND SKIP FIRST SCREEN.
      ENDCASE.
    WHEN '&PRT'.
      PERFORM GET_ZITAB.
      PERFORM PRINT_FROM.
    WHEN OTHERS.
  ENDCASE.
ENDFORM.                    "callback_ucomm
*&---------------------------------------------------------------------*
*&      Form  GET_BSEG
*&---------------------------------------------------------------------*
FORM GET_BSEG .

  SELECT BUKRS BELNR GJAHR BLART BLDAT BUDAT BKTXT TCODE AWKEY BSTAT USNAM WAERS XBLNR
    INTO TABLE I_BKPF
  FROM BKPF
    WHERE BUKRS IN S_BUKRS AND BELNR IN S_BELNR AND BLDAT IN S_BLDAT
      AND GJAHR IN S_GJAHR AND BLART IN S_BLART AND BUDAT IN S_BUDAT.

  IF I_BKPF[] IS INITIAL.
    MESSAGE I000(ZMSG) WITH '没找到对应的数据,请更改查询条件'.
    LEAVE LIST-PROCESSING.
  ENDIF.

  SELECT BUKRS BELNR GJAHR BUZEI SHKZG PSWSL WRBTR PSWBT SAKNR HKONT BSCHL LIFNR UMSKZ SGTXT ZUONR
    INTO TABLE I_BSEG
  FROM BSEG
  FOR ALL ENTRIES IN I_BKPF
  WHERE BUKRS = I_BKPF-BUKRS AND BELNR = I_BKPF-BELNR AND GJAHR = I_BKPF-GJAHR.

  SELECT BUKRS BELNR GJAHR BUZEI SHKZG  WRBTR SAKNR SAKNR AS HKONT BSCHL SGTXT ZUONR
    INTO CORRESPONDING FIELDS OF TABLE I_BSEG
  FROM VBSEGS "BSEG
  FOR ALL ENTRIES IN I_BKPF
  WHERE BUKRS = I_BKPF-BUKRS AND BELNR = I_BKPF-BELNR AND GJAHR = I_BKPF-GJAHR.

ENDFORM.                    " GET_MSEG
*&---------------------------------------------------------------------*
*&      Form  PROCESS_DATA
*&---------------------------------------------------------------------*
FORM PROCESS_DATA .
  DATA: _NAME1 LIKE LFA1-NAME1.
  DATA: _TXT20 LIKE SKAT-TXT20.
  SORT I_BSEG BY BUKRS GJAHR BELNR.
  SORT I_BKPF BY BUKRS GJAHR BELNR.
  LOOP AT I_BSEG.
    W_LOOP = SY-TABIX.
    CLEAR I_BKPF.
    READ TABLE I_BKPF WITH KEY BUKRS = I_BSEG-BUKRS BELNR = I_BSEG-BELNR GJAHR = I_BSEG-GJAHR BINARY SEARCH.
    IF SY-SUBRC = 0.
      T_DATA-BLART = I_BKPF-BLART.
      T_DATA-BLDAT = I_BKPF-BLDAT.
      T_DATA-BUDAT = I_BKPF-BUDAT.
      T_DATA-TCODE = I_BKPF-TCODE.
      T_DATA-AWKEY = I_BKPF-AWKEY.
      T_DATA-BSTAT = I_BKPF-BSTAT.
      T_DATA-USNAM = I_BKPF-USNAM.
      T_DATA-BKTXT = I_BKPF-BKTXT.
      T_DATA-WAERS = I_BKPF-WAERS.
      T_DATA-XBLNR = I_BKPF-XBLNR.
      MODIFY I_BSEG INDEX W_LOOP.
    ENDIF.
    T_DATA-BUKRS = I_BSEG-BUKRS.
    T_DATA-BELNR = I_BSEG-BELNR.
    T_DATA-GJAHR = I_BSEG-GJAHR.
    T_DATA-BUZEI = I_BSEG-BUZEI.
    T_DATA-SHKZG = I_BSEG-SHKZG.
    T_DATA-PSWSL = I_BSEG-PSWSL.
    IF I_BSEG-SHKZG = 'H'.
      T_DATA-WRBTR = I_BSEG-WRBTR * ( -1 ).
    ELSE.
      T_DATA-WRBTR = I_BSEG-WRBTR.
    ENDIF.
    T_DATA-PSWBT = I_BSEG-PSWBT.
    T_DATA-SAKNR = I_BSEG-SAKNR.
    T_DATA-HKONT = I_BSEG-HKONT.
    T_DATA-BSCHL = I_BSEG-BSCHL.
    T_DATA-LIFNR = I_BSEG-LIFNR.
    T_DATA-UMSKZ = I_BSEG-UMSKZ.
    T_DATA-SGTXT = I_BSEG-SGTXT.
    T_DATA-ZUONR = I_BSEG-ZUONR.
    T_DATA-NAME1 = I_BSEG-NAME1.
    T_DATA-TXT20 = I_BSEG-TXT20.
*供应商
    _NAME1 = ''.
    SELECT NAME1 INTO _NAME1 FROM LFA1 WHERE LIFNR = I_BSEG-LIFNR.
      IF _NAME1 <> ''.
        T_DATA-NAME1 = _NAME1.
      ENDIF.
    ENDSELECT.
*科目名称
    _TXT20 = ''.
    SELECT TXT20 INTO _TXT20 FROM SKAT WHERE SAKNR = T_DATA-HKONT AND SPRAS = SY-LANGU AND KTOPL = 'INT'.
      IF _TXT20 <> ''.
        T_DATA-TXT20 = _TXT20.
      ENDIF.
    ENDSELECT.
    APPEND T_DATA.
    SY-TABIX = W_LOOP + 1.
  ENDLOOP.
ENDFORM.                    " PROCESS_DATA
*&---------------------------------------------------------------------*
*&      Form  CAL_DATA
*&---------------------------------------------------------------------*
FORM CAL_DATA .
  DESCRIBE TABLE T_DATA LINES RCOUNT.
  SCOUNT = RCOUNT.
  CONCATENATE '要打印的付款凭证数:' SCOUNT INTO LSTR.
  IF T_DATA[] IS INITIAL.
    MESSAGE I000(ZMSG) WITH '没找到对应的查询数据,请更改查询条件.'.
    LEAVE LIST-PROCESSING.
  ENDIF.
ENDFORM.                    " CAL_DATA
*&---------------------------------------------------------------------*
*&      Form  GET_ZITAB
*&---------------------------------------------------------------------*
FORM GET_ZITAB .
  DATA:  OUTPUT1(10) TYPE C.
  LABNOTE = ''.
  _BELNR =
  WRBTR1 = 0.
  WRBTR2 = 0.
  WAERS1 = ''.    "币别
  XBLNR1 = ''.    "分配号
  CLEAR ZITAB[].
  SORT T_DATA BY BELNR BUZEI .
  CLEAR ZITAB[].
  LOOP AT T_DATA WHERE BOX = 'X'.
    W_LOOP = SY-TABIX.
    _BELNR = T_DATA-BELNR.
    WAERS1 = T_DATA-WAERS.    "币别
    XBLNR1 = T_DATA-XBLNR.    "分配号

    CALL FUNCTION 'CONVERSION_EXIT_ALPHA_OUTPUT'
      EXPORTING
        INPUT  = T_DATA-HKONT
      IMPORTING
        OUTPUT = OUTPUT1.

    IF OUTPUT1+0(3) = '113'.
      CONCATENATE T_DATA-TXT20 ' ('OUTPUT1 ')' INTO LABNOTE. "银行名称
    ENDIF.
    ZITAB-WERKS = T_DATA-BUKRS.         "公司
    ZITAB-AUFNR = T_DATA-BELNR.         "付款凭证单号
    ZITAB-LDDAT = T_DATA-BUDAT.         "过帐日期
    ZITAB-PAKTX = T_DATA-SGTXT+0(39).   "摘要
    ZITAB-PATNR = T_DATA-ZUONR.         "分配号码
    IF T_DATA-SHKZG = 'S'.
      ZITAB-SID = 'DR'.                 "借
      ZITAB-MBLNR  = T_DATA-WRBTR.      "贷方金额
      ZITAB-EBELN  = ''.
      WRBTR1 = WRBTR1 + T_DATA-WRBTR.
    ELSE.
      ZITAB-SID = 'CR'.                 "贷
      ZITAB-MBLNR  = ''.
      ZITAB-EBELN  = T_DATA-WRBTR * ( -1 ). "贷方金额
      WRBTR2 = WRBTR2 + T_DATA-WRBTR * ( -1 ).
    ENDIF.
    IF T_DATA-LIFNR = ''.
      CONCATENATE T_DATA-TXT20  ' ('OUTPUT1 ')' INTO ZITAB-MAKTX. "会计科目名称
    ELSE.
      CONCATENATE T_DATA-NAME1  ' ('OUTPUT1 ')' INTO ZITAB-MAKTX. "会计科目名称
    ENDIF.
    APPEND ZITAB.
    SY-TABIX = W_LOOP.
  ENDLOOP.

ENDFORM.                    " GET_ZITAB
*&---------------------------------------------------------------------*
*&      Form  PRINT_FROM
*&---------------------------------------------------------------------*
FORM PRINT_FROM .

  DATA: LS_CONTROL_PARAM   TYPE  SSFCTRLOP .
  DATA: LS_COMPOSER_PARAM  TYPE  SSFCOMPOP .
  DATA: OUTOPT             TYPE  SSFCRESOP.
  DATA: I_JOB_OUTPUT_INFO  TYPE  SSFCRESCL.

  LS_CONTROL_PARAM-LANGU = '1'.
  LS_CONTROL_PARAM-NO_OPEN  = 'X'.
  LS_CONTROL_PARAM-NO_CLOSE = 'X'.

  CALL FUNCTION 'SSF_OPEN'
    EXPORTING
      CONTROL_PARAMETERS = LS_CONTROL_PARAM
      OUTPUT_OPTIONS     = LS_COMPOSER_PARAM
    IMPORTING
      JOB_OUTPUT_OPTIONS = OUTOPT
    EXCEPTIONS
      FORMATTING_ERROR   = 1
      INTERNAL_ERROR     = 2
      SEND_ERROR         = 3
      USER_CANCELED      = 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.
    EXIT.
  ENDIF.
* 根据SmartForm 名称获得Form的 Function Name
  FNAME = 'ZFI06_SMARTFORM'.               "列印格式
  CALL FUNCTION 'SSF_FUNCTION_MODULE_NAME'
     EXPORTING
       FORMNAME                 =  FNAME
*      VARIANT                  = ' '
*      DIRECT_CALL              = ' '
    IMPORTING
       FM_NAME                   = FM_NAME
    EXCEPTIONS
       NO_FORM                  = 1
       NO_FUNCTION_MODULE       = 2
       OTHERS                   = 3 .
  IF SY-SUBRC <> 0.
    MESSAGE 'Call SSF_FUNCTION_MODULE_NAME Error' TYPE 'E'.
  ENDIF.

  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 ZITAB INTO W_ZITAB.
*    MOVE-CORRESPONDING W_ZITAB TO I_ZITAB.
  CALL FUNCTION FM_NAME
    EXPORTING
      CONTROL_PARAMETERS = LS_CONTROL_PARAM
      OUTPUT_OPTIONS     = LS_COMPOSER_PARAM
      PARA1              = _BELNR
      PARA2              = LABNOTE
      PARA3              = WRBTR1
      PARA4              = WRBTR2
      PARA5              = WAERS1
      PARA6              = XBLNR1
    TABLES
      ZITAB              = ZITAB
    EXCEPTIONS
      FORMATTING_ERROR   = 1
      INTERNAL_ERROR     = 2
      SEND_ERROR         = 3
      USER_CANCELED      = 4
      OTHERS             = 5.
  IF SY-SUBRC <> 0.
    MESSAGE 'Call SmartForms Error' TYPE 'E'.
  ENDIF.
  IF OUTOPT-TDPREVIEW = 'X'.
*      EXIT.                   "是否全部预览
  ENDIF.
*    CLEAR I_ZITAB[].
*  ENDLOOP.

  CALL FUNCTION 'SSF_CLOSE'
    IMPORTING
      JOB_OUTPUT_INFO  = I_JOB_OUTPUT_INFO
    EXCEPTIONS
      FORMATTING_ERROR = 1
      INTERNAL_ERROR   = 2
      SEND_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.
ENDFORM.                    " PRINT_FROM


ZFI006F01的code也出来吧:

  1. *&---------------------------------------------------------------------*  
  2. *&  包括                ZFI006F01  
  3. *&---------------------------------------------------------------------*  
  4. FORM FIELDS_BUILD .  
  5.   
  6.   DATA TMP_POS TYPE I.  
  7.   REFRESH I_FIELDCAT_ALV.  
  8.   CLEAR   I_FIELDCAT.  
  9.   
  10.   TMP_POS = 1.  
  11.   I_FIELDCAT-COL_POS = TMP_POS.  
  12.   I_FIELDCAT-FIELDNAME = 'BOX'.  
  13.   I_FIELDCAT-REPTEXT_DDIC = '主项'.  
  14.   I_FIELDCAT-KEY = 'X'.  
  15.   I_FIELDCAT-OUTPUTLEN = '4'.  
  16.   I_FIELDCAT-INPUT = 'X'.  
  17.   I_FIELDCAT-CHECKBOX = 'X'.  
  18.   APPEND I_FIELDCAT TO I_FIELDCAT_ALV.  
  19.   CLEAR I_FIELDCAT.  
  20.   
  21.   TMP_POS = TMP_POS + 1.  
  22.   I_FIELDCAT-COL_POS = TMP_POS.  
  23.   I_FIELDCAT-FIELDNAME = 'BUKRS'.  
  24.   I_FIELDCAT-SELTEXT_L = '公司'.  
  25.   I_FIELDCAT-OUTPUTLEN = 6.  
  26.   I_FIELDCAT-NO_ZERO   = 'X'.  
  27.   I_FIELDCAT-KEY       = 'X'.  
  28.   APPEND I_FIELDCAT TO I_FIELDCAT_ALV.  
  29.   CLEAR I_FIELDCAT.  
  30.   
  31.   TMP_POS = TMP_POS + 1.  
  32.   I_FIELDCAT-COL_POS = TMP_POS.  
  33.   I_FIELDCAT-FIELDNAME = 'BELNR'.  
  34.   I_FIELDCAT-SELTEXT_L = '付款凭证号'.  
  35.   I_FIELDCAT-OUTPUTLEN = 10.  
  36.   I_FIELDCAT-NO_ZERO   = 'X'.  
  37.   I_FIELDCAT-KEY       = 'X'.  
  38.   APPEND I_FIELDCAT TO I_FIELDCAT_ALV.  
  39.   CLEAR I_FIELDCAT.  
  40.   
  41.   TMP_POS = TMP_POS + 1.  
  42.   I_FIELDCAT-COL_POS = TMP_POS.  
  43.   I_FIELDCAT-FIELDNAME = 'BUZEI'.  
  44.   I_FIELDCAT-SELTEXT_L = '行项目'.  
  45.   I_FIELDCAT-OUTPUTLEN = 6.  
  46.   I_FIELDCAT-NO_ZERO   = 'X'.  
  47.   I_FIELDCAT-KEY       = 'X'.  
  48.   APPEND I_FIELDCAT TO I_FIELDCAT_ALV.  
  49.   CLEAR I_FIELDCAT.  
  50.   
  51.   TMP_POS = TMP_POS + 1.  
  52.   I_FIELDCAT-COL_POS = TMP_POS.  
  53.   I_FIELDCAT-FIELDNAME = 'BUDAT'.  
  54.   I_FIELDCAT-SELTEXT_L = '过帐日期'.  
  55.   I_FIELDCAT-OUTPUTLEN = 8.  
  56.   I_FIELDCAT-NO_ZERO   = 'X'.  
  57.   I_FIELDCAT-KEY       = 'X'.  
  58.   APPEND I_FIELDCAT TO I_FIELDCAT_ALV.  
  59.   CLEAR I_FIELDCAT.  
  60.   
  61.   TMP_POS = TMP_POS + 1.  
  62.   I_FIELDCAT-COL_POS = TMP_POS.  
  63.   I_FIELDCAT-FIELDNAME = 'XBLNR'.  
  64.   I_FIELDCAT-SELTEXT_L = '参照'.  
  65.   I_FIELDCAT-OUTPUTLEN = 16.  
  66.   I_FIELDCAT-NO_ZERO   = 'X'.  
  67.   APPEND I_FIELDCAT TO I_FIELDCAT_ALV.  
  68.   CLEAR I_FIELDCAT.  
  69.   
  70.   TMP_POS = TMP_POS + 1.  
  71.   I_FIELDCAT-COL_POS = TMP_POS.  
  72.   I_FIELDCAT-FIELDNAME = 'UMSKZ'.  
  73.   I_FIELDCAT-SELTEXT_L = '科目类型'.  
  74.   I_FIELDCAT-OUTPUTLEN = 8.  
  75.   I_FIELDCAT-NO_ZERO   = 'X'.  
  76.   APPEND I_FIELDCAT TO I_FIELDCAT_ALV.  
  77.   CLEAR I_FIELDCAT.  
  78. *  
  79. *  TMP_POS = TMP_POS + 1.  
  80. *  I_FIELDCAT-COL_POS = TMP_POS.  
  81. *  I_FIELDCAT-FIELDNAME = 'SAKNR'.  
  82. *  I_FIELDCAT-SELTEXT_L = '科目编号'.  
  83. *  I_FIELDCAT-OUTPUTLEN = 8.  
  84. *  I_FIELDCAT-NO_ZERO   = 'X'.  
  85. *  APPEND I_FIELDCAT TO I_FIELDCAT_ALV.  
  86. *  CLEAR I_FIELDCAT.  
  87.   
  88.   TMP_POS = TMP_POS + 1.  
  89.   I_FIELDCAT-COL_POS = TMP_POS.  
  90.   I_FIELDCAT-FIELDNAME = 'HKONT'.  
  91.   I_FIELDCAT-SELTEXT_L = '科目编号'.  
  92.   I_FIELDCAT-OUTPUTLEN = 8.  
  93.   I_FIELDCAT-NO_ZERO   = 'X'.  
  94.   APPEND I_FIELDCAT TO I_FIELDCAT_ALV.  
  95.   CLEAR I_FIELDCAT.  
  96.   
  97.   TMP_POS = TMP_POS + 1.  
  98.   I_FIELDCAT-COL_POS = TMP_POS.  
  99.   I_FIELDCAT-FIELDNAME = 'TXT20'.  
  100.   I_FIELDCAT-SELTEXT_L = '科目名称'.  
  101.   I_FIELDCAT-OUTPUTLEN = 20.  
  102.   I_FIELDCAT-NO_ZERO   = 'X'.  
  103.   APPEND I_FIELDCAT TO I_FIELDCAT_ALV.  
  104.   CLEAR I_FIELDCAT.  
  105.   
  106.   TMP_POS = TMP_POS + 1.  
  107.   I_FIELDCAT-COL_POS = TMP_POS.  
  108.   I_FIELDCAT-FIELDNAME = 'SGTXT'.  
  109.   I_FIELDCAT-SELTEXT_L = '会计摘要'.  
  110.   I_FIELDCAT-OUTPUTLEN = 30.  
  111.   I_FIELDCAT-NO_ZERO   = 'X'.  
  112.   APPEND I_FIELDCAT TO I_FIELDCAT_ALV.  
  113.   CLEAR I_FIELDCAT.  
  114.   
  115.   TMP_POS = TMP_POS + 1.  
  116.   I_FIELDCAT-COL_POS = TMP_POS.  
  117.   I_FIELDCAT-FIELDNAME = 'SHKZG'.  
  118.   I_FIELDCAT-SELTEXT_L = '借/贷'.  
  119.   I_FIELDCAT-OUTPUTLEN = 8.  
  120.   I_FIELDCAT-NO_ZERO   = 'X'.  
  121.   APPEND I_FIELDCAT TO I_FIELDCAT_ALV.  
  122.   CLEAR I_FIELDCAT.  
  123.   
  124.   TMP_POS = TMP_POS + 1.  
  125.   I_FIELDCAT-COL_POS = TMP_POS.  
  126.   I_FIELDCAT-FIELDNAME = 'WRBTR'.  
  127.   I_FIELDCAT-SELTEXT_L = '金额'.  
  128.   I_FIELDCAT-OUTPUTLEN = 12.  
  129.   I_FIELDCAT-NO_ZERO   = 'X'.  
  130.   APPEND I_FIELDCAT TO I_FIELDCAT_ALV.  
  131.   CLEAR I_FIELDCAT.  
  132.   
  133.   TMP_POS = TMP_POS + 1.  
  134.   I_FIELDCAT-COL_POS = TMP_POS.  
  135.   I_FIELDCAT-FIELDNAME = 'WAERS'.  
  136.   I_FIELDCAT-SELTEXT_L = '币别'.  
  137.   I_FIELDCAT-OUTPUTLEN = 4.  
  138.   I_FIELDCAT-NO_ZERO   = 'X'.  
  139.   APPEND I_FIELDCAT TO I_FIELDCAT_ALV.  
  140.   CLEAR I_FIELDCAT.  
  141.   
  142.   TMP_POS = TMP_POS + 1.  
  143.   I_FIELDCAT-COL_POS = TMP_POS.  
  144.   I_FIELDCAT-FIELDNAME = 'LIFNR'.  
  145.   I_FIELDCAT-SELTEXT_L = '供应商'.  
  146.   I_FIELDCAT-OUTPUTLEN = 10.  
  147.   I_FIELDCAT-NO_ZERO   = 'X'.  
  148.   APPEND I_FIELDCAT TO I_FIELDCAT_ALV.  
  149.   CLEAR I_FIELDCAT.  
  150.   
  151.   TMP_POS = TMP_POS + 1.  
  152.   I_FIELDCAT-COL_POS = TMP_POS.  
  153.   I_FIELDCAT-FIELDNAME = 'NAME1'.  
  154.   I_FIELDCAT-SELTEXT_L = '供应商名称'.  
  155.   I_FIELDCAT-OUTPUTLEN = 20.  
  156.   I_FIELDCAT-NO_ZERO   = 'X'.  
  157.   APPEND I_FIELDCAT TO I_FIELDCAT_ALV.  
  158.   CLEAR I_FIELDCAT.  
  159.   
  160.   TMP_POS = TMP_POS + 1.  
  161.   I_FIELDCAT-COL_POS = TMP_POS.  
  162.   I_FIELDCAT-FIELDNAME = 'BKTXT'.  
  163.   I_FIELDCAT-SELTEXT_L = '抬头文本'.  
  164.   I_FIELDCAT-OUTPUTLEN = 30.  
  165.   I_FIELDCAT-NO_ZERO   = 'X'.  
  166.   APPEND I_FIELDCAT TO I_FIELDCAT_ALV.  
  167.   CLEAR I_FIELDCAT.  
  168.   
  169.   TMP_POS = TMP_POS + 1.  
  170.   I_FIELDCAT-COL_POS = TMP_POS.  
  171.   I_FIELDCAT-FIELDNAME = 'ZUONR'.  
  172.   I_FIELDCAT-SELTEXT_L = '分配号码'.  
  173.   I_FIELDCAT-OUTPUTLEN = 8.  
  174.   I_FIELDCAT-NO_ZERO   = 'X'.  
  175.   APPEND I_FIELDCAT TO I_FIELDCAT_ALV.  
  176.   CLEAR I_FIELDCAT.  
  177.   
  178.   TMP_POS = TMP_POS + 1.  
  179.   I_FIELDCAT-COL_POS = TMP_POS.  
  180.   I_FIELDCAT-FIELDNAME = 'USNAM'.  
  181.   I_FIELDCAT-SELTEXT_L = '制单人'.  
  182.   I_FIELDCAT-OUTPUTLEN = 10.  
  183.   I_FIELDCAT-NO_ZERO   = 'X'.  
  184.   APPEND I_FIELDCAT TO I_FIELDCAT_ALV.  
  185.   CLEAR I_FIELDCAT.  
  186.   
  187. ENDFORM.                    " FIELDS_BUILD  
*&---------------------------------------------------------------------*
*&  包括                ZFI006F01
*&---------------------------------------------------------------------*
FORM FIELDS_BUILD .

  DATA TMP_POS TYPE I.
  REFRESH I_FIELDCAT_ALV.
  CLEAR   I_FIELDCAT.

  TMP_POS = 1.
  I_FIELDCAT-COL_POS = TMP_POS.
  I_FIELDCAT-FIELDNAME = 'BOX'.
  I_FIELDCAT-REPTEXT_DDIC = '主项'.
  I_FIELDCAT-KEY = 'X'.
  I_FIELDCAT-OUTPUTLEN = '4'.
  I_FIELDCAT-INPUT = 'X'.
  I_FIELDCAT-CHECKBOX = 'X'.
  APPEND I_FIELDCAT TO I_FIELDCAT_ALV.
  CLEAR I_FIELDCAT.

  TMP_POS = TMP_POS + 1.
  I_FIELDCAT-COL_POS = TMP_POS.
  I_FIELDCAT-FIELDNAME = 'BUKRS'.
  I_FIELDCAT-SELTEXT_L = '公司'.
  I_FIELDCAT-OUTPUTLEN = 6.
  I_FIELDCAT-NO_ZERO   = 'X'.
  I_FIELDCAT-KEY       = 'X'.
  APPEND I_FIELDCAT TO I_FIELDCAT_ALV.
  CLEAR I_FIELDCAT.

  TMP_POS = TMP_POS + 1.
  I_FIELDCAT-COL_POS = TMP_POS.
  I_FIELDCAT-FIELDNAME = 'BELNR'.
  I_FIELDCAT-SELTEXT_L = '付款凭证号'.
  I_FIELDCAT-OUTPUTLEN = 10.
  I_FIELDCAT-NO_ZERO   = 'X'.
  I_FIELDCAT-KEY       = 'X'.
  APPEND I_FIELDCAT TO I_FIELDCAT_ALV.
  CLEAR I_FIELDCAT.

  TMP_POS = TMP_POS + 1.
  I_FIELDCAT-COL_POS = TMP_POS.
  I_FIELDCAT-FIELDNAME = 'BUZEI'.
  I_FIELDCAT-SELTEXT_L = '行项目'.
  I_FIELDCAT-OUTPUTLEN = 6.
  I_FIELDCAT-NO_ZERO   = 'X'.
  I_FIELDCAT-KEY       = 'X'.
  APPEND I_FIELDCAT TO I_FIELDCAT_ALV.
  CLEAR I_FIELDCAT.

  TMP_POS = TMP_POS + 1.
  I_FIELDCAT-COL_POS = TMP_POS.
  I_FIELDCAT-FIELDNAME = 'BUDAT'.
  I_FIELDCAT-SELTEXT_L = '过帐日期'.
  I_FIELDCAT-OUTPUTLEN = 8.
  I_FIELDCAT-NO_ZERO   = 'X'.
  I_FIELDCAT-KEY       = 'X'.
  APPEND I_FIELDCAT TO I_FIELDCAT_ALV.
  CLEAR I_FIELDCAT.

  TMP_POS = TMP_POS + 1.
  I_FIELDCAT-COL_POS = TMP_POS.
  I_FIELDCAT-FIELDNAME = 'XBLNR'.
  I_FIELDCAT-SELTEXT_L = '参照'.
  I_FIELDCAT-OUTPUTLEN = 16.
  I_FIELDCAT-NO_ZERO   = 'X'.
  APPEND I_FIELDCAT TO I_FIELDCAT_ALV.
  CLEAR I_FIELDCAT.

  TMP_POS = TMP_POS + 1.
  I_FIELDCAT-COL_POS = TMP_POS.
  I_FIELDCAT-FIELDNAME = 'UMSKZ'.
  I_FIELDCAT-SELTEXT_L = '科目类型'.
  I_FIELDCAT-OUTPUTLEN = 8.
  I_FIELDCAT-NO_ZERO   = 'X'.
  APPEND I_FIELDCAT TO I_FIELDCAT_ALV.
  CLEAR I_FIELDCAT.
*
*  TMP_POS = TMP_POS + 1.
*  I_FIELDCAT-COL_POS = TMP_POS.
*  I_FIELDCAT-FIELDNAME = 'SAKNR'.
*  I_FIELDCAT-SELTEXT_L = '科目编号'.
*  I_FIELDCAT-OUTPUTLEN = 8.
*  I_FIELDCAT-NO_ZERO   = 'X'.
*  APPEND I_FIELDCAT TO I_FIELDCAT_ALV.
*  CLEAR I_FIELDCAT.

  TMP_POS = TMP_POS + 1.
  I_FIELDCAT-COL_POS = TMP_POS.
  I_FIELDCAT-FIELDNAME = 'HKONT'.
  I_FIELDCAT-SELTEXT_L = '科目编号'.
  I_FIELDCAT-OUTPUTLEN = 8.
  I_FIELDCAT-NO_ZERO   = 'X'.
  APPEND I_FIELDCAT TO I_FIELDCAT_ALV.
  CLEAR I_FIELDCAT.

  TMP_POS = TMP_POS + 1.
  I_FIELDCAT-COL_POS = TMP_POS.
  I_FIELDCAT-FIELDNAME = 'TXT20'.
  I_FIELDCAT-SELTEXT_L = '科目名称'.
  I_FIELDCAT-OUTPUTLEN = 20.
  I_FIELDCAT-NO_ZERO   = 'X'.
  APPEND I_FIELDCAT TO I_FIELDCAT_ALV.
  CLEAR I_FIELDCAT.

  TMP_POS = TMP_POS + 1.
  I_FIELDCAT-COL_POS = TMP_POS.
  I_FIELDCAT-FIELDNAME = 'SGTXT'.
  I_FIELDCAT-SELTEXT_L = '会计摘要'.
  I_FIELDCAT-OUTPUTLEN = 30.
  I_FIELDCAT-NO_ZERO   = 'X'.
  APPEND I_FIELDCAT TO I_FIELDCAT_ALV.
  CLEAR I_FIELDCAT.

  TMP_POS = TMP_POS + 1.
  I_FIELDCAT-COL_POS = TMP_POS.
  I_FIELDCAT-FIELDNAME = 'SHKZG'.
  I_FIELDCAT-SELTEXT_L = '借/贷'.
  I_FIELDCAT-OUTPUTLEN = 8.
  I_FIELDCAT-NO_ZERO   = 'X'.
  APPEND I_FIELDCAT TO I_FIELDCAT_ALV.
  CLEAR I_FIELDCAT.

  TMP_POS = TMP_POS + 1.
  I_FIELDCAT-COL_POS = TMP_POS.
  I_FIELDCAT-FIELDNAME = 'WRBTR'.
  I_FIELDCAT-SELTEXT_L = '金额'.
  I_FIELDCAT-OUTPUTLEN = 12.
  I_FIELDCAT-NO_ZERO   = 'X'.
  APPEND I_FIELDCAT TO I_FIELDCAT_ALV.
  CLEAR I_FIELDCAT.

  TMP_POS = TMP_POS + 1.
  I_FIELDCAT-COL_POS = TMP_POS.
  I_FIELDCAT-FIELDNAME = 'WAERS'.
  I_FIELDCAT-SELTEXT_L = '币别'.
  I_FIELDCAT-OUTPUTLEN = 4.
  I_FIELDCAT-NO_ZERO   = 'X'.
  APPEND I_FIELDCAT TO I_FIELDCAT_ALV.
  CLEAR I_FIELDCAT.

  TMP_POS = TMP_POS + 1.
  I_FIELDCAT-COL_POS = TMP_POS.
  I_FIELDCAT-FIELDNAME = 'LIFNR'.
  I_FIELDCAT-SELTEXT_L = '供应商'.
  I_FIELDCAT-OUTPUTLEN = 10.
  I_FIELDCAT-NO_ZERO   = 'X'.
  APPEND I_FIELDCAT TO I_FIELDCAT_ALV.
  CLEAR I_FIELDCAT.

  TMP_POS = TMP_POS + 1.
  I_FIELDCAT-COL_POS = TMP_POS.
  I_FIELDCAT-FIELDNAME = 'NAME1'.
  I_FIELDCAT-SELTEXT_L = '供应商名称'.
  I_FIELDCAT-OUTPUTLEN = 20.
  I_FIELDCAT-NO_ZERO   = 'X'.
  APPEND I_FIELDCAT TO I_FIELDCAT_ALV.
  CLEAR I_FIELDCAT.

  TMP_POS = TMP_POS + 1.
  I_FIELDCAT-COL_POS = TMP_POS.
  I_FIELDCAT-FIELDNAME = 'BKTXT'.
  I_FIELDCAT-SELTEXT_L = '抬头文本'.
  I_FIELDCAT-OUTPUTLEN = 30.
  I_FIELDCAT-NO_ZERO   = 'X'.
  APPEND I_FIELDCAT TO I_FIELDCAT_ALV.
  CLEAR I_FIELDCAT.

  TMP_POS = TMP_POS + 1.
  I_FIELDCAT-COL_POS = TMP_POS.
  I_FIELDCAT-FIELDNAME = 'ZUONR'.
  I_FIELDCAT-SELTEXT_L = '分配号码'.
  I_FIELDCAT-OUTPUTLEN = 8.
  I_FIELDCAT-NO_ZERO   = 'X'.
  APPEND I_FIELDCAT TO I_FIELDCAT_ALV.
  CLEAR I_FIELDCAT.

  TMP_POS = TMP_POS + 1.
  I_FIELDCAT-COL_POS = TMP_POS.
  I_FIELDCAT-FIELDNAME = 'USNAM'.
  I_FIELDCAT-SELTEXT_L = '制单人'.
  I_FIELDCAT-OUTPUTLEN = 10.
  I_FIELDCAT-NO_ZERO   = 'X'.
  APPEND I_FIELDCAT TO I_FIELDCAT_ALV.
  CLEAR I_FIELDCAT.

ENDFORM.                    " FIELDS_BUILD



  当然SmartForm就得先在Tcode:SMARTFORMS下建立相应的,有不熟悉的童鞋可以参考:

    
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值