04-10-2008 9:18 AM
Can we convert smartform output to ITF format or can we convert smartform output to HTML format and download to a specified path.
Thanks
Murthy .M
04-10-2008 9:19 AM
Hi,
dATA: fm_name TYPE rs38l_fnam,control TYPE ssfctrlop, op TYPE ssfcompop,
p_form TYPE tdsfname VALUE 'ZTAX_COMPU',
errtab TYPE tsferror,spoolid TYPE ssfcrescl.
DATA:t_otf TYPE itcoo OCCURS 0 WITH HEADER LINE,
* Internal table to hold OTF data recd from the SMARTFORM
*T_OTF_FROM_FM TYPE SSFCRESCL,
* Internal table to hold the data from the FM CONVERT_OTF
t_pdf_tab LIKE tline OCCURS 0 WITH HEADER LINE.
DATA:
*w_form_name TYPE tdsfname VALUE 'ZSURESH_TEST',
w_fmodule TYPE rs38l_fnam,
w_cparam TYPE ssfctrlop,
w_outoptions TYPE ssfcompop,
w_bin_filesize TYPE i, " Binary File Size
w_file_name TYPE string,
w_file_path TYPE string,
w_full_path TYPE string,pnrno(8),ldate TYPE sy-datum.
CLEAR control.
control-preview = 'X'.
control-no_open = 'X'.
control-no_close = 'X'.
control-no_dialog = 'X'.
control-getotf = 'X'.
* control-DEVICE = 'A000'.
op-tddest = 'A000'.
op-tdnewid = 'X'.
CALL FUNCTION 'SSF_FUNCTION_MODULE_NAME'
EXPORTING formname = p_form
* variant = ' '
* direct_call = ' '
IMPORTING fm_name = fm_name
EXCEPTIONS no_form = 1
no_function_module = 2
OTHERS = 3.
CALL FUNCTION 'SSF_OPEN'
EXPORTING
* ARCHIVE_PARAMETERS =
user_settings = ' '
* MAIL_SENDER =
* MAIL_RECIPIENT =
* MAIL_APPL_OBJ =
output_options = op
control_parameters = control
EXCEPTIONS
formatting_error = 1
internal_error = 2
send_error = 3
user_canceled = 4
OTHERS = 5
.
CALL FUNCTION fm_name
EXPORTING
* ARCHIVE_INDEX =
* ARCHIVE_INDEX_TAB =
* ARCHIVE_PARAMETERS =
control_parameters = control
* MAIL_APPL_OBJ =
* MAIL_RECIPIENT =
* MAIL_SENDER =
output_options = op
user_settings = ' '
emp_no = itab-emp_no
proc_yyyymm = procyymm
category = itab-category
sp1 = wa
sp2 = wa1
itexem = exem
TABLES
it_etc = it_etc
it_f16 = it_f16
it_hrc = it_hrc
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.
CALL FUNCTION 'SSF_CLOSE'
IMPORTING
job_output_info = spoolid
EXCEPTIONS
formatting_error = 1
internal_error = 2
send_error = 3
OTHERS = 4.
IF sy-subrc <> 0.
* error handling
MESSAGE ID sy-msgid TYPE sy-msgty NUMBER sy-msgno
WITH sy-msgv1 sy-msgv2 sy-msgv3 sy-msgv4.
ENDIF.
REFRESH : it_etc,it_f16,it_hrc.CLEAR : it_etc,it_f16,it_hrc.
t_otf[] = spoolid-otfdata[].
CALL FUNCTION 'CONVERT_OTF'
EXPORTING
format = 'PDF'
max_linewidth = 10
IMPORTING
bin_filesize = w_bin_filesize
* BIN_FILE =
TABLES
otf = t_otf
lines = t_pdf_tab
EXCEPTIONS
err_max_linewidth = 1
err_format = 2
err_conv_not_possible = 3
err_bad_otf = 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:w_full_path.
IF itab-pnrno NA sy-abcde.
UNPACK itab-pnrno TO itab-pnrno.
ENDIF.
pnrno = itab-pnrno+2(8).
* SHIFT pnrno LEFT DELETING LEADING '0'.
CONCATENATE path '\' pnrno '.pdf' INTO w_full_path.
CALL FUNCTION 'GUI_DOWNLOAD'
EXPORTING
bin_filesize = w_bin_filesize
filename = w_full_path
filetype = 'BIN'
TABLES
data_tab = t_pdf_tab.
CLEAR w_full_path.
CONCATENATE 'Download completed for Employee - ' itab-emp_no INTO w_full_path SEPARATED BY space.
CALL FUNCTION 'SAPGUI_PROGRESS_INDICATOR'
EXPORTING
* PERCENTAGE = 0
text = w_full_path.
CLEAR : t_otf,spoolid, t_pdf_tab,pnrno.
REFRESH : t_otf, t_pdf_tab.
Reward if usefull
Edited by: Balaji V on Apr 10, 2008 10:19 AM
04-10-2008 9:26 AM