最近新做了一个smartforms打印的程序,但是打印有几个问题。
批量打印时
1、每次都会弹出对话框 需要点一下才会进行打印 ,这个应该是打印控制参数的问题
如果打印没有设置默认打印的 缺省输出设备也会弹出来 让选择设备。
总结如下

打印参数控制:
FORM USER_COMMAND USING RF_UCOMM LIKE SY-UCOMM
RS_SELFIELD TYPE SLIS_SELFIELD. "#EC CALLED
DATA: FM_NAME(30) TYPE C. "期间,以便传入FORM模块
DATA: TMP_CONTROL_PARAMETERS TYPE SSFCTRLOP,
JOB_OUTPUT_INFO TYPE SSFCRESCL,
RTN_PARAMETERS TYPE SSFCRESOP.
DATA: GAMENGE TYPE LTEXT.
DATA:GTTAB LIKE ZSTRC_VOUCHER OCCURS 0 WITH HEADER LINE.
DO 4 TIMES.
APPEND INITIAL LINE TO GTTAB.
ENDDO.
TMP_CONTROL_PARAMETERS-NO_DIALOG = 'X'.
TMP_CONTROL_PARAMETERS-NO_OPEN = SPACE.
CALL FUNCTION 'SSF_FUNCTION_MODULE_NAME'
EXPORTING
FORMNAME = 'ZFRM_PPORDER_TASK'
IMPORTING
FM_NAME = FM_NAME.
DATA TMP_SUM TYPE I VALUE 0.
DESCRIBE TABLE I_ITAB LINES TMP_SUM.
CASE RF_UCOMM.
WHEN '&PRT'.
LOOP AT I_ITAB.
"================================
IF SY-TABIX = 1 .
TMP_CONTROL_PARAMETERS-NO_OPEN = SPACE.
IF TMP_SUM > 1.
TMP_CONTROL_PARAMETERS-NO_CLOSE = 'X'.
ELSE.
TMP_CONTROL_PARAMETERS-NO_CLOSE = SPACE.
ENDIF.
ELSEIF sy-tabix = TMP_SUM."最后一行
TMP_CONTROL_PARAMETERS-NO_CLOSE = SPACE.
TMP_CONTROL_PARAMETERS-NO_OPEN = 'X'.
ELSE. "中间行
TMP_CONTROL_PARAMETERS-NO_OPEN = 'X'.
TMP_CONTROL_PARAMETERS-NO_CLOSE = 'X'.
ENDIF.
"================================
SHIFT I_ITAB-AUFNR LEFT DELETING LEADING '0'.
SHIFT I_ITAB-MATNR LEFT DELETING LEADING '0'.
CLEAR GAMENGE.
GAMENGE = I_ITAB-GAMNG.
SHIFT GAMENGE RIGHT DELETING TRAILING '0'.
SHIFT GAMENGE RIGHT DELETING TRAILING '.'.
CONDENSE GAMENGE NO-GAPS.
CALL FUNCTION FM_NAME "'/1BCDWB/SF00000004'
EXPORTING
CONTROL_PARAMETERS = TMP_CONTROL_PARAMETERS
AUFNR = I_ITAB-AUFNR
MATNR = I_ITAB-MATNR
MAKTX = I_ITAB-MAKTX
LADAT = I_ITAB-GLTRS
BSTKD = I_ITAB-BSTKD
LTEXT = I_ITAB-LTEXT
GAMNG = GAMENGE
WORKSHOPNAME = I_ITAB-WORKSHOPNAME
IMPORTING
JOB_OUTPUT_OPTIONS = RTN_PARAMETERS
JOB_OUTPUT_INFO = JOB_OUTPUT_INFO "返回信息
TABLES
ITAB_VOUCHER = GTTAB
EXCEPTIONS
FORMATTING_ERROR = 1
INTERNAL_ERROR = 2
SEND_ERROR = 3
USER_CANCELED = 4
OTHERS = 5.
ENDLOOP.
ENDCASE.

169

被折叠的 条评论
为什么被折叠?



