API de Window para Geração de Gráficos (003)


Nome Físico: utp/wutapi011.w

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

Versão de Integração: 003

Objetivo: 

Criação de gráficos.

Pré-requisitos: 

Homologado para Windows 7 e inferiores.




Considerações Gerais


  • Esse programa utiliza o OCX ChartFx para geração dos gráficos, para o seu correto funcionamento é necessário instalar o OCX utilizando um dos arquivos .bat existentes no diretório interfac/chartfx do produto;
  • O programa pode ser executado a partir da API utapi011 ou pode ser executado diretamente por outro programa;
  • A include {utp/utapi011.i} contém as definições das Temp-Table´s que podem ser passadas como parâmetro para a geração dos gráficos;
  • 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 Chart FX(chartfx_com_win_api.chm) que encontra-se no diretório interfac/chartfx da instalação do produto;
  • Para visualizar o conteúdo do arquivo chartfx_com_win_api.chm é necessário copiá-lo para um diretório local ou realizar os procedimentos descritos no endereço http://support.microsoft.com/kb/896358;
  • Para obter informações sobre as temp-tables que podem ser passadas como parâmetro, deve-se consultar o arquivo docapi/utapi011.doc que encontra-se no diretório de instalação do produto;
  • Todos os parâmetros que referem-se a cor devem utilizar os valores gerados ou pela função Progress RGB-VALUE ou pela função interna da API fnc_convColor que faz a conversão das cores disponíveis na utapi011 para o valor RGB adequado;
  • Sempre que o desenvolvedor optar por construir gráficos sem utilizar as temp-tables, a responsabilidade de validar os dados informados não é da API;
  • Todas as procedures da API retornam, através do RETURN-VALUE, “OK” quando a procedure foi executada com sucesso e “NOK” no caso de algum erro.
  • Existe uma limitação do componente ChartFx em relação a impressão de gráficos com o tipo “Pizza”. Os tipos de gráficos (campo GraphType) 1 e 2 não devem ser utilizados como opção inicial de impressão, deve ser utilizado outro tipo de gráfico. Caso haja a necessidade que o gráfico seja do tipo pizza, deve ser setado no desenvolvimento do programa outro tipo de gráfico e após a geração pode ser mudado o gráfico para o tipo pizza, utilizando a opção “Gallery” na guia de controle do componente.


Procedures



PI-CARREGADADOS:

Procedure responsável por varrer as temp-tables e criar os pontos nos gráficos. Essa procedure não deve ser executada pelo desenvolvedor, ela será executada por uma outra procedure quando for necessário.



PI-CLEAR-DATA:

Procedure que executa o método ClearData do componente ChartFx. Dependendo do valor informado para a flag serão eliminados diferentes valores iniciais. Na seção Constantes existe a tabela de valores para ClearDataFlag, maiores informações sobre cada uma das opções pode ser consultado no manual do ChartFX. Essa procedure recebe dois parâmetros, o primeiro é o COM-HANDLE do gráfico e o segundo é um inteiro que representa a flag desejada.

Parâmetros:  

  DEFINE INPUT PARAMETER hGrafico AS COM-HANDLE NO-UNDO.
  DEFINE INPUT PARAMETER iFlag AS INTEGER NO-UNDO.

Sintaxe:    

RUN pi-clear-data (INPUT chGrafico, INPUT 4).


PI-CLOSEDATA:

Procedure que executa o método CloseData do componente ChartFx. Dependendo do valor informado para o código será encerrada a criação de determinados tipos de valores. Na seção Constantes existe a tabela de valores para COD, maiores informações sobre cada uma das opções pode ser consultado no manual do ChartFX. Essa procedure recebe dois parâmetros, o primeiro é o COM-HANDLE do gráfico e o segundo é um inteiro que representa o código  desejado. Antes de ser executada é necessário que seja executada a procedure pi-openData com o mesmo código.

Parâmetros:

 DEFINE INPUT PARAMETER hGrafico AS COM-HANDLE NO-UNDO.
 DEFINE INPUT PARAMETER iCod AS INTEGER NO-UNDO.

Sintaxe:

RUN pi-closedata (INPUT chGrafico, INPUT 1).


PI-CRIA-BTEXIT:

Procedure responsável por criar o botão de exit para cada um dos gráficos. Essa procedure não deve ser executada pelo desenvolvedor, ela será executada sempre que o programa for inicializado.



PI-CRIA-ERRO:


Procedure responsável por criar os registros de erro na temp-table tt-erros. Essa procedure não deve ser executada pelo desenvolvedor, ela será executada sempre que o gráfico gerado for baseado nas temp-tables.



PI-CRIA-INIVALUE:


Procedure que executa o método IniValue do componente ChartFx. Determina valores iniciais para os pontos do gráfico. Recebe como parâmetros o COM-HANDLE do gráfico, um inteiro que representa o número do set, um inteiro que representa o número do ponto e um decimal que é o valor inicial.

Parâmetros:

 DEFINE INPUT PARAMETER hGrafico AS COM-HANDLE NO-UNDO.
 DEFINE INPUT PARAMETER iNumSet AS INTEGER NO-UNDO.
 DEFINE INPUT PARAMETER iNumPoint AS INTEGER NO-UNDO.
 DEFINE INPUT PARAMETER dValor AS DECIMAL NO-UNDO.

    Sintaxe:

RUN pi-cria-inivalue (INPUT chGrafico, INPUT 0, INPUT 0, INPUT 100.85).

  



PI-CRIA-LINHALIMITE:


Procedure que cria linhas constantes no gráfico, são as ConstantLines do componente ChartFX. Recebe como parâmetros o COM-HANDLE do gráfico, um char que é o label da linha, um inteiro que é o valor onde será criada a linha, um inteiro que é a cor da linha, um inteiro que é o eixo onde será criada a linha, X(2) ou Y(0), e um inteiro que é o estilo da linha. Na seção Constantes existe uma tabela com os possíveis valores para o estilo da linha.

Parâmetros:

