1)se71进入后即可创建form
步骤如下:
2)语法命令:
a)引用变量:如引用itab_header-werks,则可 &itab_header-werks&.当form输出时,form将在相应的窗口里显示itab_header-werks的值。
b)引用字符串:直接在form将在相应的窗口里输入常量即可。如输出一个报表的名字“中华人民共和国宪法”的字样,只需要在form的编辑窗口里直接输入该字样。汉字,各种字符,均可直接输入。
c)横线命令:BOX XPOS x_x MM YPOS y_y MM WIDTH v_w MM HEIGHT 0 MM FRAME w_w TW
即在(x_x,y_y)点开始画一长度为v_w 个单位长的横线,其线宽为w_w个单位
竖线命令:BOX XPOS x_x MM YPOS x_y MM WIDTH 0 MM HEIGHT v_h MM FRAME w_w TW
即在(x_x,x_y)点开始画一高度为v_h 个单位长的竖线,其线宽为w_w个单位
3)调用
call function 'OPEN_FORM'
EXPORTING
form = 'YTEST03'
EXCEPTIONS
others = 1.
loop at <内表名>.
//可以在循环体内添加控制语句来控制window得调用
call function 'WRITE_FORM'
EXPORTING
window = 'HEADERR'
EXCEPTIONS
others = 1.
call function 'WRITE_FORM'
EXPORTING
element = 'ITEM' "元素
window = 'HEADER'
EXCEPTIONS
others = 1.
call function 'WRITE_FORM'
EXPORTING
element = 'FOOTER' "元素
window = 'HEADER'
EXCEPTIONS
others = 1.
call function 'WRITE_FORM'
EXPORTING
window = 'FOOTR'
EXCEPTIONS
others = 1.
endloop.
call function 'CLOSE_FORM'.
""声明 在script form 中,/e也就是"元素"的书写方法为,
/e: item
p1: jsdaflkjsadlfjlsadf
/e: item1
............
主要是调用。
例子:
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 LIKE ITAB[].
FORM PRINT_ITAB TABLES JTAB STRUCTURE ITAB.
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 NUMBER SY-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 NUMBER SY-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 NUMBER SY-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-MSGV3 SY-MSGV4.
ENDIF.
ENDFORM.
阅读(3397) | 评论(1) | 转发(0) |