INTRODUCCION
El siguiente código permite generar un archivo HTML dentro de una Dynpro, incluyendo una imagen que se encuentra en una URL, que puede ser interna en el BOR o externa. Dado que se trata de un archivo HTML, este puede ser luego impreso o utilizado de diversas maneras.
El resultado que se obtiene con este ejemplo es el siguiente:
En la imagen se observa que se ha hecho click con el botón derecho sobre el HMTL, lo cual presenta las opciones Print y Print Preview. La vista previa de impresión es la siguiente:
PROCEDIMIENTO
Se debe crear un programa Z y pegar el código correspondiente. Adicionalmente se debe crear una dynpro con el número 9000 dentro de la cual se debe crear un Custom Container con el nombre CONT.
CODIGO FUENTE
GIT: https://gist.github.com/df3b76624f215197da1f.git
REPORT ZTEST_HTML.
TYPES : BEGIN OF y_html,
dataset(255) TYPE c,
END OF y_html.
DATA: e_data TYPE y_html,
ts_data TYPE STANDARD TABLE OF y_html,
e_user TYPE usr03,
ok_code TYPE sy-ucomm,
w_uname TYPE char20,
w_url TYPE char255.
DATA : ref_cont TYPE REF TO cl_gui_custom_container,
ref_html TYPE REF TO cl_gui_html_viewer.
PARAMETERS user_id TYPE usr01-bname.
START-OF-SELECTION.
PERFORM f_get_username.
PERFORM f_generar_html.
CALL SCREEN 9000.
*&---------------------------------------------------------------------*
*& Module STATUS_9000 OUTPUT
*&---------------------------------------------------------------------*
* PBO for 9000
*----------------------------------------------------------------------*
MODULE status_9000 OUTPUT.
* SET PF-STATUS 'STATUS'.
CREATE OBJECT ref_cont
EXPORTING
container_name = 'CONT'
EXCEPTIONS
cntl_error = 1
cntl_system_error = 2
create_error = 3
lifetime_error = 4
lifetime_dynpro_dynpro_link = 5
OTHERS = 6.
CREATE OBJECT ref_html
EXPORTING
parent = ref_cont
EXCEPTIONS
cntl_error = 1
cntl_install_error = 2
dp_install_error = 3
dp_error = 4
OTHERS = 5.
IF sy-subrc <> 0.
ENDIF.
CALL METHOD ref_html->load_data
EXPORTING
type = 'text'
subtype = 'html'
IMPORTING
assigned_url = w_url
CHANGING
data_table = ts_data
EXCEPTIONS
dp_invalid_parameter = 1
dp_error_general = 2
cntl_error = 3
OTHERS = 4.
IF sy-subrc <> 0.
ENDIF.
CALL METHOD ref_html->show_url
EXPORTING
url = w_url
EXCEPTIONS
cntl_error = 1
cnht_error_not_allowed = 2
cnht_error_parameter = 3
dp_error_general = 4
OTHERS = 5.
ENDMODULE. " STATUS_9000 OUTPUT
*&---------------------------------------------------------------------*
*& Module USER_COMMAND_9000 INPUT
*&---------------------------------------------------------------------*
* PAI for screen 9000
*----------------------------------------------------------------------*
MODULE user_command_9000 INPUT.
CASE ok_code.
WHEN 'BACK'.
LEAVE TO SCREEN 0.
WHEN OTHERS.
ENDCASE.
ENDMODULE. " USER_COMMAND_9000 INPUT
*&---------------------------------------------------------------------*
*& Form F_GENEARTE_HTML
*&---------------------------------------------------------------------*
* HTML code
*----------------------------------------------------------------------*
FORM f_generar_html .
CLEAR e_data.
FREE ts_data.
e_data-dataset = '<html><body>Sr(a).'.
APPEND e_data TO ts_data.
CONCATENATE SPACE
w_uname
INTO e_data-dataset
SEPARATED BY space.
APPEND e_data TO ts_data.
e_data-dataset = '<br><h3>Ficha del Empleado:</h3><br>'.
APPEND e_data TO ts_data.
e_data-dataset = 'Archivo de consulta'.
APPEND e_data TO ts_data.
e_data-dataset = '<IMG width="400" height="200" align = "TOP" alt="Imagen" SRC = "'.
APPEND e_data TO ts_data.
e_data-dataset = 'http://thumbs.media.smithsonianmag.com//filer/two-male-lions-Kenya-631.jpg__800x600_q85_crop.jpg'.
APPEND e_data TO ts_data.
e_data-dataset = '"/IMG>'.
APPEND e_data TO ts_data.
e_data-dataset = '<BR>'.
APPEND e_data TO ts_data.
e_data-dataset = '<h5>Información Personal:</h5><table border = "0" bgcolor = "WHITE">'.
APPEND e_data TO ts_data.
e_data-dataset = '<tr><td>Id Interno #</td><td>0000000522</td></tr>'.
APPEND e_data TO ts_data.
e_data-dataset = '<tr><td>Numero de Vinculación #</td><td>0000343432000</td></tr>'.
APPEND e_data TO ts_data.
e_data-dataset = '<tr><td>Fecha Vinculación</td><td>20110425</td></tr>'.
APPEND e_data TO ts_data.
e_data-dataset = '<tr><td>Otros datos</td><td>2011</td></tr></table>'.
APPEND e_data TO ts_data.
e_data-dataset = '<h3>Información Adicional:</h3>'.
APPEND e_data TO ts_data.
e_data-dataset = 'Para mayores detalles enviar email a: info@heldesk.mycompanyltda.com'.
APPEND e_data TO ts_data.
e_data-dataset = '</body></html>'.
APPEND e_data TO ts_data.
ENDFORM. " F_GENEARTE_HTML
*&---------------------------------------------------------------------*
*& Form F_GET_USERNAME
*&---------------------------------------------------------------------*
* To get User name from Tcode
*----------------------------------------------------------------------*
FORM f_get_username .
CALL FUNCTION 'SUSR_USER_ADDRESS_READ'
EXPORTING
user_name = user_id
IMPORTING
user_usr03 = e_user
EXCEPTIONS
user_address_not_found = 1
OTHERS = 2.
IF sy-subrc = 0.
CONCATENATE e_user-name1
e_user-name2
INTO w_uname
SEPARATED BY space.
ENDIF.
ENDFORM. " F_GET_USERNAME
You must be a registered user to add a comment. If you've already registered, sign in. Otherwise, register and sign in.
User | Count |
---|---|
11 | |
10 | |
7 | |
6 | |
4 | |
4 | |
3 | |
3 | |
3 | |
3 |