Application Development 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: 

Data needs to be printed

Former Member
0 Kudos

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

1 ACCEPTED SOLUTION

Former Member
0 Kudos

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.

3 REPLIES 3

Former Member
0 Kudos

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.

Former Member
0 Kudos

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.

Former Member
0 Kudos

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.