Skip to Content
0
Former Member
Jan 05, 2012 at 04:11 AM

Smartform All pages in one print preview problem

526 Views

Hi

I am displaying the employee data in ALV with checkbox selection.. i put two user defined buttons like print and print preview. when user clicks on print button, smartform will call for very employee in loop and print it employee wise. But my problem is when user clicks on print preview by selecting multiple checkboxes , I need all pages(employee wise like page1,2,3..) in one print preview. I done but for every employee,i have to press the BACK button. But I need all pages in one preview. I'm pasting my code here. Can anyone suggest??

WHEN 'PREVIEW'.
 w_cparam-no_dialog = 'X'.
  w_cparam-preview = 'X'.
   w_cparam-getotf = ' '.
   w_outoptions-tddest = 'LOCL'.
   w_outoptions-tdnoprev  = ' '.
    w_outoptions-tdimmed  = 'X'.


* to reflect the data changed into internal table
      IF ref_grid IS INITIAL.
        CALL FUNCTION 'GET_GLOBALS_FROM_SLVC_FULLSCR'
          IMPORTING
            e_grid = ref_grid.
      ENDIF.

      IF NOT ref_grid IS INITIAL.
        CALL METHOD ref_grid->check_changed_data.
      ENDIF.

loop at i_data into wa_data where SEL = 'X'.
MOVE-CORRESPONDING WA_DATA TO WA_PRINT.
  APPEND WA_PRINT TO I_PRINT.

    CALL FUNCTION 'SSF_FUNCTION_MODULE_NAME'
      EXPORTING
        FORMNAME                 = 'ZHRF1_PTAR1001'
*       VARIANT                  = ' '
*       DIRECT_CALL              = ' '
     IMPORTING
       FM_NAME                  = FM_NAME
*     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.

  CALL FUNCTION FM_NAME
    EXPORTING
*     ARCHIVE_INDEX              =
*     ARCHIVE_INDEX_TAB          =
*     ARCHIVE_PARAMETERS         =
     CONTROL_PARAMETERS         = W_CPARAM
*     MAIL_APPL_OBJ              =
*     MAIL_RECIPIENT             =
*     MAIL_SENDER                =
     OUTPUT_OPTIONS             = W_OUTOPTIONS
     USER_SETTINGS              = 'X'
      FR_DATE                    = PN-BEGDA
      TO_DATE                    = PN-ENDDA


   IMPORTING

*     DOCUMENT_OUTPUT_INFO       =
    JOB_OUTPUT_INFO            = T_OTF_FROM_FM

*     JOB_OUTPUT_OPTIONS         =
    TABLES
      ITAB                       = I_PRINT
*   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.


CLEAR: WA_DATA,WA_PRINT.
CLEAR: I_PRINT.
  ENDLOOP.