Á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/releaseviewviewpage.action?pageId=857586913929926296


API para Geração de Gráficos


Nome Físico: prgfin/luy/luy702za.py

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

Versão de Integração: 001

Objetivo: Xxxxxx

Criar o objeto de negócio que será utilizado para gerar visão de dados na qual permitirá conferir as informações do Listado em detalhe das Compras e exportar no formato desejado.

Pré-requisitos: 

Não se aplica.

Informaçõesiconfalse

IMPORTANTE:

Xxxxx


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;
  • , como Input o mês e o ano da declaração e Output o arquivo com as declarações e temp table de erros.
  • A exibição das informações da API 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.
  • prgfin/luy/luy702za.py.


Parâmetros de Entrada 


Temp

Parâmetros de Entrada 

Temp-table tt-atributos: Na Temp-Table tt-atributos _dados_formulario, são definidas as características gerais do formulário 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

para cumprir com a legislação F2181.


Descrição dos campos 

TEMP-TABLE tt-atributos

TEMP-TABLE tt_dados_formulario

Atributo

Tipo

Formato

Valor InicialNumGraph

Índice

ttv_num_form

Integer


1

Cod-Versao-Integracao

Integer

sim

ttv_cod_periodoGraphTitle

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                                                                                                      



sim

ttv_cod_docto_pessoa

Character



sim

ttv_cod_dat_emis_docto

Character



sim

ttv_cod_rubr

Character



sim

ttv_val_operac

Decimal




Atributo

Descrição

ttv_num_form

Identifica o número de formulario da declaração.

ttv_cod_periodo

Período.

ttv_cod_docto_pessoa

Documento da pessoa.

ttv_cod_dat_emis_docto

Data de Emissão do documento.

ttv_cod_rubr

Rubro.

ttv_val_operac

Valor total da operação.



Temp-Table tt_fornec_F2181_apb:Na Temp-Table tt_fornec_F2181_apb são definidas informações referidas ao fornecedor do documento.

TEMP-TABLE tt-points

Atributo

Tipo

Formato

Valor Inicial

Índice

tta_cod_empresa

Character



sim

tta_cdn_fornecedor

Integer


1

sim

tta_nom_pessoa

Character


“”


tta_cod_id_feder


Character




ttv_log_estrang


Character




Atributo

Descrição

tta_cod_empresa

Código da empresa.

tta_cdn_fornecedor

Número do fornecedor.

tta_nom_pessoa

Nome da pessoa.

tta_cod_id_feder

Documento.

ttv_log_estrang


É estrangeiro?



Temp-Table tt_impostos_F2181_apb:Na Temp-Table tt_impostos_F2181_apb são definidos os impostos vinculados aos documentos.

 

TEMP-TABLE tt_impostos_F2181_apb

Atributo

Tipo

Formato

Valor Inicial

Índice

tta_cod_estab

Character



sim

tta_num_id_tit_ap

Integer


1

sim

tta_cod_pais

Character



sim

tta_cod_unid_federac

Integer



sim

tta_cod_imposto

Character



sim

tta_ind_tip_impto

Character




tta_ind_clas_impto

Character




tta_ind_tip_tax

Character




ttv_val_base

Decimal




ttv_val_imposto 

Decimal




Atributo

Descrição

tta_cod_estab

Estabelecimento.

tta_num_id_tit_ap

Token título.

tta_cod_pais

Pais.

tta_cod_unid_federac

Estado.

tta_cod_imposto

Imposto.

tta_ind_tip_impto

Tipo Imposto.

tta_ind_clas_impto

Classificação Imposto.

tta_ind_tip_tax

Tipo Taxa.

ttv_val_base

Valor tributável.

ttv_val_imposto 

Valor Imposto.



Temp-Table tt_rubros_F2181_apb:Informações referentes aos rubros dos fornecedores.

TEMP-TABLE tt_rubros_F2181_apb

Atributo

Tipo

Formato

Valor Inicial

Índice

ttv_cod_rubr

Character


1

sim

tta_cod_estab

Character



sim

tta_num_id_tit_ap

Integer



sim

ttv_val_operac_rubr 

Decimal


0


Atributo

Descrição

ttv_cod_rubr

Identifica o código do Rubro.

tta_cod_estab

Estabelecimento.

tta_num_id_tit_ap

Token do título.

ttv_val_operac_rubr 

Valor total da operação por rubro.




Temp-table tt_titulo_F2181_apb: Informações referentes aos títulos vinculados na declaração.

TEMP-TABLE tt_titulo_F2181_apb


Atributo

Tipo

Formato

Valor Inicial

Índice primário

Índice secundário

tta_cdn_fornecedor 

Integer



sim


tta_cod_estab

Character



sim

sim

tta_num_id_tit_ap





sim

tta_cod_espec_docto




sim


tta_cod_ser_docto




sim


tta_cod_tit_ap




sim


tta_cod_parcela




sim


tta_ind_tip_espec_docto






tta_dat_emis_docto






tta_cod_indic_econ






tta_val_origin_tit_ap






ttv_val_iva_basic






ttv_val_iva_min






ttv_val_retenc_iva






ttv_val_isento






Atributo

Descrição

tta_cdn_fornecedor 

Fornecedor do título.

tta_cod_estab

Estabelecimento.

tta_num_id_tit_ap

Token do título.

tta_cod_espec_docto

Espécie.

tta_cod_ser_docto

Série.

tta_cod_tit_ap

Código do título.

tta_cod_parcela

Parcela.

tta_ind_tip_espec_docto

Tipo de espécie.

tta_dat_emis_docto

Data de emissão

tta_cod_indic_econ

Moeda.

tta_val_origin_tit_ap

Valor original do título.

ttv_val_iva_basic

Valor total IVA Taxa Básica.

ttv_val_iva_min

Valor total IVA Taxa Mínima.

ttv_val_retenc_iva

Valor total Retenção IVA.

ttv_val_isento

Valor total Isento.


Execução


Sintaxe:

Bloco de código
languageruby
RUN prgfin/luy/luy702za.py PERSISTENT SET v_hdl_api (INPUT mes,
                                                     INPUT ano).
RUN pi_obter_detalhes_f2181 IN v_hdl_api (output table tt_fornec_f2181_apb,
                                          output table tt_rubros_F2181_apb,
                                          output table tt_titulo_F2181_apb,
                                          output table tt_impostos_F2181_apb,
                                          output table tt_erros_api).
Bloco de código
languageruby
RUN prgfin/luy/luy702za.py PERSISTENT SET v_hdl_api (INPUT mes,
                                                     INPUT ano).
RUN pi_main_formulario_2181 IN v_hdl_api (output v_des_arquivo,
                                          output table tt_erros_api).

Em caso de erro nas validações acima, o erro será retornado através da temp-table ttt_erros_api.

Se os dados forem aceitos, a API devolverá as informações para geração do Formulário 2181 quando for chamada a procedure pi_main_formulario_2181 ou devolverá os detalhes dos títulos e impostos, se for chamada a procedure pi_obter_detalhes_f2181.


Expandir
titleClique aqui para visualizar...
Bloco de código
languageruby
def var v_hdl_api as Handle format ">>>>>>9":U no-undo.
def var v_des_arquivo as character no-undo.

RUN prgfin/luy/luy702za.py PERSISTENT SET v_hdl_api (INPUT 2,
                                                     INPUT 2025).
RUN pi_main_formulario_2181 IN v_hdl_api (output v_des_arquivo,
                                          output table tt_erros_api).
DELETE PROCEDURE v_hdl_api.
Bloco de código
languageruby
def var v_hdl_api as Handle format ">>>>>>9":U no-undo.
def var v_des_arquivo as character no-undo.

RUN prgfin/luy/luy702za.py PERSISTENT SET v_hdl_api (INPUT 2,
                                                     INPUT 2025).
RUN pi_obter_detalhes_f2181 IN v_hdl_api (output table tt_fornec_f2181_apb,
                                          output table tt_rubros_F2181_apb,
                                          output table tt_titulo_F2181_apb,
                                          output table tt_impostos_F2181_apb,
                                          output table tt_erros_api).
DELETE PROCEDURE v_hdl_api.

for each tt_titulo_F2181_apb:
    if not can-find(first tt_impostos_F2181_apb
        where tt_impostos_F2181_apb.tta_cod_estab     = tt_titulo_F2181_apb.tta_cod_estab
          and tt_impostos_F2181_apb.tta_num_id_tit_ap = tt_titulo_F2181_apb.tta_num_id_tit_ap) then
    do:
        create tt_impostos_F2181_apb.
        assign tt_impostos_F2181_apb.tta_cod_estab     = tt_titulo_F2181_apb.tta_cod_estab
               tt_impostos_F2181_apb.tta_num_id_tit_ap = tt_titulo_F2181_apb.tta_num_id_tit_ap.  
    end.
end.

def stream s1.
output stream s1 to C:\tmp\Detalhes_F2181.csv convert target "ISO8859-1".
put stream s1 unformatted "Fornecedor;Nome;Titulo;Rubro;Vl Rubro;Vl Original;Vl Taxa Basica; Vl Taxa Minima;Vl Ret IVA; Vl Isento ; Imposto;Vl Base;Vl Imposto " skip.

for each tt_titulo_F2181_apb,
    each tt_rubros_F2181_apb
    where tt_rubros_F2181_apb.tta_cod_estab     = tt_titulo_F2181_apb.tta_cod_estab
      and tt_rubros_F2181_apb.tta_num_id_tit_ap = tt_titulo_F2181_apb.tta_num_id_tit_ap,    
    first tt_fornec_F2181_apb
    where tt_fornec_F2181_apb.tta_cdn_fornecedor = tt_titulo_F2181_apb.tta_cdn_fornecedor,
    each tt_impostos_F2181_apb
    where tt_impostos_F2181_apb.tta_cod_estab     = tt_titulo_F2181_apb.tta_cod_estab
      and tt_impostos_F2181_apb.tta_num_id_tit_ap = tt_titulo_F2181_apb.tta_num_id_tit_ap:
    
    put stream s1 unformatted
    string(tt_fornec_F2181_apb.tta_cdn_fornecedor)                                      + ";" +
    tt_fornec_F2181_apb.tta_nom_pessoa                                                  + ";" +
    tt_titulo_F2181_apb.tta_cod_estab + '/' +  tt_titulo_F2181_apb.tta_cod_espec_docto  + '/' + 
    tt_titulo_F2181_apb.tta_cod_ser_docto + '/' + tt_titulo_F2181_apb.tta_cod_tit_ap    + '/' + 
    tt_titulo_F2181_apb.tta_cod_parcela                                                 + ";" +
    tt_rubros_F2181_apb.ttv_cod_rubr                                                    + ";" +
    string(tt_rubros_F2181_apb.ttv_val_operac_rubr)                                     + ";" +
    string(tt_titulo_F2181_apb.tta_val_origin_tit_ap)                                   + ";" +
    string(tt_titulo_F2181_apb.ttv_val_iva_basic)                                       + ";" +
    string(tt_titulo_F2181_apb.ttv_val_iva_min)                                         + ";" +
    string(tt_titulo_F2181_apb.ttv_val_retenc_iva)                                      + ";" +       
    string(tt_titulo_F2181_apb.ttv_val_isento)                                          + ";" +   
    tt_impostos_F2181_apb.tta_cod_pais + '/' + tt_impostos_F2181_apb.tta_cod_unid_federac + '/' + 
    tt_impostos_F2181_apb.tta_cod_imposto                                               + ";" +
    string(tt_impostos_F2181_apb.ttv_val_base)                                          + ";" +                                   
    string(tt_impostos_F2181_apb.ttv_val_imposto) 
    skip.  
    
end.
output stream s1 close.




Parâmetros de Saída


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

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 por meio de um registro contendo o código do erro e a sua descrição.

Obs.: Depois da chamada feita à API é imprescindível tratar os erros retornados caso existam.

TEMP-TABLE tt_erros_api

Atributo

Tipo

Formato

Valor Inicial

ttv_num_erro

Integer



ttv_des_mensagem

Character



ttv_des_ajuda

Character



ttv_row_id

Rowid



Atributo

Descrição

ttv_num_erro

Número do erro. Sequencial dentro da temp-table.

ttv_des_mensagem

Descrição do erro.

ttv_des_ajuda

Descrição ajuda.

ttv_row_id

Rowid.

Sem opções de estilo