如何调用SAP SCRIPT

标题

  SAP ABAP/4学习--如何调用SAP SCRIPT     选择自 opparts 的 Blog

关键字

  SAP ABAP/4学习--如何调用SAP SCRIPT

出处

 

 

*-----------------------------------------------------------------------

* Program ID    :ZTEST904

* Program Name  :ZTEST904

*-----------------------------------------------------------------------

* CREATED DATE  :2004/09/04

* CREATED BY    :LG

* DESCRIPTION   :这个程序是学习如何通过程序来调用

*                已经做好的SCRIPT画面来生成报表的。

*-----------------------------------------------------------------------

* MODIFICATION  :

* DATE MODIFIED       MODIFIED BY     TRANSPORT REQUEST    DESCRIPTION

* 2004/09/18          LG              VERSION:01/01            学习

*-----------------------------------------------------------------------

REPORT ZTEST904 .

 

*定义需要使用的表

***********************************************

TABLES: MSEG,

       MARA,

       MKPF.

 

*定义一个内部表(带表头)

***********************************************

DATA:  BEGIN OF ITAB OCCURS 0,

            A LIKE MSEG-MBLNR,

           B LIKE MSEG-ZEILE,

       END   OF ITAB.

 

 

* 插入一些使用的数据。

***********************************************

DO 30 TIMES.

 ITAB-A = '测试数据'.

 ITAB-B = SY-INDEX.

 APPEND ITAB.

ENDDO.

 

* 显示画面数据,显示上面的打印按钮。用户点击打印

* 然后调用打印的SCRIPT。显示答应的数据。

***********************************************

 

* INITIALIZATION

***********************************************

INITIALIZATION.

 

* AT SELECTION-SCREEN.

***********************************************

AT SELECTION-SCREEN.

 

* START-OF-SELECTION

***********************************************

START-OF-SELECTION.

SET PF-STATUS 'ZTEST_904'.

PERFORM PRINT_ITAB TABLES ITAB.

 

* AT USER-COMMAND.

***********************************************

AT USER-COMMAND.

CASE SY-UCOMM.

  WHEN 'USER_PRINT'.

    WRITE:/ 'BUTTON CLIKCKED'.

    PERFORM OPEN_FORM.

      PERFORM START_FORM.

        DO 50 TIMES.

           PERFORM WRITE_FORM USING '' 'MAIN''SET'.

        ENDDO.

      PERFORM END_FORM.

    PERFORM CLOSE_FORM.

ENDCASE.

 

* TOP-OF-PAGE.

***********************************************

TOP-OF-PAGE.

 

* END-OF-PAGE.

***********************************************

END-OF-PAGE.

 

 

*&----------------------------------------------------------------------

*& FORM : PRINT_ITAB

*&----------------------------------------------------------------------

* <处理概要>

*-----------------------------------------------------------------------

* <种别(入出力) <参数名> <类型> <调用类型参照,值>>

*-----------------------------------------------------------------------

* FORM PRINT_ITAB TABLES JTAB LIKEITAB[].

FORM PRINT_ITAB TABLES JTAB STRUCTUREITAB.

 LOOP AT JTAB.

   WRITE:/ JTAB-A , 10 JTAB-B.

 ENDLOOP.

ENDFORM.

 

FORM PRINT_PAGE.

 

ENDFORM.

 

FORM OPEN_FORM.

 CALL FUNCTION 'OPEN_FORM'

  EXPORTING

*    APPLICATION                      = 'TX'

*    ARCHIVE_INDEX                     =

*    ARCHIVE_PARAMS                   =

     DEVICE                           = 'PRINTER'

*    DIALOG                           = 'X'

     FORM                             = 'ZTEST904'

     LANGUAGE                         = SY-LANGU

*    OPTIONS                          =

*    MAIL_SENDER                      =

*    MAIL_RECIPIENT                   =

*    MAIL_APPL_OBJECT                 =

*    RAW_DATA_INTERFACE               = '*'

*  IMPORTING

*    LANGUAGE                          =

