Posted: Sat Sep 13, 2008 7:11 pm Post subject: Displaying Smartform in PDF format in ESS
Author: Ira Singhvi
Here is a code using which you can view the smartform in pdf format on the ESS. It is not the print preview , it just opens the smartform
in the PDF format, after which you can save or print.
Code:
DATA: fm_name TYPE rs38l_fnam,
st_control_parameters TYPE ssfctrlop,
it_docs TYPE STANDARD TABLE OF docs,
it_lines TYPE STANDARD TABLE OF tline,
st_output_options TYPE ssfcompop.
DATA: V_BIN_FILESIZE TYPE I,
T_OTF TYPE ITCOO OCCURS 0 WITH HEADER LINE,
T_PDF_TAB TYPE TLINE OCCURS 0 WITH HEADER LINE,
v_guiobj TYPE REF TO cl_gui_frontend_services,
v_filename TYPE string,
v_name TYPE string,
v_path TYPE string,
v_fullpath TYPE string,
v_filter TYPE string,
v_uact TYPE i,
v_language TYPE sflangu VALUE 'E',
v_e_devtype TYPE rspoptype.
*Function returns name of the FM of Smart form
CALL FUNCTION 'SSF_FUNCTION_MODULE_NAME'
EXPORTING
formname = 'MYSMARTFORM'
* VARIANT = ' '
* DIRECT_CALL = '
IMPORTING
fm_name = fm_name
EXCEPTIONS
no_form = 1
no_function_module = 2
OTHERS = 3.
*Convert the OTF to PDF Format
CALL FUNCTION 'CONVERT_OTF_2_PDF'
IMPORTING
bin_filesize = v_bin_filesize
TABLES
otf = st_job_output_info-otfdata
doctab_archive = it_docs
lines = it_lines
EXCEPTIONS
err_conv_not_possible = 1
err_otf_mc_noendmarker = 2.
CALL SCREEN 200.
Screen 200
Create a custom control in the screen layout and name it HTML_CONTAINER.
In the PBO
Code:
*----------------------------------------------------------------------*
* MODULE STATUS_0200 OUTPUT
*----------------------------------------------------------------------*
*
*----------------------------------------------------------------------*
MODULE status_0200 OUTPUT.
SET PF-STATUS 'TITLE'.
SET TITLEBAR 'TITLE2'.
DATA: g_container TYPE REF TO cl_gui_custom_container,
g_html_container TYPE REF TO cl_gui_custom_container,
g_dock TYPE REF TO cl_gui_docking_container,
g_html_control TYPE REF TO cl_gui_html_viewer.
DATA: init,
fcode LIKE sy-ucomm,
ssrept(1), " Sapscript report identifier
listtab LIKE abaplist OCCURS 1.
DATA: reptid TYPE sy-repid,
dynpnr TYPE sy-dynnr,
assgned_url(255),
extnsion TYPE i.
DATA: repid TYPE sy-repid,
dynnr TYPE sy-dynnr,
assigned_url(255),
extension TYPE i.
reptid = sy-repid.
dynpnr = sy-dynnr.
CREATE OBJECT g_html_container
EXPORTING container_name = 'HTML_CONTAINER'.
CREATE OBJECT g_html_control
EXPORTING parent = g_html_container.
pdf_line_tab[] = it_lines[].
IF pdf_line_tab[] IS INITIAL.
*no data found display message
MESSAGE ID 'ZL' TYPE 'I' NUMBER '006'.
LEAVE PROGRAM.
ELSE.
CALL METHOD g_html_control->load_data
EXPORTING
type = 'application'
subtype = 'pdf'
IMPORTING
assigned_url = url
CHANGING
data_table = pdf_line_tab[].
CALL METHOD cl_gui_cfw=>flush.
CALL METHOD g_html_control->show_data
EXPORTING
url = url.
ENDIF.
ENDMODULE "STATUS_0200 OUTPUT
In PAI
Code:
*----------------------------------------------------------------------*
* MODULE USER_COMMAND_0200 INPUT
*----------------------------------------------------------------------*
*
*----------------------------------------------------------------------*
MODULE user_command_0200 INPUT.
IF sy-ucomm EQ 'BACK'.
*clearing dock control
IF NOT g_dock IS INITIAL.
CALL METHOD g_dock->free.
CLEAR g_dock.
ENDIF.
SET SCREEN 0.
ENDIF.
ENDMODULE. " USER_COMMAND_0200 INPUT
This is now ready to plug into ESS ..
Create a Transaction code and plug into ESS.
Note : The PDF format will be available to view only in ess not in R/3.
You cannot post new topics in this forum You cannot reply to topics in this forum You cannot edit your posts in this forum You cannot delete your posts in this forum You cannot vote in polls in this forum You cannot attach files in this forum You can download files in this forum
All product names are trademarks of their respective companies. SAPNET.RU websites are in no way affiliated with SAP AG. SAP, SAP R/3, R/3 software, mySAP, ABAP, BAPI, xApps, SAP NetWeaver and any other are registered trademarks of SAP AG. Every effort is made to ensure content integrity. Use information on this site at your own risk.