DEFINE INPUT PARAMETER hGrafico AS COM-HANDLE NO-UNDO.
    DEFINE INPUT PARAMETER cLabel AS CHAR NO-UNDO.
    DEFINE INPUT PARAMETER iValue AS INTEGER NO-UNDO.
    DEFINE INPUT PARAMETER iTextColor AS INTEGER NO-UNDO.
    DEFINE INPUT PARAMETER iAxis AS INTEGER NO-UNDO.
    DEFINE INPUT PARAMETER iLineStyle AS INTEGER NO-UNDO.

    Sintaxe:

RUN pi-cria-linhalimite(INPUT hGrafico,
 INPUT “Limite 01”,
 INPUT 250,
 INPUT RGB-VALUE(11,7,102),
 INPUT 0, 
 INPUT 1).


PI-CRIA-LINHASLIMITE:


Procedure que cria linhas constantes no gráfico, são as ConstantLines do componente ChartFX. Essa procedure não deve ser utilizada pelo desenvolvedor, o desenvolvedor deve utilizar a procedure PI-CRIA-LINHALIMITE para criar suas próprias linhas constantes.




PI-CRIA-LINHASSTAT:


Procedure que cria linhas estatísticas no gráfico. Para que o desenvolvedor possa executar essa procedure é necessário que o gráfico tenha sido criado utilizando as temp-tables de comunicação. Recebe como parâmetros o COM-HANDLE do gráfico, e um inteiro que é o número do gráfico que deseja-se criar as linhas.

Parâmetros:

DEFINE INPUT PARAMETER hGrafico AS COM-HANDLE NO-UNDO.
DEFINE INPUT PARAMETER iNumGraph AS INTEGER NO-UNDO.

Sintaxe:

RUN pi-cria-linhasStat(INPUT hGrafico, INPUT 1).


PI-CRIA-PONTO:


Procedure que cria a legenda dos pontos do gráfico. Recebe como parâmetros o COM-HANDLE do gráfico, um inteiro que é o número do ponto(para cada ponto deve-se utilizar um número diferente), e um char que é o label do ponto informado.

Parâmetros:

DEFINE INPUT PARAMETER hGrafico AS COM-HANDLE NO-UNDO.
DEFINE INPUT PARAMETER iNumPoint AS INTEGER NO-UNDO.
DEFINE INPUT PARAMETER cLabel AS CHARACTER NO-UNDO.

Sintaxe:

 RUN pi-cria-ponto (INPUT chGrafico, INPUT 0, INPUT “Ponto 01”).


PI-CRIA-SET:


Procedure que cria os sets dos gráficos. Recebe como parâmetros o COM-HANDLE do gráfico, um inteiro que é o número do set (para cada set deve-se utilizar um número diferente), um char que é a legenda do set, um inteiro que é a cor do set, um inteiro que determina se serão exibidos os labels dos pontos, se for maior que 0 indica que os labels devem ser exibidos, e um inteiro que é a cor dos labels dos pontos.

Parâmetros:   

 DEFINE INPUT PARAMETER hGrafico AS COM-HANDLE NO-UNDO.
 DEFINE INPUT PARAMETER iNumSet AS INTEGER NO-UNDO.
 DEFINE INPUT PARAMETER cLegend AS CHARACTER NO-UNDO.
 DEFINE INPUT PARAMETER iColor AS INTEGER NO-UNDO.
 DEFINE INPUT PARAMETER iDataLabels AS INTEGER NO-UNDO.
 DEFINE INPUT PARAMETER iDataLabelsColor AS INTEGER NO-UNDO. 

Sintaxe:   

 RUN pi-cria-set (INPUT hGrafico,
     INPUT hGrafico:Chart:Series:COUNT,
     INPUT "Serie " + hGrafico:Chart:Series:COUNT,
     INPUT RGB-VALUE(0,0,0),
     INPUT "",
     INPUT RGB-VALUE(0,0,0)).


PI-CRIA-STRIP:


Procedure que cria os strips dos gráficos. No ChartFX o strip é uma região destacada do gráfico, para maiores informações deve-se consultar o manual do ChartFX. Recebe como parâmetros o COM-HANDLE do gráfico, um inteiro que é o número do strip (para cada strip deve-se utilizar um número diferente), um inteiro que é o valor mínimo, um inteiro que é o valor máximo, um inteiro que é a cor do strip, e um inteiro que é o eixo onde será criada a linha, X(2) ou Y(0).

Parâmetros:   

DEFINE INPUT PARAMETER hGrafico AS COM-HANDLE NO-UNDO.
DEFINE INPUT PARAMETER iStrip AS INTEGER NO-UNDO.
DEFINE INPUT PARAMETER iValueMin AS INTEGER NO-UNDO.
DEFINE INPUT PARAMETER iValueMax AS INTEGER NO-UNDO.
DEFINE INPUT PARAMETER iTextColor AS INTEGER NO-UNDO.
DEFINE INPUT PARAMETER iAxis AS INTEGER NO-UNDO.

Sintaxe:   

 RUN pi-cria-strip (INPUT hGrafico,
                   INPUT 0,
                   INPUT 10,
                   INPUT 100,
                   INPUT RGB-VALUE(255,0,0),
                   INPUT 0).


PI-CRIA-TITULO:

Procedure que cria títulos nos gráficos. Recebe como parâmetros o COM-HANDLE do gráfico, um inteiro que é número do título(para cada título deve-se utilizar um número diferente), um char que é o texto do título, um char que é o nome da fonte desejada, um inteiro que é o tamanho da fonte, um inteiro que é a cor do título, um inteiro que é o alinhamento( na seção Constantes existe a tabela de valores para StringAlignment), um inteiro que é a região do gráfico onde será exibido o título( na seção Constantes existe a tabela de valores para DockArea), um lógico que determina se o título deve ser em itálico, um lógico que determina se o título deve ser em negrito, e um lógico que determina se o título deve ser sublinhado.

Parâmetros:

DEFINE INPUT PARAMETER hGrafico AS COM-HANDLE NO-UNDO.
DEFINE INPUT PARAMETER iText AS INTEGER NO-UNDO.    
DEFINE INPUT PARAMETER cText AS CHAR NO-UNDO.    
DEFINE INPUT PARAMETER cFontName AS CHAR NO-UNDO.    
DEFINE INPUT PARAMETER iFontSize AS INTEGER NO-UNDO.    
DEFINE INPUT PARAMETER iTextColor AS INTEGER NO-UNDO.    
DEFINE INPUT PARAMETER iAlignment AS INTEGER NO-UNDO.    
DEFINE INPUT PARAMETER iDockArea AS INTEGER NO-UNDO.    
DEFINE INPUT PARAMETER lItalic AS LOGICAL NO-UNDO.    
DEFINE INPUT PARAMETER lBold AS LOGICAL NO-UNDO.    
DEFINE INPUT PARAMETER lUnderline AS LOGICAL NO-UNDO.

Sintaxe:

RUN pi-cria-titulo (INPUT chGrafico,
                    INPUT 0,      
                    INPUT “Título”,          
                    INPUT “Arial”,           
                    INPUT 10,                
                    INPUT RGB-VALUE(0,0,0),  
                    INPUT 1,             
                    INPUT 1,             
                    INPUT False,           
                    INPUT True,           
                    INPUT False).


PI-CRIA-VALUE:

Procedure que executa o método Value do componente ChartFx. Determina os valores dos pontos do gráfico. Recebe como parâmetros o COM-HANDLE do gráfico, um inteiro que representa o número do set, um inteiro que representa o número do ponto e um decimal que é o valor.

Parâmetros:

    DEFINE INPUT PARAMETER hGrafico AS COM-HANDLE NO-UNDO.
    DEFINE INPUT PARAMETER iNumSet AS INTEGER NO-UNDO.
    DEFINE INPUT PARAMETER iNumPoint AS INTEGER NO-UNDO.
    DEFINE INPUT PARAMETER dValor AS DECIMAL NO-UNDO.

Sintaxe:    

RUN pi-cria-value (INPUT chGrafico, INPUT 0, INPUT 0, INPUT 128).


PI-FORMAT-LEGEND:

Procedure que formata as legendas do gráfico. Recebe como parâmetros o COM-HANDLE da legenda, um char que é o nome da fonte, um inteiro que é o tamanho da fonte, um inteiro que é a cor, um lógico que determina se a legenda deve ser em itálico, um lógico que determina se a legenda deve ser em negrito, e um lógico que determina se a legenda deve ser sublinhada.

Parâmetros:

    DEFINE INPUT PARAMETER hLegend AS COM-HANDLE NO-UNDO.
    DEFINE INPUT PARAMETER cFontName AS CHAR NO-UNDO.
    DEFINE INPUT PARAMETER iFontSize AS INTEGER NO-UNDO.
    DEFINE INPUT PARAMETER iTextColor AS INTEGER NO-UNDO.
    DEFINE INPUT PARAMETER lItalic AS LOGICAL NO-UNDO.
    DEFINE INPUT PARAMETER lBold AS LOGICAL NO-UNDO.
    DEFINE INPUT PARAMETER lUnderline AS LOGICAL NO-UNDO.

Sintaxe:

    RUN pi-format-legend (INPUT chGrafico:Chart:AxisX,
                          INPUT “Arial”,
                          INPUT 10,
                          INPUT RGB-VALUE(0,255,0),
                          INPUT True,
                          INPUT False,
                          INPUT False).


PI-FORMAT-SERIES:

Procedure que formata as séries do gráfico. Recebe como parâmetros o COM-HANDLE da série, um inteiro que se for maior que 0 informa que devem ser exibidos os labels dos pontos, e um inteiro que é a cor.

Parâmetros:

    DEFINE INPUT PARAMETER chSeries AS COM-HANDLE NO-UNDO.
    DEFINE INPUT PARAMETER iDataLabels AS INTEGER NO-UNDO.
    DEFINE INPUT PARAMETER iDataLabelsColor AS INTEGER NO-UNDO.

Sintaxe:

    RUN pi-format-series (INPUT hGrafico:Chart:Series(0),
                          INPUT 1,
                          INPUT RGB-VALUE(0,0,255)).


PI-GET-CHARTHANDLE:

Procedure que retorna o handle do gráfico desejado. Com essa funcionalidade o desenvolvedor possui toda liberdade para utilizar os recursos do componente mesmo que não sejam disponibilizados via API. Recebe como parâmetro um valor inteiro que indica o handle do gráfico que será retornado. Se for informado 1 será retornado o handle do gráfico 1 e se for diferente de 1 será retornado o handle do gráfico 2. Essa procedure tem um parâmetro de OUTPUT que é do tipo COM-HANDLE, e contém o handle do gráfico desejado.

Parâmetros:

    DEFINE INPUT  PARAMETER iChart AS INTEGER NO-UNDO.
    DEFINE OUTPUT PARAMETER hGrafico AS COM-HANDLE NO-UNDO.

Sintaxe:

    RUN pi-get-chartHandle (INPUT 1, OUTPUT hGrafico).


PI-GET-TT-ATRIBUTOS:

Procedure que retorna a temp-table tt-atributos.

Parâmetros:

    DEFINE OUTPUT PARAMETER TABLE FOR tt-atributos.

Sintaxe:  

  RUN pi-get-tt-atributos (OUTPUT TABLE tt-atributos).


PI-GET-TT-DADOS:

Procedure que retorna a temp-table tt-dados.

Parâmetros:

    DEFINE OUTPUT PARAMETER TABLE FOR tt-dados.

Sintaxe:

    RUN pi-get-tt-dados (OUTPUT TABLE tt-dados).


PI-GET-TT-ERROS:

Procedure que retorna a temp-table tt-erros.

Parâmetros:

    DEFINE OUTPUT PARAMETER TABLE FOR tt-erros.

Sintaxe:

    RUN pi-get-tt-erros (OUTPUT TABLE tt-erros).


PI-GET-TT-POINTS-2:

Procedure que retorna a temp-table tt-points-2.

Parâmetros:

    DEFINE OUTPUT PARAMETER TABLE FOR tt-points-2.

Sintaxe:

    RUN pi-get-tt-points-2 (OUTPUT TABLE tt-points-2).


PI-GET-TT-SETS:

Procedure que retorna a temp-table tt-sets.


Parâmetros:


    DEFINE OUTPUT PARAMETER TABLE FOR tt-sets.


Sintaxe:


    RUN pi-get-tt-sets (OUTPUT TABLE tt-sets).



PI-INICIALIZAR:

Procedure que faz a criação dos gráficos quando os dados são inseridos através das temp-tables que são utilizadas na utapi011. Quando essa procedure é executada a mesma realiza o processo de validação dos dados, assim como é feito na utapi011. Se existir alguma falha será retornado “NOK” e a temp-table tt-erros conterá os registros dos erros. Essa procedure só deve ser executada pelo desenvolvedor no momento em que desejar exibir os dados e não for mais necessário alterar nenhum informação. Não recebe nem retorna nenhum tipo de parâmetro.



PI-OPENDATA:

Procedure que permite ao desenvolvedor iniciar a criação dos pontos no gráfico. Após executar essa procedure e não se deseja criar mais pontos é necessário executar a procedure pi-closeData com o mesmo código informado nessa procedure. Na seção Constantes existe a tabela de valores para COD, maiores informações sobre cada uma das opções podem ser consultadas no manual do ChartFX. Recebe como parâmetro o COM-HANDLE do gráfico, um inteiro que representa o código do tipo de dados que se deseja criar, um inteiro que determina o número de séries do gráfico, e um inteiro que determina o número de pontos de cada série. É importante esclarecer que no componente ChartFX todas as séries devem possuir o mesmo número de pontos.

Parâmetros:

    DEFINE INPUT PARAMETER hGrafico AS COM-HANDLE NO-UNDO.
    DEFINE INPUT PARAMETER iCod AS INTEGER NO-UNDO.
    DEFINE INPUT PARAMETER iSerie AS INTEGER NO-UNDO.
    DEFINE INPUT PARAMETER iPoints AS INTEGER NO-UNDO.

Sintaxe:

    RUN pi-openData(INPUT hGrafico,
                    INPUT 1,
                    INPUT 2,
                    INPUT 5).


PI-REG-COMPONENTS:

Procedure que registra os OCXs necessários para execução do DataGraph. Essa procedure não deve ser executada pelo desenvolvedor.



PI-SET-CHART-3D:

Procedure que define se o gráfico é exibido em modo 3D ou não. Recebe como parâmetro o COM-HANDLE do gráfico, e um valor lógico que se for verdadeiro define o gráfico como 3D senão define o gráfico como 2D.

Parâmetros:

    DEFINE INPUT PARAMETER hGrafico AS COM-HANDLE NO-UNDO.
    DEFINE INPUT PARAMETER l3d AS LOGICAL NO-UNDO.

Sintaxe:

    RUN pi-set-chart-3d (INPUT hGrafico,
                         INPUT TRUE).


PI-SET-CHART-OPTIONS:

Procedure que define algumas características gerais do gráfico. Recebe como parâmetro o COM-HANDLE do gráfico, um char que  determina a fonte do gráfico, um inteiro que define o tamanho da fonte, um inteiro que se for maior que 0 determina que as linhas do gráfico serão espessas, um lógico que determina que os textos devem ser em itálico, um lógico que determina que os textos devem ser em negrito, e um lógico que determina que os textos devem ser sublinhados.

Parâmetros:

    DEFINE INPUT PARAMETER hGrafico AS COM-HANDLE NO-UNDO.
    DEFINE INPUT PARAMETER cFontName AS CHAR NO-UNDO.
    DEFINE INPUT PARAMETER iFontSize AS INTEGER NO-UNDO.
    DEFINE INPUT PARAMETER iThickLines AS INTEGER NO-UNDO.
    DEFINE INPUT PARAMETER lItalic AS LOGICAL NO-UNDO.
    DEFINE INPUT PARAMETER lBold AS LOGICAL NO-UNDO.
    DEFINE INPUT PARAMETER lUnderline AS LOGICAL NO-UNDO.

Sintaxe:

    RUN pi-set-chart-options (INPUT chGrafico,
                              INPUT “Arial”,
                              INPUT 10,
                              INPUT 1,
                              INPUT False,
                              INPUT False,
                              INPUT True). 

PI-SET-CHART-STYLE:

Procedure que determina o estilo do gráfico baseado nas informações das temp-tables. Essa procedure não deve ser executada pelo desenvolvedor.




PI-SET-CHART-TYPE:

Procedure que determina o tipo do gráfico. Recebe como parâmetro o COM-HANDLE do gráfico, e um inteiro que é o tipo do gráfico. Na seção Constantes existe a tabela de valores para Gallery, maiores informações sobre cada uma das opções pode ser consultado no manual do ChartFX.

Parâmetros:

    DEFINE INPUT PARAMETER hGrafico AS COM-HANDLE NO-UNDO.
    DEFINE INPUT PARAMETER iGraphType AS INTEGER NO-UNDO.

Sintaxe:   

 RUN pi-set-chart-type (INPUT chGrafico,
                        INPUT 2). 


PI-SET-CHARTBORDER:

Procedure que determina o tipo de borda do gráfico. Recebe como parâmetro o COM-HANDLE do gráfico, e um inteiro que é o tipo da borda do gráfico. Na seção Constantes existe a tabela de valores para BorderType, maiores informações sobre cada uma das opções pode ser consultado no manual do ChartFX.

Parâmetros:

    DEFINE INPUT PARAMETER hGrafico AS COM-HANDLE NO-UNDO.
    DEFINE INPUT PARAMETER iGridStyle AS INTEGER NO-UNDO.

Sintaxe:

    RUN pi-set-chartBorder ( INPUT chGrafico,
                             INPUT 21).


PI-SET-GRID:

Procedure que determina o grid do gráfico. Recebe como parâmetro o COM-HANDLE do gráfico, um inteiro que é o estilo do grid (1 para grid horizontal, 2 para grid vertical e 3 para ambos), e um inteiro que é o estilo da linha do grid. Na seção Constantes existe a tabela de valores para DashStyle, maiores informações sobre cada uma das opções podem ser consultadas no manual do ChartFX.

Parâmetros:

    DEFINE INPUT PARAMETER hGrafico AS COM-HANDLE NO-UNDO.
    DEFINE INPUT PARAMETER iGridStyle AS INTEGER NO-UNDO.
    DEFINE INPUT PARAMETER iGridLineStyle AS INTEGER NO-UNDO.

Sintaxe:

    RUN pi-set-grid (INPUT chGrafico,
                     INPUT 3,
                     INPUT 3).


PI-SET-GRID-AXIS:

Procedure que cria o grid para um determinado eixo do gráfico. Recebe como parâmetro o COM-HANDLE do axis desejado, e um inteiro que é o estilo da linha do grid. Na seção Constantes existe a tabela de valores para DashStyle, maiores informações sobre cada uma das opções podem ser consultadas no manual do ChartFX.

Parâmetros:

    DEFINE INPUT PARAMETER hAxis AS COM-HANDLE NO-UNDO.
    DEFINE INPUT PARAMETER iGridLineStyle AS INTEGER NO-UNDO.

Sintaxe:

    RUN pi-set-grid-axis (INPUT hGrafico:Chart:AxisX,
                          INPUT 2).


PI-SET-LOGBASE:

Procedure que determina se um determinado eixo do gráfico está com base logarítmica. Recebe como parâmetro o COM-HANDLE do gráfico, um inteiro que é o eixo que deve estar na base logarítmica (1 – apenas o eixo Y, 2 – apenas o eixo X e 3 – para ambos), e um inteiro que é o valor da base logarítmica.

Parâmetros:

    DEFINE INPUT PARAMETER hGrafico AS COM-HANDLE NO-UNDO.
    DEFINE INPUT PARAMETER iAxis AS INTEGER NO-UNDO.
    DEFINE INPUT PARAMETER iLogBase AS INTEGER NO-UNDO.

 Sintaxe:

    RUN pi-set-logbase(INPUT chGrafico,
                       INPUT 1,
                       INPUT 10).


PI-SET-PIELINESTYLE:

Procedure que determina os estilos de linha para os gráficos do tipo pizza. Essa procedure não deve ser utilizada por desenvolvedores.



PI-SET-TT-ATRIBUTOS:

Procedure que passa a temp-table tt-atributos para a API.

Parâmetros:

    DEFINE INPUT PARAMETER TABLE FOR tt-atributos.

Sintaxe:

    RUN pi-set-tt-atributos (INPUT TABLE tt-atributos).


PI-SET-TT-DADOS:

Procedure que passa a temp-table tt-dados para a API.

Parâmetros:

    DEFINE INTPUT PARAMETER TABLE FOR tt-dados.

Sintaxe:

    RUN pi-set-tt-dados (INPUT TABLE tt-dados).


PI-SET-TT-POINTS-2:

Procedure que passa a temp-table tt-points-2 para a API.

Parâmetros:

    DEFINE INPUT PARAMETER TABLE FOR tt-points-2.

Sintaxe:

    RUN pi-set-tt-points-2 (INPUT TABLE tt-points-2).


PI-SET-TT-SETS:

Procedure que passa a temp-table tt-sets para a API.

Parâmetros:

    DEFINE INPUT PARAMETER TABLE FOR tt-sets.

Sintaxe:

    RUN pi-set-tt-sets (INPUT TABLE tt-sets).


PI-SET-VISIBLE:

Procedure que passa exibe ou esconde os gráficos. Recebe como parâmetro um inteiro e de acordo com o seu valor os gráficos serão exibidos ou escondidos. Para um valor menor ou igual a 0 os dois gráficos serão escondidos, para o valor 1 apenas o gráfico 1 será exibido, para o valor 2 apenas o gráfico 2 será exibido e para um valor maior ou igual a 3 os dois gráficos serão exibidos.

Parâmetros:

    DEFINE INPUT PARAMETER iGrafico AS INTEGER NO-UNDO.

Sintaxe:

    RUN pi-set-visible (INPUT 3).


PI-SETA-ESTILO-LEGENDBOX:

Procedure que determina o estilo da legendbox. Recebe como parâmetro o COM-HANDLE do gráfico, um char que é o nome da fonte desejada, um inteiro com o tamanho da fonte, um inteiro com a posição da legenda (ver na seção Referências a tabela de posição da legenda), um lógico que determina que os textos devem ser em itálico, um lógico que determina que os textos devem ser em negrito, e um lógico que determina que os textos devem ser sublinhados.

Parâmetros:

    DEFINE INPUT PARAMETER hGrafico         AS COM-HANDLE NO-UNDO.
    DEFINE INPUT PARAMETER cLegendFontName  AS CHAR NO-UNDO.
    DEFINE INPUT PARAMETER iLegendFontSize  AS INTEGER NO-UNDO.
    DEFINE INPUT PARAMETER iLegendPos       AS INTEGER NO-UNDO.
    DEFINE INPUT PARAMETER lItalic AS LOGICAL NO-UNDO.
    DEFINE INPUT PARAMETER lBold AS LOGICAL NO-UNDO.
    DEFINE INPUT PARAMETER lUnderline AS LOGICAL NO-UNDO.

Sintaxe:

    RUN pi-seta-estilo-legendBox (INPUT chGrafico,
                                  INPUT “Arial”,
                                  INPUT 10,
                                  INPUT 1,
                                  INPUT True,
                                  INPUT True,
                                  INPUT False).   


PI-SHOWTIPS:

Procedure que determina se os tips dos pontos serão exibidos no gráfico. Recebe como parâmetro o COM-HANDLE do gráfico, e um lógico que determina se serão ou não exibidos os tips.

Parâmetros:

    DEFINE INPUT PARAMETER hGrafico AS COM-HANDLE NO-UNDO.
    DEFINE INPUT PARAMETER lShowTips AS LOGICAL NO-UNDO.

Sintaxe:

    RUN pi-showTips (INPUT chGrafico,
                     INPUT True).   


PI-TRANSFORM:

Procedure que altera as dimensões da janela para ocupar a tela inteira. Essa procedure é executada na inicialização da API e por isso não deve ser executada pelo desenvolvedor.



PI-VALIDA:

Procedure que realiza as validações dos dados das temp-tables. Essa procedure não deve ser executada pelo desenvolvedor pois é executada automaticamente quando os dados são enviados através de temp-tables para a API. Se for encontrado algum erro a temp-table tt-erros conterá os registros com os erros ocorridos.






Funções




FNC_CHECKEXTRASERIE:

Função que verifica se é necessário a criação de séries adicionais. Essa função não deve ser utilizada pelo desenvolvedor.



FNC_CONVCOLOR:

Função que converte o valor inteiro, da tabela de cores da utapi011 para o valor RGB correspondente. Retorna um valor do tipo inteiro.

Parâmetros:

INPUT iColor AS INTEGER

Sintaxe:

fnc_convColor(5)


FNC_CONVGRAPHSTYLE:

Função que converte o valor inteiro, da tabela de estilos da utapi011, para o valor utilizado pelo componente ChartFX. Essa função não deve ser utilizada pelo desenvolvedor.



FNC_CONVGRAPHTYPE:

Função que converte o valor inteiro, da tabela de tipos de gráfico da utapi011, para o valor inteiro utilizado pelo ChartFX. Retorna um valor do tipo inteiro.

Parâmetros:

INPUT iGraphType AS INTEGER

Sintaxe:

fnc_convGraphType(6)


FNC_CONVLEGENDPOSALIGN:

Função que converte o valor inteiro, da tabela de alinhamento das legendas da utapi011, para o valor inteiro utilizado pelo ChartFX. Retorna um valor do tipo inteiro.

Parâmetros:

INPUT iAlignPos AS INTEGER

Sintaxe:

fnc_convLegendPosAlign(3)


FNC_CONVLEGENDPOSDOCK:

Função que converte o valor inteiro, da tabela de alinhamento das legendas da utapi011, para o valor inteiro utilizado pelo ChartFX. Retorna um valor do tipo inteiro.

Parâmetros:

INPUT iDockPos AS INTEGER

Sintaxe:

fnc_convLegendPosDock(3)


FNC_CONVSTYLE:

Função que converte o valor inteiro, da tabela de tipos de fontes da utapi011, para true ou false dependendo do valor informado e do tipo de fonte. Recebe como parâmetro um valor inteiro que é o código da tabela do tipo de fontes, e um valor do tipo char que representa que estilo estamos analisando (pode ser igual a: “Italic”, “Bold” ou “Underline”). Retorna um valor do tipo lógico.

Parâmetros:

    INPUT iStyle AS INTEGER
    INPUT cType AS CHARACTER

Sintaxe: 

fnc_convStyle(3, “Italic”)




 Parâmetros de entrada


Temp table 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

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



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

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

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-2: 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. Também é fundamental que a cada novo set, o valor do campo NumPoint inicie em 1

TEMP-TABLE tt-points-2

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 limite de valores para o número de sets em relação ao tipo de gráfico, para maiores informações sobre estas limitações consulte o HELP do Chart FX(chartfx_com_win_api.chm) que encontra-se no diretório interfac/chartfx da instalação do produto.

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, devem existir relacionamentos com a tt-points e tt-sets. Ou seja, um dado deve pertencer a um point e a um set. Também é fundamental que a cada novo set, o valor do campo NumPoint inicie em 1.

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-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.



Execução


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




1º Validação:

Versão de Integração

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.



2ª Validação:

Inconsistência ou Insuficiência dos Dados

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





Parâmetros de Saída


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


NOK: 

Retorna o código e a descrição do erro.

OK: 

O gráfico será exibido através do programa utp/wutapi011.w, que roda na mesma seção Progress do programa que executou a API. O programa que executou a utapi011 ficará aguardando o encerramento do programa wutapi011.w para encerrar sua execução.




No caso do retorno ser NOK, todos os erros encontrados serão retornados através da Temp-Table tt-erros.


A geração de gráficos pode ser feita de duas maneiras


  • Aprimeira é criando as informações nas temp-tables da mesma maneira como é feito para a utapi011. Após criar as informações nas temp-tables é necessário executar a API de forma persistente, executar as procedures que passam as temp-tables para a API e por último executar a procedure pi-inicializar.

Sintaxe:

Def var hwutapi011 as handle no-undo.
RUN utp/wutapi011.w PERSISTENT SET hwutapi011.
RUN pi-set-tt-atributos IN hwutapi011(INPUT TABLE tt-atributos).
RUN pi-set-tt-points-2 IN hwutapi011 (INPUT TABLE tt-points-2).
RUN pi-set-tt-sets IN hwutapi011 (INPUT TABLE tt-sets).
RUN pi-set-tt-dados IN hwutapi011 (INPUT TABLE tt-dados).
RUN dispatch IN hwutapi011 (INPUT "INITIALIZE").
RUN pi-inicializar IN hwutapi011.
IF RETURN-VALUE = "NOK" THEN DO:
RUN pi-get-tt-erros IN hwutapi011(OUTPUT TABLE tt-erros).
      DELETE OBJECT hwutapi011.
      RETURN "NOK".
END.
IF VALID-HANDLE(hwutapi011) THEN DO:
WAIT-FOR CLOSE OF hwutapi011. 
END.
IF VALID-HANDLE(hwutapi011) THEN DO:
DELETE OBJECT hwutapi011.
END.
{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-2.
    assign tt-points-2.NumPoint  = 1
           tt-points-2.NumGraph  = 1
           tt-points-2.labeltext = "Point 1".
    create tt-points-2.
    assign tt-points-2.NumPoint  = 2 
           tt-points-2.NumGraph  = 1
           tt-points-2.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-2.
    assign tt-points-2.NumPoint  = 1
           tt-points-2.NumGraph  = 2
           tt-points-2.labeltext = "Point 4".
    create tt-points-2.
    assign tt-points-2.NumPoint  = 2
           tt-points-2.NumGraph  = 2
           tt-points-2.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.
    
Def var hwutapi011 as handle no-undo.

RUN utp/wutapi011.w PERSISTENT SET hwutapi011.
RUN pi-set-tt-atributos IN hwutapi011(INPUT TABLE tt-atributos).
RUN pi-set-tt-points-2 IN hwutapi011 (INPUT TABLE tt-points-2).
RUN pi-set-tt-sets IN hwutapi011 (INPUT TABLE tt-sets).
RUN pi-set-tt-dados IN hwutapi011 (INPUT TABLE tt-dados).
RUN dispatch IN hwutapi011 (INPUT "INITIALIZE").
RUN pi-inicializar IN hwutapi011.

IF RETURN-VALUE = "NOK" THEN DO:
RUN pi-get-tt-erros IN hwutapi011(OUTPUT TABLE tt-erros).
      DELETE OBJECT hwutapi011.
END.

IF VALID-HANDLE(hwutapi011) THEN DO:
WAIT-FOR CLOSE OF hwutapi011.            
END.
IF VALID-HANDLE(hwutapi011) THEN DO:
DELETE OBJECT hwutapi011.
END.

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.        



  • A segunda maneira de criar os gráficos é o desenvolvedor executar diretamente os métodos da API.

Nesse caso não será realizada nenhuma validação.

Sintaxe:

Def var hwutapi011 as handle no-undo.
RUN utp/wutapi011.w PERSISTENT SET hwutapi011.
RUN dispatch IN hwutapi011 (INPUT "INITIALIZE").
IF VALID-HANDLE(hwutapi011) THEN DO:
WAIT-FOR CLOSE OF hwutapi011. 
END.
IF VALID-HANDLE(hwutapi011) THEN DO:
DELETE OBJECT hwutapi011.
END.
Def var hwutapi011 as handle no-undo.
DEFINE VARIABLE hGrafico AS COM-HANDLE  NO-UNDO.

RUN utp/wutapi011.w PERSISTENT SET hwutapi011.
RUN dispatch IN hwutapi011 (INPUT "INITIALIZE").
RUN pi-get-charthandle IN hwutapi011 (INPUT 1, OUTPUT hGrafico).
RUN pi-set-chartBorder IN hwutapi011 ( INPUT hGrafico, INPUT 21).
RUN pi-showtips IN hwutapi011 (INPUT hGrafico,INPUT FALSE ).
RUN pi-clear-data IN hwutapi011 (INPUT hGrafico,INPUT 4). 
RUN pi-cria-titulo IN hwutapi011 (INPUT hGrafico,
                                  INPUT 0,
                                  INPUT "Titulo",
                                  INPUT "Arial",
                                  INPUT 10,
                                  INPUT RGB-VALUE(0,0,0),
                                  INPUT 1,
                                  INPUT 1,
                                  INPUT FALSE,
                                  INPUT TRUE,
                                  INPUT FALSE).                  
RUN pi-cria-titulo IN hwutapi011 (INPUT hGrafico,
                                  INPUT 1,
                                  INPUT "Titulo Esq.",
                                  INPUT "Arial",
                                  INPUT 8,
                                  INPUT RGB-VALUE(0,0,0),
                                  INPUT 1,
                                  INPUT 0,        
                                  INPUT FALSE,
                                  INPUT TRUE,
                                  INPUT FALSE).
RUN pi-cria-titulo IN hwutapi011 (INPUT hGrafico,
                                  INPUT 2,
                                  INPUT "Titulo Inf.",
                                  INPUT "Arial",
                                  INPUT 8,
                                  INPUT RGB-VALUE(0,0,0),
                                  INPUT 1,
                                  INPUT 3,
                                  INPUT FALSE,
                                  INPUT TRUE,
                                  INPUT FALSE).
RUN pi-seta-estilo-legendBox IN hwutapi011 (INPUT hGrafico,
                                            INPUT "Arial",
                                            INPUT 10,
                                            INPUT 1,
                                            INPUT FALSE,
                                            INPUT FALSE,
                                            INPUT FALSE).    

/*Formata as legendas do eixo X*/
RUN pi-format-legend IN hwutapi011 (INPUT hGrafico:Chart:AxisX,
                                    INPUT "Arial",
                                    INPUT 10,
                                    INPUT RGB-VALUE(255,0,0),
                                    INPUT FALSE,
                                    INPUT FALSE,
                                    INPUT FALSE).
/*Formata as legendas do eixo Y*/
RUN pi-format-legend IN hwutapi011 (INPUT hGrafico:Chart:AxisY,
                                    INPUT "Arial",
                                    INPUT 10,
                                    INPUT RGB-VALUE(255,0,0),
                                    INPUT FALSE,
                                    INPUT FALSE,
                                    INPUT FALSE).
/*Determina as demais formatações do gráfico*/
RUN pi-set-chart-options IN hwutapi011 (INPUT hGrafico, 
                                        INPUT "Arial", 
                                        INPUT 10,
                                        INPUT 0,
                                        INPUT FALSE,
                                        INPUT FALSE,
                                        INPUT FALSE).  

/*Seta o grid para o gráfico*/
RUN pi-set-grid IN hwutapi011 (INPUT hGrafico,
                               INPUT 0,
                               INPUT 0).

/*Determina se o Gráfico é 3D*/
RUN pi-set-chart-3d IN hwutapi011 (INPUT hGrafico,INPUT NO).
RUN pi-set-chart-type IN hwutapi011 (INPUT hGrafico,INPUT 1).

RUN pi-cria-set IN hwutapi011 (INPUT hGrafico,
                               INPUT 0,
                               INPUT "Set 01",
                               INPUT RGB-VALUE(0,255,0),
                               INPUT 0,
                               INPUT RGB-VALUE(0,0,0)).
RUN pi-cria-set IN hwutapi011 (INPUT hGrafico,
                               INPUT 1,
                               INPUT "Set 02",
                               INPUT RGB-VALUE(0,0,255),
                               INPUT 0,
                               INPUT RGB-VALUE(0,0,0)).

RUN pi-cria-ponto IN hwutapi011 (INPUT hGrafico,
                                 INPUT 0,
                                 INPUT "Ponto 01").
RUN pi-cria-ponto IN hwutapi011 (INPUT hGrafico,
                                 INPUT 1,
                                 INPUT "Ponto 02").

/*Aqui inicia o processo de criação dos pontos no gráfico. Os que não existirem terão valor 0*/
RUN pi-openData IN hwutapi011 (INPUT hGrafico,
                               INPUT 1,
                               INPUT 2,
                               INPUT 2).
RUN pi-cria-value IN hwutapi011 (INPUT hGrafico,
                                 INPUT 0,
                                 INPUT 0,
                                 INPUT 1000).  
RUN pi-cria-value IN hwutapi011 (INPUT hGrafico,
                                 INPUT 0,
                                 INPUT 1,
                                 INPUT 2000). 
RUN pi-cria-value IN hwutapi011 (INPUT hGrafico,
                                 INPUT 1,
                                 INPUT 0,
                                 INPUT 1500).  
RUN pi-cria-value IN hwutapi011 (INPUT hGrafico,
                                 INPUT 1,
                                 INPUT 1,
                                 INPUT 2250).
RUN pi-closeData IN hwutapi011 (INPUT hGrafico,
                                INPUT 1). 
RUN pi-set-visible IN hwutapi011 (INPUT 1).
IF VALID-HANDLE(hwutapi011) THEN DO:
WAIT-FOR CLOSE OF hwutapi011.            
END.
IF VALID-HANDLE(hwutapi011) THEN DO:
DELETE OBJECT hwutapi011.
END.



Referências


Tipos de Gráficos

Valor

Descrição

0

Sem gráfico

1

Pizza 2D – Este gráfico possui restrições, verificar “Considerações gerais” no início desta documentação

2

Pizza 3D - Este gráfico possui restrições, verificar “Considerações gerais” no início desta documentação

3

Barra 2D

4

Barra 3D (default)

5

Gantt

6

Linha

7

Log/lin

8

Área 2D

9

Dispersão 2D

10

Polar

Obs.: Gráficos do tipo polar precisam de pelo menos 3 pontos.

11

High-low-close

Obs.: Gráficos do tipo High-low-close precisam de 3 sets para serem gerados corretamente.

12

Bolha

Obs.: Gráficos do tipo Bolha precisam de 2 sets para serem gerados corretamente.

13

Fita

14

Área 3D

15

Log/log

16

Lin/log

18

Open-high-low-close

Obs.: Gráficos do tipo Open-high-low-close precisam de 4 sets para serem gerados corretamente.

19

Castiçal

20

Superfície True3D

21

Dispersão True3D



Tipos de Fontes

Valor

Descrição

0

Sem tratamento (default)

1

Italico

2

Negrito

3

Negrito italico

4

Sublinhado

5

Sublinhado italico

6

Sublinhado Negrito

7

Sublinhado Negrito italico



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



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 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. Apenas o primeiro set é classificado.

Barra (3D),

Barra 2D, mais:

6

Z-agrupado

7

Horizontal Z-agrupado

Bolha

Sem opções de estilo

Castiçal

Sem opções de estilo

Gantt

1

Barras espaçadas(Default)

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

0

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

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

Obs: Os estilos 2, 3, 6 e 7 não são suportados pela API quando o tipo do gráfico for Log/Log ou Lin/Log.

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

Tape

Sem opções de estilo


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 do Título das Ordenadas

Valor

Descrição

0

Horizontal (default)

1

Vertical Acima

2

Vertical Abaixo

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


Obs: Todas as linhas estatísticas que exibem linha de desvio padrão, exibem apenas uma linha de desvio para cada set.

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


Obs: Todas as linhas estatísticas que exibem linha nível, não permitem a exibição dos pontos no eixo Y.

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 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



Constantes


ClearDataFlag

Valor

Descrição

1

ClearDataFlag_Values

2

ClearDataFlag_XValues

4

ClearDataFlag_IniValues

7

ClearDataFlag_Data

8

ClearDataFlag_Stripes

16

ClearDataFlag_ConstantLines

32

ClearDataFlag_ColorsAndPatterns

64

ClearDataFlag_PerSeriesAttributes

128

ClearDataFlag_Labels

256

ClearDataFlag_Titles

384

ClearDataFlag_Strings

512

ClearDataFlag_Tools

8192

ClearDataFlag_PerPointAttributes

1024

ClearDataFlag_Extensions

2048

ClearDataFlag_Commands

4096

ClearDataFlag_Fonts

134217728

ClearDataFlag_Other

67108864

ClearDataFlag_AllData

COD

Valor

Descrição

0

COD_Unchange

1

COD_Values

2

COD_Constants

3

COD_Colors

4

COD_Stripes

5

COD_IniValues

6

COD_XValues

8

COD_Titles

16

COD_RealTime

48

COD_RealTimeScroll

64

COD_InsertPoints

128

COD_AddPoints

256

COD_NoAlloc

512

COD_AllocHidden

2048

COD_Remove

4096

COD_NoInvalidate

8192

COD_ScrollLegend

-1

COD_Unknown

DashStyle

Valor

Descrição

0

DashStyle_Solid

1

DashStyle_Dash

2

DashStyle_Dot

3

DashStyle_DashDot

4

DashStyle_DashDotDot

StringAlignment

Valor

Descrição

0

StringAlignment_Near

1

StringAlignment_Center

2

StringAlignment_Far

DockArea

Valor

Descrição

0

DockArea_Left

1

DockArea_Top

2

DockArea_Right

3

DockArea_Bottom

Gallery

Valor

Descrição

1

Gallery_Lines

2

Gallery_Bar

3

Gallery_Area

4

Gallery_Scatter

5

Gallery_Pie

6

Gallery_Curve

7

Gallery_Pareto*

8

Gallery_Step*

9

Gallery_HiLowClose

10

Gallery_Surface

11

Gallery_Radar

12

Gallery_Cube*

13

Gallery_Doughnut*

14

Gallery_Pyramid*

15

Gallery_Bubble

16

Gallery_OpenHiLowClose

17

Gallery_Candlestick

18

Gallery_Contour*

19

Gallery_CurveArea*

20

Gallery_Gantt

BorderType

Valor

Descrição

0

BorderType_None

1

BorderType_Color

2

BorderType_Dark

3

BorderType_Light

4

BorderType_SunkenOuter

5

BorderType_SunkenInner

6

BorderType_RaisedOuter

7

BorderType_RaisedInner

8

BorderType_Raised

9

BorderType_Etched

10

BorderType_Bump

11

BorderType_Sunken







Observação: Os tipos de gráficos que possuem * não são utilizados pela API padrão da Datasul, por isso não existe nenhuma validação para o seu correto funcionamento. A utilização incorreta desses tipos de gráficos pode causar erros que levem ao encerramento indesejado do produto ou a exibição de mensagens indesejadas.