¡Caminando hacia el éxito!

Aprende en Comunidad

Avalados por :

Como baixar e organizar dados em formato RTF de forma tabular com design incluído - Guia passo a passo

  • Creado 01/03/2024
  • Modificado 01/03/2024
  • 3 Vistas
0
Cargando...

Atualmente estou usando a funcionalidade GUI_download para baixar os dados em formato RTF.

Ao baixar o conteúdo em RTF, o formato deve ser em forma de tabela.

Os dados devem ser organizados de forma tabular.

no RTF

Algum design deve ser incluído no arquivo RTF.

Existe algum módulo de função para alcançar isso ou para fornecer suas valiosas sugestões sobre como proceder?

Obrigado,

ABAPer.

Pedro Pascal
Se unió el 07/03/2018
Pinterest
Telegram
Linkedin
Whatsapp

3 Respuestas

0
Cargando...

Olá

Analise o código abaixo.


        *&---------------------------------------------------------------------*
        *& Report  Z_KRSA_WORD                                                 *
        *&                                                                     *
        *&---------------------------------------------------------------------*
        REPORT  Z_KRSA_WORD                             .
    
        DATA:    fcode          TYPE SY-UCOMM,
                 icode          TYPE SY-UCOMM,
                 already_done   TYPE c,
                 control        TYPE REF TO i_oi_container_control,
                 document       TYPE REF TO i_oi_document_proxy,
                 error          TYPE REF TO i_oi_error,
                 container      TYPE REF TO cl_gui_custom_container,
                 handle         TYPE REF TO I_OI_WORD_PROCESSOR_DOCUMENT,
                 item_url(256),
                 document_type(80),
                 first.
    
        CALL SCREEN 100.
        *&---------------------------------------------------------------------*
        *&      Module  STATUS_0100  OUTPUT
        *&---------------------------------------------------------------------*
        *       text
        *---------------------------------------------------------------------*
        module STATUS_0100 output.
          SET PF-STATUS 'PFSTAT'.
          SET TITLEBAR 'TITBA'.
    
        endmodule.                 " STATUS_0100  OUTPUT
        *&---------------------------------------------------------------------*
        *&      Module  USER_COMMAND_0100  INPUT
        *&---------------------------------------------------------------------*
        *       text
        *---------------------------------------------------------------------*
        module USER_COMMAND_0100 input.
          icode = fcode.
          CLEAR fcode.
          CASE icode.
            WHEN 'EXIT'.
              LEAVE TO SCREEN 0.
          ENDCASE.
    
        endmodule.                 " USER_COMMAND_0100  INPUT
        *&---------------------------------------------------------------------*
        *&      Module  create_basic_objects  OUTPUT
        *&---------------------------------------------------------------------*
        *       text
        *---------------------------------------------------------------------*
        module create_basic_objects output.
    
         DATA:   bds_instance     TYPE REF TO cl_bds_document_set,
                 doc_components   TYPE sbdst_components,
                 doc_signature    TYPE sbdst_signature,
                 doc_uris         TYPE sbdst_uri,
                 wa_doc_uris      LIKE LINE OF doc_uris,
                 wa_doc_signature LIKE LINE OF doc_signature,
                 doc_classname    TYPE sbdst_classname VALUE 'Z_WORD_TABLE_TST',
                 doc_classtype    TYPE sbdst_classtype VALUE 'OT',
                 doc_object_key   TYPE sbdst_object_key VALUE 'ZLEC_EGZEK_01',
                 has              TYPE i.
    
          CHECK already_done IS INITIAL.
          CALL METHOD c_oi_container_control_creator=>get_container_control
            IMPORTING
              control = control
              error   = error.
          CREATE OBJECT container
                EXPORTING container_name = 'CONTAINER'.
    
          CALL METHOD control->init_control
            EXPORTING
              r3_application_name      = 'R/3 Basis'
              inplace_enabled          = 'X'
              inplace_scroll_documents = 'X'
              parent                   = container
              register_on_close_event  = 'X'
              register_on_custom_event = 'X'
              no_flush                 = 'X'
            IMPORTING
              error                    = error.
    
          already_done = 'X'.
    
          CLEAR item_url.
    
          wa_doc_signature-prop_name = 'DESCRIPTION'.
          document_type = 'Word.Document'.
          wa_doc_signature-prop_value = 'RANGES'.
          APPEND wa_doc_signature TO doc_signature.
    
          CREATE OBJECT bds_instance.
    
          CALL METHOD bds_instance->get_info
            EXPORTING
              classname  = doc_classname
              classtype  = doc_classtype
              object_key = doc_object_key
            CHANGING
              components = doc_components
              signature  = doc_signature.
    
          CALL METHOD bds_instance->get_with_url
            EXPORTING
              classname  = doc_classname
              classtype  = doc_classtype
              object_key = doc_object_key
            CHANGING
              uris       = doc_uris
              signature  = doc_signature.
    
           READ TABLE doc_uris INTO wa_doc_uris INDEX 1.
    
          item_url = wa_doc_uris-uri.
          CALL METHOD control->get_document_proxy
            EXPORTING
              document_type  = document_type
            IMPORTING
              document_proxy = document
              error          = error.
    
          CALL METHOD document->open_document
            EXPORTING
              open_inplace = 'X'
              document_url = item_url.
    
          CALL METHOD document->has_wordprocessor_interface
            IMPORTING
              is_available = has.
    
          IF NOT has IS INITIAL.
    
          CALL METHOD document->get_wordprocessor_interface
            IMPORTING
              ERROR        = error
              WP_INTERFACE = handle.
    
            IF first IS INITIAL.
               perform sell_word_doc.
               first = 'X'.
            ENDIF.
          ENDIF.
    
    
        endmodule.                 " create_basic_objects  OUTPUT
        *&---------------------------------------------------------------------*
        *&      Form  sell_word_doc
        *&---------------------------------------------------------------------*
        *       text
        *---------------------------------------------------------------------*
        form sell_word_doc .
    
            DATA: retcode       TYPE soi_ret_string,
                  l_makro(128)  TYPE c.
    
            l_makro = 'CreateTables'.
            CALL METHOD document->execute_macro
                EXPORTING
                  macro_string = l_makro
                  param_count  = 2
                  param1       = 4
                  param4       = 5
                IMPORTING
                  retcode      = retcode.
        endform.                    " sell_word_doc
    

