Application Development and Automation Discussions
Join the discussions or start your own on all things application development, including tools and APIs, programming models, and keeping your skills sharp.
cancel
Showing results for 
Search instead for 
Did you mean: 
Read only

Printing SMARTFORMS

Former Member
0 Likes
501

Hello Experts,

I am developing new SMARTFROM.

Requirement: On entering the Personnel number(s) on the selection it should print SMARTFORM. for one entry there are two page. so for 2 entries it should show 4 pages. It should work like mass printing.

Error: currently it is working for single entry. but when i entered multiple enteries on selection-screen in print-preview i can see only 2 pages for first. for viewing second entry i need to comback to Printer specification page.

how do i achieve if i enter 2 entries on selection-screen in print preview it should show 4 pages.

ie. for 1st entry two page and for 2nd entry last two page.

Regards

Saurabh

1 ACCEPTED SOLUTION
Read only

Former Member
0 Likes
479

check the following code, the control parameters need to be changed accordingly.


LOOP AT it_acct.
    AT NEW kunnr.
      READ TABLE it_acct INDEX sy-tabix.
      READ TABLE it_kna1 WITH KEY kunnr = it_acct-kunnr.
      READ TABLE  it_adrc WITH KEY addrnumber = it_kna1-adrnr.
      IF sy-subrc = 0.
        wa_adrc = it_adrc.
        READ TABLE it_landx WITH KEY land1 = it_adrc-country.
        IF sy-subrc = 0.
          l_landx = it_landx-landx.
        ENDIF.
      ENDIF.
      CALL FUNCTION 'ZSDG_COMPANY_ADDRESS'
        EXPORTING
          i_bukrs     = it_acct-bukrs
        IMPORTING
          o_comp_addr = g_comp.
      REFRESH it_acct1.

      IF g_over = 'X'.
        r_duedt-sign = 'I'.
        r_duedt-option = 'LE'.
        r_duedt-low = date.
        APPEND r_duedt.
      ENDIF.

      LOOP AT it_acct WHERE kunnr = it_acct-kunnr AND duedt IN r_duedt.
        MOVE-CORRESPONDING it_acct TO it_acct1 .
        APPEND it_acct1.
        CLEAR: it_acct,it_acct1.
      ENDLOOP.

      c_nofopr = c_nofopr + 1.
*        t_control_parameters-DEVICE = 'LP01'.
      t_control_parameters-no_dialog = 'X'.
      t_control_parameters-preview = 'X'.
      IF c_nop <> 1.
        CASE c_nofopr.
          WHEN 1.
            t_control_parameters-no_open = ' '.
            t_control_parameters-no_close = 'X'.
          WHEN c_nop.
            t_control_parameters-no_open = 'X'.
            t_control_parameters-no_close = ' '.
          WHEN OTHERS.
            t_control_parameters-no_open = 'X'.
            t_control_parameters-no_close = 'X'.
        ENDCASE.
      ENDIF.

      IF doct = 'X'.
        doc = 'X'.
      ELSE.
        doc = 'Y'.
      ENDIF.


      CALL FUNCTION lf_fm_name
        EXPORTING
*   ARCHIVE_INDEX              =
*   ARCHIVE_INDEX_TAB          =
*   ARCHIVE_PARAMETERS         =
     control_parameters         = t_control_parameters
*   MAIL_APPL_OBJ              =
*   MAIL_RECIPIENT             =
*   MAIL_SENDER                =
*   OUTPUT_OPTIONS             =
*   USER_SETTINGS              = 'X'
          g_comp                     = g_comp
          wa_adrc                    = wa_adrc
          landx                      = l_landx
          p_seldate                  = date
          waers                      = waers
          doc                        = doc
          intrvl1 = intrvl1
          intrvl2 = intrvl2
          intrvl3 = intrvl3
          intrvl4 = intrvl4
          g_over = g_over
         TABLES
          it_acct                    = it_acct1
* IMPORTING
*   DOCUMENT_OUTPUT_INFO       =
*   JOB_OUTPUT_INFO            =
*   JOB_OUTPUT_OPTIONS         =
* 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.
    ENDAT.
  ENDLOOP.

2 REPLIES 2
Read only

Former Member
0 Likes
480

check the following code, the control parameters need to be changed accordingly.


LOOP AT it_acct.
    AT NEW kunnr.
      READ TABLE it_acct INDEX sy-tabix.
      READ TABLE it_kna1 WITH KEY kunnr = it_acct-kunnr.
      READ TABLE  it_adrc WITH KEY addrnumber = it_kna1-adrnr.
      IF sy-subrc = 0.
        wa_adrc = it_adrc.
        READ TABLE it_landx WITH KEY land1 = it_adrc-country.
        IF sy-subrc = 0.
          l_landx = it_landx-landx.
        ENDIF.
      ENDIF.
      CALL FUNCTION 'ZSDG_COMPANY_ADDRESS'
        EXPORTING
          i_bukrs     = it_acct-bukrs
        IMPORTING
          o_comp_addr = g_comp.
      REFRESH it_acct1.

      IF g_over = 'X'.
        r_duedt-sign = 'I'.
        r_duedt-option = 'LE'.
        r_duedt-low = date.
        APPEND r_duedt.
      ENDIF.

      LOOP AT it_acct WHERE kunnr = it_acct-kunnr AND duedt IN r_duedt.
        MOVE-CORRESPONDING it_acct TO it_acct1 .
        APPEND it_acct1.
        CLEAR: it_acct,it_acct1.
      ENDLOOP.

      c_nofopr = c_nofopr + 1.
*        t_control_parameters-DEVICE = 'LP01'.
      t_control_parameters-no_dialog = 'X'.
      t_control_parameters-preview = 'X'.
      IF c_nop <> 1.
        CASE c_nofopr.
          WHEN 1.
            t_control_parameters-no_open = ' '.
            t_control_parameters-no_close = 'X'.
          WHEN c_nop.
            t_control_parameters-no_open = 'X'.
            t_control_parameters-no_close = ' '.
          WHEN OTHERS.
            t_control_parameters-no_open = 'X'.
            t_control_parameters-no_close = 'X'.
        ENDCASE.
      ENDIF.

      IF doct = 'X'.
        doc = 'X'.
      ELSE.
        doc = 'Y'.
      ENDIF.


      CALL FUNCTION lf_fm_name
        EXPORTING
*   ARCHIVE_INDEX              =
*   ARCHIVE_INDEX_TAB          =
*   ARCHIVE_PARAMETERS         =
     control_parameters         = t_control_parameters
*   MAIL_APPL_OBJ              =
*   MAIL_RECIPIENT             =
*   MAIL_SENDER                =
*   OUTPUT_OPTIONS             =
*   USER_SETTINGS              = 'X'
          g_comp                     = g_comp
          wa_adrc                    = wa_adrc
          landx                      = l_landx
          p_seldate                  = date
          waers                      = waers
          doc                        = doc
          intrvl1 = intrvl1
          intrvl2 = intrvl2
          intrvl3 = intrvl3
          intrvl4 = intrvl4
          g_over = g_over
         TABLES
          it_acct                    = it_acct1
* IMPORTING
*   DOCUMENT_OUTPUT_INFO       =
*   JOB_OUTPUT_INFO            =
*   JOB_OUTPUT_OPTIONS         =
* 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.
    ENDAT.
  ENDLOOP.

Read only

0 Likes
479

Thanks for help