Smartforms 打印调用程序

 


*
&---------------------------------------------------------------------* *& FORM FRM_OUTPUT_FORM *&---------------------------------------------------------------------* FORM frm_output_form USING isautoflag. DATA: lt_out TYPE STANDARD TABLE OF zst_bc001code2, lw_out TYPE zst_bc001code2. DATA: lw_control TYPE ssfctrlop. DATA: lw_options TYPE ssfcompop, lv_index TYPE sy-tabix. DATA: lv_fmnam TYPE rs38l_fnam, "FUNCTION NAME lv_sfnam TYPE tdsfname. "SMARTFORMS NAME *SET PRINT PARAMETERS lw_control-no_dialog = cn_flagx. IF isautoflag = 'N'. lw_control-preview = cn_flagx. "设置自动打印 ENDIF. lw_control-langu = sy-langu. lw_control-no_open = cn_flagx. lw_control-no_close = cn_flagx. lw_options-tdimmed = cn_flagx. * LW_CONTROL-DEVICE = 'PRINTER'. "打印机设备 IF sy-langu = '1'. lw_options-tddest = cn_locn. * ELSEIF SY-LANGU = 'J'. * LW_OPTIONS-TDDEST = CN_LOJP. * ELSEIF SY-LANGU = 'E'. * LW_OPTIONS-TDDEST = CN_LOHK. "英文版 ENDIF. * SMARTFORMS NAME IF cn_unified = cn_flagx. lv_sfnam = 'ZBC_PROCODE_PRINT'. ELSE. lv_sfnam = 'ZBC_PROCODE_PO_PRINTER'. ENDIF. CALL FUNCTION 'SSF_FUNCTION_MODULE_NAME' EXPORTING formname = lv_sfnam IMPORTING fm_name = lv_fmnam EXCEPTIONS no_form = 1 no_function_module = 2 OTHERS = 3. IF sy-subrc <> 0. MESSAGE ID sy-msgid TYPE sy-msgty NUMBER sy-msgno WITH sy-msgv1 sy-msgv2 sy-msgv3 sy-msgv4. ENDIF. *---SSF_OPEN CALL FUNCTION 'SSF_OPEN' "打开打印窗口 EXPORTING control_parameters = lw_control output_options = lw_options * USER_SETTINGS = CN_FLAGX EXCEPTIONS formatting_error = 1 internal_error = 2 send_error = 3 user_canceled = 4 OTHERS = 5. *----- SET PRINT DATA ----------------------------------------------* CLEAR:gt_ztbc001[]. LOOP AT gt_print. IF gt_print-check = cn_flagx. "内表ZTBC001赋值 PERFORM frm_print_menge USING gt_print-menge gt_print-ebeln gt_print-ebelp. * 遍历打印 LOOP AT gt_print_out. lw_out-matnr = gt_print_out-matnr. lw_out-pcode = gt_print_out-pcode. lw_out-promo = gt_print_out-promo. *---- CALL SMARTFORMS ----------------------------------------------* CALL FUNCTION lv_fmnam EXPORTING control_parameters = lw_control output_options = lw_options gw_out = lw_out * TABLES * GT_OUT = LT_OUT EXCEPTIONS formatting_error = 1 internal_error = 2 send_error = 3 user_canceled = 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. * WAIT UP TO 1 SECONDS. ENDLOOP. ENDIF. ENDLOOP. *---SSF_CLOSE "关闭打印窗口,如点打印预览会关闭此窗口 CALL FUNCTION 'SSF_CLOSE' EXCEPTIONS formatting_error = 1 internal_error = 2 send_error = 3 OTHERS = 4. ********************************************************************** * Modify By Jevin At 2013.02.01 * Descriptioin: * 1.PO打印后不需要清空条码操作。 ********************************************************************** *注:先关闭预览窗口再确认 * CALL FUNCTION 'POPUP_TO_CONFIRM_STEP' * EXPORTING ** " TEXT-014 STANDS FOR 'SAVE DATA' * titel = text-003 ** " TEXT-012 STANDS FOR 'THIS WOULD UPDATE THE DATA INTO SYSTEM,' * textline1 = text-001 ** " TEXT-013 STANDS FOR 'CONFIRM TO PROCEED?' * textline2 = text-002 * cancel_display = space * IMPORTING * answer = gv_answer. * ** 打印成功 * IF gv_answer = cn_yes. * CLEAR:pr_ebeln. "PR_MENGE. "PR_EBELP, * CLEAR:gt_ztbc001[],gt_print[],gt_print_out[]. * pr_aedat = sy-datum. * ELSE. ** 打印失败 删除产品条码 * DELETE ztbc001 FROM TABLE gt_ztbc001. * IF sy-subrc = 0. * COMMIT WORK AND WAIT. * ELSE. * ROLLBACK WORK. * ENDIF. * * CLEAR:gt_ztbc001[]. * ENDIF. ENDFORM. "FRM_OUTPUT_FORM

 

转载于:https://www.cnblogs.com/cancer_xu/archive/2013/02/20/Smartforms-Print-Code.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值