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: 

SMARTFORM TO ITF

Former Member
0 Kudos

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

2 REPLIES 2

Former Member
0 Kudos

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

Former Member
0 Kudos

I want to download it in HTML format not in pdf.