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


输出类型

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

合作伙伴功能

打印程序 - 示例

以下是示例打印程序,使用公司相关信息(如客户数据,日期,航班预订等)创建发票.

第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 显示的名称表格.

  • 设备可以是PRINTER(使用假脱机打印),TELEFAX(传真输出)或屏幕(输出到屏幕)

  • 选项显示ITCPO类型的结构以控制各种属性 - 打印预览,copi数量es.

第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

  • ELEMENT 功能模块显示要打印的"textelement","WINDOW"显示要打印的表单的哪个窗口.

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

  • 功能表示要替换,添加或追加文字.

第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/

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