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

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM