Árvore de páginas

Versões comparadas

Chave

  • Esta linha foi adicionada.
  • Esta linha foi removida.
  • A formatação mudou.

Button
TextoVoltar
Linkhttps://tdn.totvs.com/pages/releaseview.action?pageId=857586913



API para Geração de Gráficos (v.004)


Nome Físico: utp/utapi001.p

Nome do Include com Parâmetros: utp/utapi001.i

Versão de Integração: 003

Objetivo: 

Criação de gráficos.

Pré-requisitos: 

Não se aplica.

Informações
iconfalse

IMPORTANTE:

Para novos programas que venham a utilizar esta API, é recomendado que seja utilizado o programa utp/utapi011 ao invés deste.


Considerações Gerais


  • São passados como parâmetros para a API os atributos e dados para montagem do gráfico e devolvido uma temp-table com os possíveis erros;
  • A include {UTP/UTAPI001.I} contém as definições das temp-tables e essa deve ser inclusa no programa gerador de gráficos;
  • A exibição do gráfico é feita através da execução da API UTP/UTAPI001.P;
  • Só podem ser construídos no máximo 2 gráficos na mesma aplicação, vide exemplo;
  • Maiores informações em relação aos valores e descrições dos atributos podem ser encontradas no HELP do Datasul Graphics 3.0.


Parâmetros de Entrada 


Temp-table tt-atributos: Na Temp-Table tt-atributos são definidas as características gerais de apresentação do gráfico. O atributo NumGraph deve ter o valor 1 como inicial obrigatoriamente. O atributo cod-versao-integracao é o único campo obrigatório desta temp-table.


Descrição dos campos da tt-atributos

TEMP-TABLE tt-atributos

Atributo

Tipo

Formato

Valor Inicial

NumGraph

Integer


1

Cod-Versao-Integracao

Integer



GraphTitle

Character



GraphTitleColor

Integer



GraphType

Integer



GraphStyle

Integer



LabelsColor

Integer



LeftTitle

Character



LeftTitleStyle

Integer


0

LeftTitleColor

Integer



BottomTitle

Character



BottomTitleColor

Integer



DataLabels

Integer


0

DataLabelsFormat

Character


?

DataLabelsColor

Integer


?

LimitLines

Integer


0

LimitLinesColor

Integer



LimitHighLabel

Character



LimitLowLabel

Character



LimitHighValue

Decimal



LimitLowValue

Decimal



LineStats

Integer



MeanLineColor

Integer



MinMaxLinesColor

Integer



StDevLinesColor

Integer



BestFitLinesColor

Integer



CurveType

Integer



CurveOrder

Integer


2

CurveColor

Integer



ThickLines

Integer



GridStyle

Integer


0

GridLineStyle

Integer


0

TitleFontName

Character


Arial

TitleFontSize

Integer


200

TitleFontStyle

Integer


0

OtherFontName

Character


Arial

OtherFontSize

Integer


150

OtherFontStyle

Integer


0

LabelFontName

Character


Arial

LabelFontSize

Integer


100

LabelFontStyle

Integer


0

LegendFontName

Character


Arial

LegendFontSize

Integer


100

LegendFontStyle

Integer


0

LegendPos

Integer


0

Atributo

Descrição

NumGraph

Identifica o gráfico a que pertencem os atributos do registro. (1 ou 2)

Cod-Versao-Integracao

Indica a versão atual da API

GraphTitle

Título do Gráfico.

GraphType

Tipo do gráfico. *Ver tabela Tipos de gráficos

GraphStyle

Estilo do Gráfico. *Ver tabela Estilos de Gráficos

LabelsColor

Cor dos Labels do gráfico. *Ver Tabela de Cores

LeftTitle

Título do eixo das Ordenadas (Y)

LeftTitleStyle

Estilo do título do eixo das ordenadas (Y). *Ver tabela Estilos do Título das Ordenadas

LeftTitleColor

Cor do título do eixo das Ordenadas (Y). *Ver tabela de Cores

BottomTitle

Título do eixo das Abscissas (X)

BottomTitleColor

Cor do título das Abscissas(X). *Ver Tabela de Cores

DataLabels

Habilita a visualização de labels de valores para todos os gráficos do tipo 2D exceto para o tipo Pizza. *Ver Tabela de Labels de Valores

DataLabelsFormat

Um formato Progress válido no qual os valores numéricos serão exibidos.

DataLabelsColor

Cor dos labels de valores. *Ver Tabela de Cores.

LimitLines

Linhas que definem limites no gráfico.

LimitLinesColor

Cor das linhas de limites. *Ver Tabela de Cores

LimitHighLabel

Label da linha de limite superior

LimitLowLabel

Label da linha de limite inferior

LimitHighValue

Valor para a linha de limite superior

LimitLowValue

Valor para a linha de limite inferior

LineStats

Define linhas estatísticas. *Ver Tabela de Linhas de Estatística

MeanLineColor

Cor da linha de meio. *Ver Tabela de Cores

MinMaxLinesColor

Cor das linhas de valores máximo e mínimo. *Ver Tabela de Cores

StDevLinesColor

Cor da linha de desvio padrão. *Ver Tabela de Cores

BestFitLinesColor

Cor das linhas de nível. *Ver tabela de Cores

CurveType

Tipo de Curvas. LineStats deve possuir valor entre 16 e 31. *Ver Tabela de Curvas

CurveOrder

Atribui a ordem polinomial usada o desenho da curva ou o limite de points para movimento das médias

CurveColor

Cor da curva. *Ver Tabela de Cores

ThickLines

Linhas espessas (1) ou não (0 default)

GridStyle

Estilo do Grid do gráfico.

GridLineStyle

Estilo da linha do Grid do gráfico.

TitleFontName

Nome da fonte do Título.

TitleFontSize

Tamanho da fonte do Título.

TitleFontStyle

Estilo da fonte do título do gráfico. *Ver tabela estilo de fontes.

OtherFontName

Nome da fonte das strings que não pertencem aos títulos.

OtherFontSize

Tamanho da fonte das strings que não pertencem aos títulos.

OtherFontStyle

Estilo da fonte das strings que não pertencem aos títulos. *Ver tabela estilo de fontes.

LabelFontName

Nome da fonte dos Labels.

LabelFontSize

Tamanho da fonte dos Labels.

LabelFontStyle

Estilo da fonte do título dos Labels. *Ver tabela estilo de fontes.

LegendFontName

Nome da fonte das Legendas.

LegendFontSize

Tamanho da fonte das Legendas.

LegendFontStyle

Estilo da fonte do título das Legendas. *Ver tabela estilo de fontes.

LegendPos

Posição das legendas do gráfico. *Ver tabela de Posições da Legenda.

LeftTitleStyle

Estilo da fonte das Legendas. *Ver tabela Estilo de Legendas.



Temp-Table tt-points: Na Temp-Table tt-points são definidas as características comuns aos points do gráfico. Um point refere-se a um período do gráfico, ou seja, ao intervalo entre dois valores do eixo X. Os valores do atributo NumPoint devem ser sequenciais.

 

TEMP-TABLE tt-points

Atributo

Tipo

Formato

Valor Inicial

NumPoint

Integer



NumGraph

Integer


1

LabelText

Character


“”

Atributo

Descrição

NumPoint

Número do Point.

NumGraph

Identifica a qual gráfico pertencem os atributos do registro.

LabelText

Label do Point.



Temp-Table tt-sets: Na Temp-Table tt-sets são definidas as características dos sets do gráfico. Um set refere-se aos valores representados em um point. Existe limites de valores para os sets em relação ao tipo de gráfico, para maiores informações sobre estas limitações consulte o HELP do Datasul Graphics 3.0.

 

TEMP-TABLE tt-sets

Atributo

Tipo

Formato

Valor Inicial

NumSet

Integer



NumGraph

Integer


1

LegendText

Character



ColorSet

Integer



Atributo

Descrição

NumSet

Número do Set.

NumGraph

Identifica a qual gráfico pertencem os atributos do registro.

LegendText

Legenda do Set.

ColorSet

Cor do Set. *Ver tabela de Cores.




Temp-Table tt-dados: Informações referentes aos dados do gráfico. Um dado do gráfico deve estar obrigatoriamente relacionado a um point e a um set, portanto para que um registro da tt-dados exista, deve existir relacionamentos com a tt-points e tt-sets. Ou seja, um dado deve pertencer a um point e a um set.

TEMP-TABLE tt-dados

Atributo

Tipo

Formato

Valor Inicial

NumGraph

Integer


1

NumPoint

Integer



NumSet

Integer



GraphData

Decimal


0

Atributo

Descrição

NumGraph

Identifica a qual gráfico pertencem os atributos do registro.

NumPoint

Número do Point.

NumSet

Número do Set.

GraphData

Valor do dado do gráfico.




Temp-table tt-ylabels: Informações referentes aos labels da coluna Y do gráfico. A tt-ylabels é opcional, pode ou não ser passado valores através dela. O número de labels para o eixo Y é opcional, serão adicionados tantos labels ao eixo quanto forem os registros da tabela. Se não for passado nenhum parâmetro através dessa temp-table, o gerador de gráficos criará 5 (cinco) labels numéricos automaticamente.

TEMP-TABLE tt-ylabels

Atributo

Tipo

Formato

Valor Inicial

NumYlabel

Integer



YlabelText

Character



Atributo

Descrição

NumYlabel

Número do label do eixo das ordenadas (Y).

YlabelText

Label do eixo das ordenadas (Y).


Execução


Sintaxe:

Bloco de código
languageruby
Run utp/utapi001.p

   (Input  table tt-atributos,
    Input  table tt-points,
    Input  table tt-sets,
    Input  table tt-dados,
    Input  table tt-ylabels,
    Output table tt-erros).

O programa utp/utapi001.p  irá executar 2 validações básicas:




1ª Validação:

Existência de dados nas tabelas

Verifica se as temp-tables possuem os registros e valores necessários para a montagem do gráfico.



2º Validação:

Versão de Integração

O programa irá verificar se o programa chamador está íntegro com a API, e isto ocorre através da verificação da versão de integração passada como parâmetro.






Em caso de erro nas validações acima, o erro será retornado através de um NOK pelo RETURN-VALUE e o código e a descrição do erro através da temp-table tt-erros.

Se os dados forem aceitos, a API retornará OK através do RETURN-VALUE e o gráfico será exibido através do programa interfac\grafico\datgraph.exe, que roda independente da seção Progress (Programa Externo).


Expandir
titleClique aqui para visualizar...
Bloco de código
languageruby
{utp/utapi011.i}

/*IF  OPSYS = "MSDOS" THEN DO:*/
IF  OPSYS = "WIN32" THEN DO:
    Create tt-atributos.
    Assign tt-atributos.cod-versao-integracao = 3
           tt-atributos.graphtype             = 7
           tt-atributos.graphtitle            = 'Gráfico 1.'
           tt-atributos.lefttitle             = 'Valores 1.'
           tt-atributos.lefttitlestyle        = 1 
           tt-atributos.bottomtitle           = 'Faixas 1.'
           tt-atributos.numgraph              = 1.

    Create tt-atributos.
    Assign tt-atributos.cod-versao-integracao = 3
           tt-atributos.graphtype             = 7
           tt-atributos.graphtitle            = 'Gráfico 2.'
           tt-atributos.lefttitle             = 'Valores 2.'
           tt-atributos.lefttitlestyle        = 1 
           tt-atributos.bottomtitle           = 'Faixas 2.'
           tt-atributos.numgraph              = 2.   

    Create tt-sets.
    Assign tt-sets.NumSet   = 1
           tt-sets.NumGraph = 1
           tt-sets.ColorSet = 11
           tt-sets.legendText = "SET 1".  

    Create tt-sets.
    Assign tt-sets.NumSet   = 2
           tt-sets.NumGraph = 1
           tt-sets.ColorSet = 12
           tt-sets.legendText = "SET 2".

    create tt-points.
    assign tt-points.NumPoint  = 1
           tt-points.NumGraph  = 1
           tt-points.labeltext = "Point 1".
    create tt-points.

    assign tt-points.NumPoint  = 2
           tt-points.NumGraph  = 1
           tt-points.labeltext = "Point 2".

    Create tt-dados.
    Assign tt-dados.NumPoint   = 1
           tt-dados.NumSet     = 1
           tt-dados.NumGraph   = 1
           tt-dados.graphdata  = 1000.

    Create tt-dados.
    Assign tt-dados.NumPoint   = 2
           tt-dados.NumSet     = 1
           tt-dados.NumGraph   = 1
           tt-dados.graphdata  = 2000.

    Create tt-dados.
    Assign tt-dados.NumPoint   = 1
           tt-dados.NumSet     = 2
           tt-dados.NumGraph   = 1
           tt-dados.graphdata  = 1500.

    Create tt-dados.
    Assign tt-dados.NumPoint   = 2
           tt-dados.NumSet     = 2
           tt-dados.NumGraph   = 1
           tt-dados.graphdata  = 2250.

    /*Segundo Gráfico*/
    Create tt-sets.
    Assign tt-sets.NumSet   = 3
           tt-sets.NumGraph = 2
           tt-sets.ColorSet = 11
           tt-sets.legendText = "SET 3". 

    Create tt-sets.
    Assign tt-sets.NumSet   = 4
           tt-sets.NumGraph = 2
           tt-sets.ColorSet = 12
           tt-sets.legendText = "SET 4".

    create tt-points.
    assign tt-points.NumPoint  = 1
           tt-points.NumGraph  = 2
           tt-points.labeltext = "Point 4".

    create tt-points.
    assign tt-points.NumPoint  = 2
           tt-points.NumGraph  = 2
           tt-points.labeltext = "Point 5".   

    Create tt-dados.
    Assign tt-dados.NumPoint   = 1
           tt-dados.NumSet     = 3
           tt-dados.NumGraph   = 2
           tt-dados.graphdata  = 3000.

    Create tt-dados.
    Assign tt-dados.NumPoint   = 2
           tt-dados.NumSet     = 3
           tt-dados.NumGraph   = 2
           tt-dados.graphdata  = 2000.   

    Create tt-dados.
    Assign tt-dados.NumPoint   = 1
           tt-dados.NumSet     = 4
           tt-dados.NumGraph   = 2
           tt-dados.graphdata  = 500.

    Create tt-dados.
    Assign tt-dados.NumPoint   = 2
           tt-dados.NumSet     = 4
           tt-dados.NumGraph   = 2
           tt-dados.graphdata  = 250.   

Run utp/utapi001.p (  INPUT  table tt-atributos,
                      input  table tt-points,
                      input  table tt-sets,
                      input  table tt-dados,
                      input  table tt-ylabels,
                      output table tt-erros).

End.

if return-value = "NOK" then do:
    for each tt-erros:
        disp cod-erro desc-erro FORMAT "x(100)" with 1 col width 500.
    end.
end.           





Parâmetros de Saída


No retorno da execução do utp/utapi001.p, será retornado um dos valores abaixo (via RETURN-VALUE):


NOK: 

Execução com erro.

OK: 

Execução com sucesso.







No caso do retorno ser NOK, todos os erros encontrados serão retornados na tabela Temp-Table tt-erros:

A tt-erros é uma tabela de retorno de dados referentes aos erros encontrados na manipulação  dos dados das tabelas de entrada. A tt-erros retorna dados através de um registro contendo o código do erro e a sua descrição.

Obs.: Após a chamada feita à API é imprescindível tratar os erros retornados caso existam.

TEMP-TABLE tt-erros

Atributo

Tipo

Formato

Valor Inicial

Cod-Erro

Integer



Desc-Erro

Character



Atributo

Descrição

Cod-Erro

