★ SAP 이야기/ABAP

[ABAP] 스마트폼 Default printer 지정하여 팝업창 없이 자동 출력하기

조피볼락 2025. 4. 24. 16:39

Smartform으로 출력하게 되면, 
아래와 같이 출력장치를 선택할 수 있는 팝업창이 뜬다.

 
하지만 위 팝업창 출력 없이,
사용자 디폴트 프린터로 곧바로 출력(인쇄)될 수 있도록 하려면 아래 소스를 적용한다.

LS_OUTPUT_OPTIONS-TDDEST와 LS_OUTPUT_OPTIONS-TDPRINTER 값은 예시이고, 각 사용자의 프린터 세팅에 따라 값을 넣어주면 된다.
 

DATA: LS_CONTROL_PARAMETERS   TYPE SSFCTRLOP,
      LS_OUTPUT_OPTIONS       TYPE SSFCOMPOP.

      LS_CONTROL_PARAMETERS-PREVIEW   = ABAP_FALSE.
      LS_CONTROL_PARAMETERS-NO_DIALOG = ABAP_TRUE.
      LS_CONTROL_PARAMETERS-NO_OPEN   = ABAP_TRUE.
      LS_CONTROL_PARAMETERS-NO_CLOSE  = ABAP_TRUE.
      LS_CONTROL_PARAMETERS-DEVICE    = 'PRINTER'.  

      LS_OUTPUT_OPTIONS-TDARMOD     = 1.
      LS_OUTPUT_OPTIONS-TDCOPIES    = 1.
      LS_OUTPUT_OPTIONS-TDDEST      = 'ZLOCL'.  //"T-Code SPAD - Output devices
      LS_OUTPUT_OPTIONS-TDPRINTER   = 'KPSAPWIN'.  //"T-Code SPAD - Output devices - Device type
      LS_OUTPUT_OPTIONS-TDIMMED     = ABAP_TRUE.
      LS_OUTPUT_OPTIONS-TDDELETE    = ABAP_TRUE.
      LS_OUTPUT_OPTIONS-TDNEWID     = 'X'.
      LS_OUTPUT_OPTIONS-TDLIFETIME  = 8.
 
      CALL FUNCTION 'SSF_OPEN'
        EXPORTING
          OUTPUT_OPTIONS     = LS_OUTPUT_OPTIONS
          CONTROL_PARAMETERS = LS_CONTROL_PARAMETERS
          USER_SETTINGS      = SPACE
        EXCEPTIONS
          FORMATTING_ERROR   = 1
          INTERNAL_ERROR     = 2
          SEND_ERROR         = 3
          USER_CANCELED      = 4
          OTHERS             = 5.
 
    CALL FUNCTION LV_FM_NAME  //"Smartform 이름
      EXPORTING
        CONTROL_PARAMETERS = LS_CONTROL_PARAMETERS
        OUTPUT_OPTIONS     = LS_OUTPUT_OPTIONS
        IV_BUKRS           = P_BUKRS
      IMPORTING
        JOB_OUTPUT_INFO    = LS_JOB_OUPUT_INFO
      TABLES
        GT_HEADER          = LT_HEADER
        GT_ITEM            = LT_ITEM
      EXCEPTIONS
        FORMATTING_ERROR   = 1
        INTERNAL_ERROR     = 2
        SEND_ERROR         = 3
        USER_CANCELED      = 4
        OTHERS             = 5.
 
    CALL FUNCTION 'SSF_CLOSE'
      EXCEPTIONS
        FORMATTING_ERROR = 1
        INTERNAL_ERROR   = 2
        SEND_ERROR       = 3
        OTHERS           = 4.


-끝-

728x90