*    NEW_ARCHIVE_PARAMS               =

*    RESULT                           =

  EXCEPTIONS

    CANCELED                         = 1

    DEVICE                           = 2

    FORM                             = 3

    OPTIONS                           = 4

    UNCLOSED                         = 5

    MAIL_OPTIONS                     = 6

    ARCHIVE_ERROR                    = 7

    INVALID_FAX_NUMBER               = 8

    MORE_PARAMS_NEEDED_IN_BATCH      = 9

    SPOOL_ERROR                      = 10

    OTHERS                           = 11

            .

 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.

 

FORM CLOSE_FORM.

 CALL FUNCTION 'CLOSE_FORM'

* IMPORTING

*   RESULT                         =

*   RDI_RESULT                     =

* TABLES

*   OTFDATA                        =

 EXCEPTIONS

   UNOPENED                       = 1

   BAD_PAGEFORMAT_FOR_PRINT       = 2

   SEND_ERROR                     = 3

   SPOOL_ERROR                    = 4

   OTHERS                         = 5

           .

 IF SY-SUBRC <> 0.

 MESSAGE ID SY-MSGID TYPE SY-MSGTY NUMBERSY-MSGNO

        WITH SY-MSGV1 SY-MSGV2 SY-MSGV3 SY-MSGV4.

 ENDIF.

 

ENDFORM.

 

FORM START_FORM.

 CALL FUNCTION 'START_FORM'

  EXPORTING

*   ARCHIVE_INDEX          =

    FORM                   ='ZTEST904'

*   LANGUAGE               = ' '

    STARTPAGE              = 'FRIST'

*   PROGRAM                = ''

*   MAIL_APPL_OBJECT       =

* IMPORTING

*   LANGUAGE               =

 EXCEPTIONS

   FORM                   = 1

   FORMAT                 = 2

   UNENDED                = 3

   UNOPENED               = 4

   UNUSED                 = 5

   SPOOL_ERROR            = 6

   OTHERS                 = 7

           .

 IF SY-SUBRC <> 0.

 MESSAGE ID SY-MSGID TYPE SY-MSGTY NUMBERSY-MSGNO

        WITH SY-MSGV1 SY-MSGV2 SY-MSGV3 SY-MSGV4.

 ENDIF.

 

ENDFORM.

 

FORM END_FORM.

 CALL FUNCTION 'END_FORM'

* IMPORTING

*   RESULT                         =

 EXCEPTIONS

   UNOPENED                       = 1

   BAD_PAGEFORMAT_FOR_PRINT       = 2

   SPOOL_ERROR                    = 3

   OTHERS                         = 4

           .

 IF SY-SUBRC <> 0.

 MESSAGE ID SY-MSGID TYPE SY-MSGTY NUMBERSY-MSGNO

        WITH SY-MSGV1 SY-MSGV2 SY-MSGV3 SY-MSGV4.

 ENDIF.

ENDFORM.

 

FORM WRITE_FORM USING ELE WIN FUNC.

 CALL FUNCTION 'WRITE_FORM'

 EXPORTING

    ELEMENT                        =ELE

    FUNCTION                       = FUNC

*   TYPE                           ='BODY'

    WINDOW                         =WIN

* IMPORTING

*   PENDING_LINES                  =

  EXCEPTIONS

   ELEMENT                        = 1

   FUNCTION                       = 2

   TYPE                           = 3

   UNOPENED                       = 4

   UNSTARTED                      = 5

   WINDOW                         = 6

   BAD_PAGEFORMAT_FOR_PRINT       = 7

   SPOOL_ERROR                    = 8

   OTHERS                         = 9

           .

 IF SY-SUBRC <> 0.

  MESSAGE ID SY-MSGID TYPE SY-MSGTY NUMBER SY-MSGNO

           WITH SY-MSGV1 SY-MSGV2 SY-MSGV3SY-MSGV4.

 ENDIF.

 

ENDFORM.

猜你喜欢

转载自blog.csdn.net/kuangben1/article/details/7084203