10-01-2008 7:07 PM
Hi,
I am using the FM - GET_PRINT_PARAMETERS to pop-up print parameters screen. Once user gives the printer name and other parameters it needs to be printed. Since i am calling this functionality from the screen i cant use submit statement to spool / print. So now i am ready with the internal table data to print. so can you let me know what FM i need to use to get printed my internal table content.
Thanks
10-01-2008 7:26 PM
Hi,
If you are using a smartform...
CALL FUNCTION 'SSF_FUNCTION_MODULE_NAME'
EXPORTING
formname = formname
IMPORTING
fm_name = lv_fm_name
EXCEPTIONS
no_form = 1
no_function_module = 2
OTHERS = 3.
IF sy-subrc <> 0.
Error MESSAGE
ENDIF.
Set relevant control parameters
lv_control_parameters-getotf = l_x. "OTF output
lv_control_parameters-no_dialog = l_x. "No print dialog
lv_control_parameters-preview = space. "No preview
Set relevant output options
lv_output_options-tdnewid = l_x. "Print parameters,
lv_output_options-tddelete = space. "Print parameters,
lv_output_options-tddest = 'LOCL'.
lv_output_options-tdprinter = 'PDF1'.
CALL FUNCTION lv_fm_name
EXPORTING
control_parameters = lv_control_parameters
output_options = lv_output_options
user_settings = space
is_audit = ls_audit
is_original_audit = lv_original_audit
iv_langu = sy-langu
IMPORTING
job_output_info = lv_ssf_output
EXCEPTIONS
formatting_error = 1
internal_error = 2
send_error = 3
user_canceled = 4
OTHERS = 5.
REFRESH lt_otfdata.
lt_otfdata[] = lv_ssf_output-otfdata[].
CALL FUNCTION 'SSFCOMP_PDF_PREVIEW'
EXPORTING
i_otf = lt_otfdata
EXCEPTIONS
convert_otf_to_pdf_error = 1
cntl_error = 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.
DATA: l_dummy TYPE STANDARD TABLE OF tline,
pdf_data TYPE xstring,
pdf_size TYPE i.
CLEAR: pdf_data, pdf_size.
convert otf to pdf
CALL FUNCTION 'CONVERT_OTF'
EXPORTING
format = 'PDF'
IMPORTING
bin_filesize = pdf_size
bin_file = pdf_data
TABLES
otf = lt_otfdata[]
lines = l_dummy
EXCEPTIONS
err_max_linewidth = 1
err_format = 2
err_conv_not_possible = 3
OTHERS = 4.
IF sy-subrc <> 0.
MESSAGE ID sy-msgid TYPE sy-msgty NUMBER sy-msgno
WITH sy-msgv1 sy-msgv2 sy-msgv3 sy-msgv4.
ENDIF.
Thanks,
Sree.
10-01-2008 7:20 PM
Check this:
CALL FUNCTION 'GET_PRINT_PARAMETERS'
IMPORTING
out_parameters = print_parameters
valid = valid
EXCEPTIONS
archive_info_not_found = 1
invalid_print_params = 2
invalid_archive_params = 3
others = 4.
if sy-subrc <> 0.
message e105 with 'GET_PRINT_PARAMETERS'.
elseif valid is initial.
return.
endif.
new-page print on parameters print_parameters no dialog.
data lt_scarr type table of scarr.
data carr type scarr.
select * from scarr into table lt_scarr.
format color = 1.
uline at /1(46).
write: / sy-vline,
'CARRID', 10 sy-vline,
'CARRNAME', 35 sy-vline,
'CURRCODE', 46 sy-vline.
format color = 2.
uline at /1(46).
loop at lt_scarr into carr.
write: / sy-vline,
carr-carrid, 10 sy-vline,
carr-carrname, 35 sy-vline,
carr-currcode, 46 sy-vline.
endloop.
uline at /1(46).
new-line.
10-01-2008 7:26 PM
Hi,
If you are using a smartform...
CALL FUNCTION 'SSF_FUNCTION_MODULE_NAME'
EXPORTING
formname = formname
IMPORTING
fm_name = lv_fm_name
EXCEPTIONS
no_form = 1
no_function_module = 2
OTHERS = 3.
IF sy-subrc <> 0.
Error MESSAGE
ENDIF.
Set relevant control parameters
lv_control_parameters-getotf = l_x. "OTF output
lv_control_parameters-no_dialog = l_x. "No print dialog
lv_control_parameters-preview = space. "No preview
Set relevant output options
lv_output_options-tdnewid = l_x. "Print parameters,
lv_output_options-tddelete = space. "Print parameters,
lv_output_options-tddest = 'LOCL'.
lv_output_options-tdprinter = 'PDF1'.
CALL FUNCTION lv_fm_name
EXPORTING
control_parameters = lv_control_parameters
output_options = lv_output_options
user_settings = space
is_audit = ls_audit
is_original_audit = lv_original_audit
iv_langu = sy-langu
IMPORTING
job_output_info = lv_ssf_output
EXCEPTIONS
formatting_error = 1
internal_error = 2
send_error = 3
user_canceled = 4
OTHERS = 5.
REFRESH lt_otfdata.
lt_otfdata[] = lv_ssf_output-otfdata[].
CALL FUNCTION 'SSFCOMP_PDF_PREVIEW'
EXPORTING
i_otf = lt_otfdata
EXCEPTIONS
convert_otf_to_pdf_error = 1
cntl_error = 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.
DATA: l_dummy TYPE STANDARD TABLE OF tline,
pdf_data TYPE xstring,
pdf_size TYPE i.
CLEAR: pdf_data, pdf_size.
convert otf to pdf
CALL FUNCTION 'CONVERT_OTF'
EXPORTING
format = 'PDF'
IMPORTING
bin_filesize = pdf_size
bin_file = pdf_data
TABLES
otf = lt_otfdata[]
lines = l_dummy
EXCEPTIONS
err_max_linewidth = 1
err_format = 2
err_conv_not_possible = 3
OTHERS = 4.
IF sy-subrc <> 0.
MESSAGE ID sy-msgid TYPE sy-msgty NUMBER sy-msgno
WITH sy-msgv1 sy-msgv2 sy-msgv3 sy-msgv4.
ENDIF.
Thanks,
Sree.
10-01-2008 8:09 PM
Use statement "NEW-PAGE PRINT ON" to redirect the output to printer.And then use Write statements to display just as you do for normal report output.
For e,g.
CALL FUNCTION 'GET_PRINT_PARAMETERS'
IMPORTING
out_parameters = print_parameters
valid = valid_flag
EXCEPTIONS
invalid_print_params = 2
OTHERS = 4.
NEW-PAGE PRINT ON PARAMETERS print_parameters
NO DIALOG.
LOOP AT ITAB.
WRITE:/,ITAB.
ENDLOOP.
NEW-PAGE PRINT OFF.