No MSWORD, você deve criar um macro, que é chamado no formulário sell_word_doc.

Meu macro "CreateTables" parece assim


        Dim oRange As Word.Range
        Dim oTable As Word.Table
     
        Set oRange = ActiveDocument.Bookmarks("bmTab001").Range
        
         'Add table to range of bookmark (oRange)
        Set oTable = ActiveDocument.Tables.Add(Range:=oRange, _
        NumRows:=3, _
        NumColumns:=3, _
        AutoFitBehavior:=wdAutoFitFixed)
    

No final do seu relatório, sugiro chamar seu macro "Salvar como RTF"

Coloquei meu documento MSWORD com meus macros no sistema com o código de transação OAOR.

Se precisar de mais informações, pergunte-me.

Respondido el 15/04/2024
LUCIANO RIOJA GHIOTTO
Se unió el 13/07/2019
0
Cargando...

Poderias me dar alguns exemplos de implementações pequenas de como pode ser usado para baixar os dados no arquivo rtf (onde os dados estão dispostos em formato de colunas ou em formato de tabela)?

Fico aguardando sua resposta.

Obrigado

Respondido el 15/04/2024
LUCIANO RIOJA GHIOTTO
Se unió el 13/07/2019

contacto@primeinstitute.com

(+51) 1641 9379
(+57) 1489 6964

© 2024 Copyright. Todos los derechos reservados.

Desarrollado por Prime Institute

¡Hola! Soy Diana, asesora académica de Prime Institute, indícame en que curso estas interesado, saludos!
Hola ¿Puedo ayudarte?