SMARTFORM是可以转化成PDF格式的文档的,废话就不说了,先贴一支具体的实例程序吧。本程序是本人在一上海项目的时候所做的一支实用程序。
*&---------------------------------------------------------------------* *& Report ZSCT003 *& T-code 内向交货单箱码打印 *&---------------------------------------------------------------------* *&Work Request ID: DEVK902847 *& Program ID: ZSCT003 *&Program Caption: 内向交货单箱码打印 *& Assignee: 薛现军(Xavery Hsueh) *& Deliver Date: 2010/04/28 *& Created Date: 2010/04/07 *&---------------------------------------------------------------------* REPORT zsct003 NO STANDARD PAGEHEADING.
*&---------------------------------------------------------------------* *& 声明表 *&---------------------------------------------------------------------* TABLES:likp,
lips, vekp. *&---------------------------------------------------------------------* *& Structure and Internal Structure. *&---------------------------------------------------------------------* TYPES:BEGIN OF typ_result. INCLUDE STRUCTURE zsscm001. TYPES:END OF typ_result. *&---------------------------------------------------------------------* *& variants *&---------------------------------------------------------------------* RANGES:r_exidv FOR vekp-exidv. DATA:w_bin_filesize TYPE i, gt_pdf_tab LIKE tline OCCURS 0 WITH HEADER LINE. DATA tline TYPE TABLE OF tline WITH HEADERLINE..
DATA gt_otf TYPE itcoo OCCURS 0 WITH HEADER LINE.
DATA:f_funcname TYPE rs38l_fnam. DATA: f_formname TYPE tdsfname VALUE 'ZSCM001', control_parameters TYPE ssfctrlop, w_outoptions TYPE ssfcompop, errtab TYPE tsferror. DATA: v_lifnr TYPE lifnr, v_posnr TYPE posnr, v_txt20 TYPE txt20, v_name1 TYPE name1, v_vgbel TYPE vbeln. DATA:bin_file TYPE xstring.
DATA document_output_info TYPE ssfcrespd.
DATA job_output_info TYPE ssfcrescl. DATA job_output_options TYPE ssfcresop. DATA: binfilesize TYPE i,
file_name TYPE string, file_path TYPE string, full_path TYPE string. *&---------------------------------------------------------------------* *& 声明表 *&---------------------------------------------------------------------* DATA:it_result TYPE TABLE OF typ_result WITH HEADERLINE. DATA:it_vekp TYPE TABLE OF vekpWITH HEADER LINE. *&---------------------------------------------------------------------* *& 定制选择屏幕 *&---------------------------------------------------------------------* SELECTION-SCREEN BEGIN OF BLOCK xavery WITH FRAME TITLEtext-001. PARAMETERS:p_vbeln TYPE vbeln_vl MATCHCODE OBJECT vmvm OBLIGATORY. SELECT-OPTIONS s_posnr FORlips-posnr. "箱码 SELECTION-SCREEN END OF BLOCK xavery. START-OF-SELECTION.
PERFORMfrm_process_cond. "处理选择条件 PERFORMfrm_query_data. "查询箱码数据 END-OF-SELECTION.
PERFORM frm_create_fieldcat. PERFORM frm_init_printer. AT USER-COMMAND.
CASE sy-ucomm. WHEN'PRINT'. PERFORM frm_printer_barcode. WHENOTHERS. ENDCASE. *&---------------------------------------------------------------------* *& Form FRM_QUERY_DATA *&---------------------------------------------------------------------* * 取数逻辑 *----------------------------------------------------------------------* FORM frm_query_data . * 取交货单数据 CLEARlikp. SELECT SINGLE * FROM likp WHERE vbeln =p_vbeln. * 取供应商名称 SELECT SINGLE name1 FROM lfa1 INTO v_name1 WHERE lifnr = likp-lifnr. * 取采购订单号 SELECT SINGLE vgbel FROM lips INTO v_vgbel WHERE vbeln = p_vbeln. * 取箱码范围 REFRESH it_vekp. SELECT * FROM vekp INTO TABLE it_vekp WHERE vpobjkey = p_vbeln AND exidv IN r_exidv AND status NE '0060'. CHECK sy-subrc = 0. LOOP AT it_vekp. CLEAR:it_result. CONCATENATEv_vgbel p_vbeln INTO it_result-txt20 SEPARATED BY '/'. it_result-vbeln = p_vbeln. it_result-ebeln = v_vgbel. it_result-name1 = v_name1. it_result-posnr = v_posnr. CALLFUNCTION 'CONVERSION_EXIT_ALPHA_OUTPUT' EXPORTING input