‎2009 Mar 26 7:13 AM
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
‎2009 Mar 26 7:22 AM
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.
‎2009 Mar 26 7:22 AM
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.
‎2009 Mar 26 9:59 AM