調用標準FORM打印(SE71)

来源:互联网 发布:最好拆卸软件 编辑:程序博客网 时间:2024/04/16 20:26

           PERFORM SUB_FORM_OPEN USING 'ZSCREEN_TESTFORM' '1' 'X' 'X' 'E'"FORM_NAME "pcopies,preview,print dialog,print language
          PERFORM SUB_FORM_WRITE_DATA.
          PERFORM SUB_FORM_CLOSE.

================================================

 *******************BEGIN FOR PRINTER FORM*******************************
FORM SUB_FORM_OPEN USING PF_NAME PF_COPIES PF_VIEW PF_DIALOG PF_LANGU.
data: L_ITCPO like ITCPO.
*------------------------------------
   L_ITCPO-TDIMMED = 'X'.
   L_ITCPO-TDNEWID = 'X'.
   L_ITCPO-TDFINAL = 'X'.
   IF PF_COPIES > 1.
      L_ITCPO-TDCOPIES = PF_COPIES.
   ELSE.
      L_ITCPO-TDCOPIES = 1.
   ENDIF.
"preview
   L_ITCPO-TDPREVIEW = PF_VIEW.
   L_ITCPO-TDNOPRINT = PF_VIEW.
"print
   IF PF_VIEW = ''.
      L_ITCPO-TDNOPREV  = 'X'.
   ELSE.
      L_ITCPO-TDNOPREV  = ''.
   ENDIF.
*------------------------------------
    CALL FUNCTION 'OPEN_FORM'
         EXPORTING
              form     = PF_NAME
              language = PF_LANGU
              dialog   = PF_DIALOG
              options  = L_ITCPO
         EXCEPTIONS
              canceled = 1
              device   = 2
              others   = 3.
      IF sy-subrc <> 0.
        WRITE'Error in open_form',sy-subrc.
        EXIT.
      ENDIF.
ENDFORM.

FORM SUB_FORM_WRITE_DATA.
DATA: L_MODX TYPE I,
      L_INDEX LIKE SY-TABIX,
      L_TOINDEX TYPE I.
  DESCRIBE TABLE ETABLE LINES L_TOINDEX.

*   --FOOT
    PERFORM SUB_FORM_WRITE USING 'S_PAGE' 'FOOT'.
    PERFORM SUB_FORM_WRITE USING 'S_TEST' 'FOOT'.

  LOOP AT ETABLE INTO WA_ETABLE.
    L_INDEX = SY-TABIX.
*   --MAIN
    PERFORM SUB_FORM_WRITE USING 'TEST01' 'MAIN'.
******************换页***********************
      L_MODX = L_INDEX MOD 2.
      IF WA_ETABLE IS NOT INITIAL AND L_MODX = 0 AND L_INDEX < L_TOINDEX.
          PERFORM SUB_FORM_WRITE USING 'NEW_PAGE' 'MAIN'"打印换页
      ENDIF.
  ENDLOOP.
ENDFORM.

FORM SUB_FORM_WRITE USING PF_ELEM PF_WIND.
    CALL FUNCTION 'WRITE_FORM'
           EXPORTING
                element = PF_ELEM
                window  = PF_WIND
           EXCEPTIONS
                OTHERS  = 1.
      IF sy-subrc <> 0.
        WRITE 'Error write_item_form'.
        EXIT.
      ENDIF.
ENDFORM.

FORM SUB_FORM_CLOSE.
    CALL FUNCTION 'CLOSE_FORM'"关闭FORM
           EXCEPTIONS
                OTHERS = 1.
      IF sy-subrc <> 0.
        WRITE 'Error in close_form'.
        EXIT.
      ENDIF.
ENDFORM.
******************* END FOR PRINTER FORM *******************************
  

原创粉丝点击