ABAP-SMARTFORM打印控制

 DATA: L_WA_EKPO       TYPE  EKPO,
          L_ITAB_EKPO     LIKE  L_WA_EKPO OCCURS 0.
  DATA: L_WA_SSFCOMPOP  TYPE  SSFCOMPOP,
        L_WA_SSFCTRLOP  TYPE  SSFCTRLOP.

  DATA: L_FM_NAME TYPE RS38L_FNAM.

***获取SMARTFORMS的Function Module***
  CALL FUNCTION 'SSF_FUNCTION_MODULE_NAME'
    EXPORTING
      FORMNAME = 'ZTEST_XJL002'
    IMPORTING
      FM_NAME  = L_FM_NAME.

***以下设置将不再显示打印对话框,没有预览直接打印***
****Smart Forms: 控制结构*****
*  L_WA_SSFCTRLOP-PREVIEW       = ' '.            "不打印预览
*  L_WA_SSFCTRLOP-NO_OPEN       = 'X'.            "没有新的假脱机请求
*  L_WA_SSFCTRLOP-NO_CLOSE      = 'X'.            "不关闭假脱机请求
***NO_OPEN和NO_CLOSE运行增加几个FORM到一个假脱机请求中。
*  L_WA_SSFCTRLOP-NO_DIALOG     = 'X'.            "没有对话窗口打开
*  L_WA_SSFCTRLOP-DEVICE        = 'PRINTER'.      "PRINTER\MAIL\TELEFAX,缺省是PRINTER

****SAP Smart Forms: 智能写作器 (传输) 选项*****
*  L_WA_SSFCOMPOP-TDNOPREV  = 'X'.                      "是否打印预览,X是不预览。
*  L_WA_SSFCOMPOP-TDNOPRINT = 'X'.                      "没有打印预览的打印输出,设置X。
*  L_WA_SSFCOMPOP-TDIMMED   = 'X'.                      "立即打印标志。
*  L_WA_SSFCOMPOP-TDDEST    = 'RED_LOCAL'.              "假脱机,输出设备。
*  L_WA_SSFCOMPOP-RQPOSNAME = 'Microsoft Office Document Image Writer'.
*                                      "假托机:主假脱机打印机的长名称,即打印机名。


***以下设置打印预览功能***
****Smart Forms: 控制结构*****
  L_WA_SSFCTRLOP-PREVIEW       = 'X'.            "打印预览
  L_WA_SSFCTRLOP-NO_OPEN       = 'X'.            "新的假脱机请求
*  L_WA_SSFCTRLOP-NO_CLOSE      = 'X'.
  L_WA_SSFCTRLOP-NO_DIALOG     = 'X'.            "必须设置
*  L_WA_SSFCTRLOP-DEVICE        = 'PRINTER'.

****SAP Smart Forms: 智能写作器 (传输) 选项*****
  L_WA_SSFCOMPOP-TDNOPREV  = ' '.                      "是否打印预览,X是不预览。
  L_WA_SSFCOMPOP-TDNOPRINT = ' '.                      "没有打印预览的打印输出,设置X。
  L_WA_SSFCOMPOP-TDIMMED   = ' '.                      "立即打印标志。
  L_WA_SSFCOMPOP-TDDEST    = 'RED_LOCAL'.              "假脱机,输出设备。

***调用SSF_OPEN函数设置打印机,打开输出请求,使用用户打印设置必须调用SSF_OPEN***
  CALL FUNCTION 'SSF_OPEN'
    EXPORTING
      OUTPUT_OPTIONS     = L_WA_SSFCOMPOP
      CONTROL_PARAMETERS = L_WA_SSFCTRLOP
      USER_SETTINGS      = ' '
    EXCEPTIONS
      FORMATTING_ERROR   = 1
      INTERNAL_ERROR     = 2
      SEND_ERROR         = 3
      USER_CANCELED      = 4
      OTHERS             = 5.

***调用Smartforms的Function Module打印***
  CALL FUNCTION L_FM_NAME
    EXPORTING
      CONTROL_PARAMETERS = L_WA_SSFCTRLOP
      OUTPUT_OPTIONS     = L_WA_SSFCOMPOP
      USER_SETTINGS      = 'X'
      P_VALUE            = 'OK'
    TABLES
      G_ITAB_EKPO1       = L_ITAB_EKPO.


***关闭打印机设置***
  CALL FUNCTION 'SSF_CLOSE'
*     IMPORTING
*       JOB_OUTPUT_INFO       =
   EXCEPTIONS
     FORMATTING_ERROR       = 1
     INTERNAL_ERROR         = 2
     SEND_ERROR             = 3
     OTHERS                 = 4.

猜你喜欢

转载自blog.csdn.net/cly_apple/article/details/84847123
今日推荐