Número do erro. Seqüencial dentro da temp-table.

Desc-Erro

Descrição do erro.






A seguir encontram-se referências sobre os valores que alguns campos podem assumir




Tipos de Gráficos


Valor  Descrição

0- Sem gráfico

1- Pizza 2D

2- Pizza 3D

3- Barra 2D

4- Barra 3D (default)

5- Gantt

6- Linha

7- Log/lin

8- Área 2D

9- Dispersão 2D

10- Polar

11- High-low-close

12- Bolha

13- Fita

14- Área 3D

15- Log/log

16- Lin/log

17- Box-whisker

18- Open-high-low-close

19- Castiçal

20- Superfície True3D

21- Dispersão True3D

22- Time series



Tabela de Linhas de Limites


Valor Descrição

0- Sem linhas de limites (default)

1- Apenas linha de limite superior

2- Apenas linha de limite inferior

3- Ambas as linhas de limites (inferior e superior)

4- Ambas as linhas de limites (inferior e superior) com destaque entre elas



Tabela de Linhas Estatísticas


Valor Descrição

0- Sem linhas estatísticas (default)

1- Linha de meio

2- Linhas de valores máximo e mínimo

3- Linhas de valores máximo e mínimo e linha de meio

4- Linha de desvio padrão

5- Linha de desvio padrão e linha de meio

6- Linha de desvio padrão e linhas de valores máximo e mínimo

7- Linha de desvio padrão, linhas de valores máximo e mínimo de linha de meio

8- Linha de nível

9- Linha de nível e linha de meio

10- Linha de nível e linhas de valores máximo e mínimo

11- Linha de nível, linhas de valores máximo e mínimo e linha de meio

12- Linha de nível e linha de desvio padrão

13- Linha de nível, desvio padrão e linha de meio

14- Linha de nível, linha de desvio padrão e linhas de valores máximo e mínimo

15- Todas as linhas – Nível, desvio padrão, valores máximo e mínimo e meio

