cancel
Showing results for 
Search instead for 
Did you mean: 
Read only

How to create a line chart in R3

Cassandra05
Discoverer
660

Hi everyone,

I'm looking for a solution on how to create a line chart in R3 system. Are there any classes/interfaces etc. that you can recommend?

Best regards,
Cassandra

Accepted Solutions (1)

Accepted Solutions (1)

r_lindemann
Explorer

Have a look at the demo report GRAPHICS_GUI_CE_DEMO. You can change the config to have it display a line chart instead of the columns, and you can play around with tons of details. Not too complicated.

Answers (2)

Answers (2)

RaquelSouza96
Explorer

Boa tarde,
meu nome é Raquel Souza, 
sou do Brasil - Prazer em conhecê-lo.

Sim! No sistema SAP R/3 , você pode criar gráficos de linha usando a classe gráfica padrão SAP ou exportando dados para o Excel para visualização.

Opções para criar um gráfico de linhas no SAP R/3:

1️⃣ Usando uma classe cl_gui_chart_engine (SAP GUI Graph)

O SAP fornece uma classe cl_gui_chart_engine que permite gerar gráficos diretamente no sistema.

Exemplo de código ABAP usando cl_gui_chart_engine :

DADOS: gr_chart TIPO REF PARA cl_gui_chart_engine,
gr_container TIPO REF PARA cl_gui_custom_container,
gt_data TIPO TABELA DE chart_sdata,
gs_data TIPO chart_sdata.

" Crie um contêiner para exibir o gráfico na tela
CRIE OBJETO gr_container
EXPORTANDO
container_name = 'GRAPH_CONTAINER'.

" Crie uma instância do gráfico
CREATE OBJECT gr_chart
EXPORTING
parent = gr_container.

" Adicione dados ao gráfico
gs_data-value = 100.
gs_data-category = 'Jan'.
ANEXAR gs_data A gt_data.

gs_data-value = 150.
gs_data-category = 'fev'.
ANEXAR gs_data Um gt_data.

gs_data-value = 200.
gs_data-category = 'Mar'.
ANEXAR gs_data Um gt_data.

" Configurar o gráfico
gr_chart->set_data( EXPORTANDO dataset = gt_data ).
gr_chart->set_chart_type( EXPORTANDO chart_type = 'LINE' ).
gr_chart->refresh( ).

Este código cria um gráfico de linhas dentro de um contêiner SAP GUI.


2️⃣ Exportando para o Excel e criando o gráfico lá

Se o gráfico para complexo ou precisar ser visualizado fora do SAP, você pode gerar um relatório ALV , exportar os dados para o Excel ( ALV -> Export -> Spreadsheet ) e criar o gráfico no Excel.


3️⃣ Alternativa: Criando gráficos no Fiori/SAP UI5

Se uma empresa estiver usando SAP Fiori e S/4HANA , outra opção é construir um aplicativo Fiori com SAP UI5 e exibir gráficos usando bibliotecas como VizFrame Charts .
"Boa sorte!!
Espero ter ajudado!!!" 🚀😊

Cassandra05
Discoverer
Hello, First of all, thank you very much for your reply. Unfortunately I still have the problem that the type chart_sdata does not exist directly, because it is a local class. Is there an alternative solution? Thank you and best regards Cassandra
RaquelSouza96
Explorer
0 Likes

Bom dia
De nada! Foi um prazer ajudar 🚀O tipo chart_sdata não existe diretamente porque é uma classe local. Quais são as alternativas possíveis? ‌ ‌🚀

🚀

🔹um tipo global no dicionário de dados (SE11)

Se você precisar reutilizar essa estrutura em vários programas, uma abordagem mais robusta é criar um tipo de estrutura global (TYPES ou TABLE TYPE) no Data Dictionary (SE11). Desta forma, qualquer programa pode acessá-lo.

Passos:

 

  • Ir para a transação SE11

  • Selecione 'Tipo de Dados'

  • Crie um novo tipo de estrutura com os mesmos campos que chart_sdata

  • Salvar e ativar

  • Use o novo tipo no seu código:

    abap
    Copiar Editar
     

    TIPOS: INÍCIO DE ty_chart_sdata,
    campo1 TIPO char20,
    campo2 TIPO int4,
    FIM DE ty_chart_sdata.

    DADOS: lt_chart TIPO TABELA DE ty_chart_sdata.

    Isso torna sua estrutura acessível globalmente.

     

    🔹uma classe global para o tipo

    Se você quiser encapsular uma estrutura dentro de uma classe, mas mantê-la reutilizável, você pode criar uma classe global no SE24 (ABAP Class Builder) e definir uma seção TYPES dentro dela:

    abap
    Copiar Editar
     
    CLASSE zcl_chart_data DEFINIÇÃO PÚBLICA FINAL.
    SEÇÃO PÚBLICA.
    TIPOS: INÍCIO DE sdata,
    campo1 TIPO char20,
    campo2 TIPO int4,
    FIM DE sdata.
    TIPOS: tt_sdata TIPO TABELA DE sdata.
    FIM DA CLASSE.
    Agora, em qualquer programa, você pode referenciá-lo assim:
    DADOS: lt_chart TIPO zcl_chart_data=>tt_sdata.
    Espero que esta dica seja útil!

    Você já tem o "não", vá atrás do "sim" — apenas 🚀🚀🚀