Technology Blogs by Members
Explore a vibrant mix of technical expertise, industry insights, and tech buzz in member blogs covering SAP products, technology, and events. Get in the mix!
cancel
Showing results for 
Search instead for 
Did you mean: 
dairolozano
Contributor
  • INTRODUCCION
  • COMO UTILIZARLO
  • CODIGO FUENTE


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

2 Comments
Labels in this area