Visual – Html Browser – CL_ABAP_BROWSER – Abap

Publicado: 8 de abril de 2014 em Abap

A classe CL_ABAP_BROWSER encapsula o uso da classe CL_GUI_HTML_VIEWER. O método estático SHOW_HTML pode ser usado para exibir um arquivo HTML em uma caixa de diálogo. Dados externos, neste caso, uma imagem carregada a partir do Repositório MIME ou um endereço da web, pode ser passado e exibido. Os eventos SAPEVENT também podem ser manuseados pelo desenvolvedor.

É possível exibir um arquivo HTM,  XML ou uma URL usando os métodos estáticos da classe CL_ABAP_BROWSER.

htmlbrowser

SAP – Browser

 

Exemplo:

Neste exemplo criamos uma variável String contendo o código Html e a exibimos como em um browser.

Abap

*&---------------------------------------------------------------------*
*& Report  ZHTML
*&
*&---------------------------------------------------------------------*
*& Desenvolvimento Aberto
*& SAP HTML Browser
*&---------------------------------------------------------------------*

REPORT  ZHTML.

* Classe html Browser
CLASS HtmlBrowser DEFINITION.

  PUBLIC SECTION.

    CLASS-METHODS Browser.

  PRIVATE SECTION.

    TYPES: pict_line(1022) TYPE x,
           pict_tab TYPE STANDARD TABLE OF pict_line .

    CLASS-DATA pict TYPE pict_tab.

    CLASS-METHODS get_pict_tab
     IMPORTING
       mime_url TYPE csequence
     EXPORTING
       pict_tab TYPE STANDARD TABLE .

ENDCLASS.

* Implementação html browser
CLASS HtmlBrowser IMPLEMENTATION.

  METHOD Browser.

    " Declara variaveis para a pagina html
    DATA html_pagina   TYPE string.
    DATA titulo      TYPE cl_abap_browser=>title.
    DATA ext_data   TYPE cl_abap_browser=>load_tab.
    DATA ext_line   TYPE cl_abap_browser=>load_tab_line.
    DATA error_list TYPE cl_abap_browser=>html_table.

    FIELD-SYMBOLS <error> LIKE LINE OF error_list.

    titulo = 'Desenvolvimento Aberto'.

    get_pict_tab( EXPORTING mime_url = ''
                  IMPORTING pict_tab = pict ).

    ext_line-name = 'PICT.GIF'.
    ext_line-type = 'image'.

    GET REFERENCE OF pict INTO ext_line-dref.
    APPEND ext_line TO ext_data.

    " Cria pagina html
    html_pagina =
      '<html>' &&
      '<body>' &&
      '<H1><font SIZE=5 color="#000080">HTML - SAP</font></H1>' &&
      '<h3>Desenvolvimento Aberto</h3>' &&
      'Abap - Java - C++ - C# - Python - JavaScript - Transact, PL, DB2 SQL ...' &&
      '<br><img src="https://desenvolvimentoaberto.files.wordpress.com/2014/02/can-stock-photo_csp116670342.jpg" >' &&
      '<h4>Cl_Abap_Browser<h4>' &&
      'A classe CL_ABAP_BROWSER classe encapsula o uso da classe CL_GUI_HTML_VIEWER.' &&
      '<p>O método estático SHOW_HTML pode ser usado para exibir um arquivo HTML em uma caixa de diálogo.</p>' &&
      '<p>Dados externos, neste caso, uma imagem carregada a partir do Repositório MIME, pode ser passado e exibido.</p>'  &&
      '</body>' &&
      '</html>'.

    " Exibe pagina html
     cl_abap_browser=>show_html(
      EXPORTING
        html_string = html_pagina
        title       = titulo
        buttons     = cl_abap_browser=>navigate_html
        format      = cl_abap_browser=>landscape
        size        = cl_abap_browser=>medium
        data_table  = ext_data
      IMPORTING
         html_errors = error_list ).

  ENDMETHOD.

  " Manipula imagens da pagina.
  METHOD get_pict_tab.

    DATA pict_wa   TYPE xstring.
    DATA length   TYPE i.
    DATA mime_api TYPE REF TO if_mr_api.

    mime_api = cl_mime_repository_api=>get_api( ).
    mime_api->get( EXPORTING i_url = mime_url
                   IMPORTING e_content = pict_wa
                   EXCEPTIONS OTHERS = 4 ).

    IF sy-subrc = 4.
      RETURN.
    ENDIF.

    CLEAR pict_tab.

    length = xstrlen( pict_wa ).

    WHILE length >= 1022.

      APPEND pict_wa(1022) TO pict_tab.
      SHIFT pict_wa BY 1022 PLACES LEFT IN BYTE MODE.
      length = xstrlen( pict_wa ).

    ENDWHILE.

    IF length > 0.
      APPEND pict_wa TO pict_tab.
    ENDIF.

  ENDMETHOD.

ENDCLASS.

START-OF-SELECTION.

* Inicializa Browser
  HtmlBrowser=>BROWSER( ).
Publicidade

Deixe um comentário

Preencha os seus dados abaixo ou clique em um ícone para log in:

Logo do WordPress.com

Você está comentando utilizando sua conta WordPress.com. Sair /  Alterar )

Imagem do Twitter

Você está comentando utilizando sua conta Twitter. Sair /  Alterar )

Foto do Facebook

Você está comentando utilizando sua conta Facebook. Sair /  Alterar )

Conectando a %s