SAP脚本 - 打印程序



在SAP脚本中,**打印程序**用于打印实际表单并从数据库表中获取数据,选择表单并以定义的格式打印文本元素。它从数据库中检索数据并将其与用户输入结合,格式化数据并打印。

所有打印程序和表单都存储在表**TNAPR**中。

打印程序中使用了不同的功能模块。要启动打印程序,使用OPEN_FORM功能模块,要结束程序使用CLOSE_FORM功能模块。

**OPEN_FORM** - 在打印程序中,在进行任何打印之前,应首先调用此函数。您指定表单的名称和打印语言。

CALL FUNCTION 'OPEN_FORM' 

**START_FORM** - 此函数用于在一个请求中使用具有相似特征的不同表单。

CALL FUNCTION ’START_FORM’

**WRITE_FORM** - 此函数用于使用文本元素在表单的窗口中写入文本。

CALL FUNCTION ‘WRITE_FORM’

**CONTROL_FORM** - 此函数用于在ABAP程序中插入SAP脚本控制命令。

CALL FUNCTION ‘CONTROL_FORM’

**END_FORM** - 此函数在最后调用,并且没有导出参数。

CALL FUNCTION ‘END_FORM’ 

**CLOSE_FORM** - 要查看标准表单和标准打印程序,请运行**事务代码:NACE**

输入应用程序类型,然后单击顶部的输出类型。

NACE

Output Types

在下面的屏幕截图中,您可以看到所选服务的应用程序名称。

Partner Functions

打印程序 - 示例

以下是一个示例打印程序,它创建包含公司相关信息(如客户数据、日期、航班预订等)的发票。

第1部分 - 获取客户数据

TABLES: zcustom, zbook, zpfli.  
DATA: bookings like zbook... 
select * from... 
/In this section, you are reading the data from tables in database./ 

第2部分 - 打开表单

CALL FUNCTION 'OPEN_FORM'  
EXPORTING  
DEVICE     = 'PRINTER'  
FORM       = 'EXAMPLE1'  
DIALOG     = 'X'  
OPTIONS    = 
EXCEPTIONS  
CANCELLED  = 1 
DEVICE     = 2 
FORM       = 3 
OTHERS     = 11 
/In this section, you are calling OPEN_FORM function module to initialize print output./

在上述功能模块中,参数 -

  • **FORM**显示表单的名称。

  • **DEVICE**可以是PRINTER(使用SPOOL打印)、TELEFAX(传真输出)或SCREEN(输出到屏幕)

  • **OPTIONS**显示类型为ITCPO的结构,用于控制各种属性 - 打印预览、副本数量。

第3部分 - 打印表格标题

CALL FUNCTION 'WRITE_FORM' 
EXPORTING 
ELEMENT  = 'textelement’  
TYPE     = 'TOP' 
WINDOW   = 'MAIN' 
FUNCTION = 'SET' 
... 
/In this section, you use WRITE_FORM function to output general text elements and column 
heading/
  • **ELEMENT**功能模块显示要打印的“textelement”,而“WINDOW”显示要打印的表单的哪个窗口。

  • **TYPE**显示窗口的输出区域,如TOP、BOTTOM或BODY。

  • **FUNCTION**指示要替换、添加或附加的文本。

第4部分 - 打印客户预订

LOOP AT bookings WHERE  
CALL FUNCTION 'WRITE_FORM'  
EXPORTING  
ELEMENT  = 'BOOKING'  
TYPE     = 'BODY'  
WINDOW   = 'MAIN'  
...  
ENDLOOP  
/In this section, text element BOOKING is used to output the bookings of a customer from
the loop from BOOKING table in database./

第5部分 - 关闭表单

CALL FUNCTION 'CLOSE_FORM'  
IMPORTING 
* RESULT    = 
EXCEPTIONS 
UNOPENED    = 1 
OTHERS      = 5 
/To end the Print Program/ 

您在最后调用此功能模块,它没有导出参数。

广告