16 - 31 Como as anteriores, juntamente com curvas. Adicionar 16 para cada um dos itens anteriores para habilitar as curvas (curvas não são disponíveis para gráficos do tipo Castiçal.



Tabela Tipos de Curvas


Valor Descrição

0- Variável - ordem polinomial (default)

1- Logarítmico y = a + b * log(x)

2- Exponencial y = a * exp(b * x)

3- Exponencial y = a * x * exp(-b * x)

4- Força y = a * (x ^ b)

5- Inverso y = a + b / x

6- Inverso y = a / (b + x)

7- Inverso y = 1 / (a + b * y)

8- Inverso y = x / (a * x + b)

9- Inverso y = 1 / (a + b * x) ^2

10- Intercepta todos os points

11- Média no meio do grupo associado

12- Média no fim do grupo associado



Tipos de Fontes


Valor Descrição

0- Sem tratamento (default)

1- Itálico

2- Negrito

3- Negrito itálico

4- Sublinhado

5- Sublinhado itálico

6- Sublinhado Negrito

7- Sublinhado Negrito itálico



Estilos do Título das Ordenadas


Valor Descrição

0- Horizontal (default)

1- Vertical Acima

2- Vertical Abaixo



Tabela de Posição da Legenda


Valor Descrição

0- Direita (default)

1- Direita superior

2- Superior

3- Esquerda superior

4- Esquerda

5- Esquerda inferior

6- Inferior

7- Direita inferior



Tabela de Cores


Valor Descrição

0- Preto

1- Azul

2- Verde

3- Azul claro

4- Vermelho

5- Magenta

6- Marrom

7- Cinza luminoso

8- Cinza escuro

9- Azul luminoso

10- Verde luminoso

11- Azul claro luminoso

12- Vermelho luminoso

13- Magenta luminoso

14- Amarelo

15- Branco



Estilos de Linhas de Grids


Valor Descrição

0- Solido (default)

1- Traço

2- Ponto

3- Traço-Ponto

4- Traço-Ponto-Ponto

5- Nenhum



Estilos de Grids


Valor Descrição

0- Sem Grids (default)

1- Grids Y (horizontal) – radial (círculos concêntricos) em gráficos polares

2- Grids X (vertical) –angular ("raios") em gráficos polares

3- Grids horizontal e vertical – radial and angular em gráficos polares



Tabela de Labels de Valores


Valor Descrição

0- Sem Labels (default)

1- Labels coloridos de acordo com a propriedade DataLabelsColor

2- Labels coloridos de acordo com o grupo associado



Estilos de Gráficos


Gráfico          Valor Descrição


Area (2D/3D)                                                                              

0- Empilhado (default)

1- Absoluto

2- Empilhado em percentagem


Barra (2D)                                                                                    

0- Barra Vertical, agrupado se multiplos sets de dados (default)

1- Horizontal

2- Empilhado

3- Horizontal empilhado

4- Empilhado em percentagem

5- Horizontal empilhado em pencentagem

8- Vertical empilhado flutuante

9- Horizontal empilhado flutuante

Obs:  Barras flutuantes requerem mais de um set de dados. O primeiro set de dado em um gráfico em uma barra flutuante é invisível. O elemento que falta na barra empilhada faz a barra aparecer e ser suspensa sobre o eixo x, daqui o nome gráfico de barra flutuante.

10- Vertical Pareto

11- Horizontal Pareto

Obs: Com um gráfico Pareto, as barras são ordenadas em ordem descendente; qualquer label do eixo X definido pelo usuário são ordenados com o dado. Se existir mais de um set de dado, as barras são ordenadas em grupos semelhante ao set de dado que aparece em ordem descendente.


Barra (3D), Barra 2D, mais                                                                 

6- Z-agrupado

7- Horizontal Z-agrupado


Box-whisker                                                                                       

0- Raw data, desenho amostra (default)

1- Raw data, sem desenho amostra

2- Parametric data


Bolha                                                                                                  

Sem opções de estilo


Castiçal                                                                                               

Sem opções de estilo


Gantt                                                                                                  

0- Barras Adjacentes (default)

1- Barras espaçadas


High-low-close and open-high-low-close                                         

0- Barras Abertas (se usado), altas, baixas e fechadas (default)

1- Sem abrir ou fechar barras

2- Sem barras altas ou baixas

3- Sem barras de qualquer tipo


Linha, log/lin, lin/log, and log/log                                                    

0- Apenas linhas (default)

1- Símbolos

2- Referência entre dados e origem

3- Referência entre dados e origem e símbolos

4- Linhas

5- Linhas e símbolos

6- Linhas e Referência entre dados e origem

7- Linhas, Referência entre dados e origem, e símbolos


Pizza (2D/3D)                                                                                   

0- Linhas ligando labels à pizza (default)

1- Sem linhas ligando labels à pizza

2- Label coloridos

3- Labels coloridos sem linhas

4- Labels em Percentagem

5- Labels em Percentagem sem linhas

6- Labels em Percentagem Coloridos

7- Labels em Percentagem Coloridos sem linhas



Polar                                                                                                   

0- Apenas linhas (default)

1- Símbolos

2- Referência entre points e origem (centro)

3- Referência e símbolos

4- Linhas

5- Linhas e símbolos

6- Linhas e referência

7- Linhas, referência e símbolos


Dispersão (2D)                                                                                    

0- Apenas símbolos (default)

1- Apenas curvas

2- Apenas símbolos

3- Curvas e símbolos


Dispersão (3D)                                                                                    

0- Apenas símbolos (default)

1- Símbolos e referência vertical

2- Símbolos e linhas entre points

3- Símbolos, referências verticais e linhas entre points


Superfície                                                                                            

0- Painéis preenchidos e linhas de limite (default)

1- Apenas linhas de limite

2- Apenas painéis preenchidos

3- Painéis preenchidos e linhas de limites com o lado da parede

4- Linhas de limites com com o lado da parede

5- Apenas painéis preenchidos com o lado da parede


Tape                                                                                                      

Sem opções de estilo