Base de conhecimento
Encontre respostas para suas dúvidas em quatro fontes de conhecimento diferentes ao mesmo tempo, simplificando o processo de pesquisa.

Cross Segmento - TOTVS Backoffice Linha Protheus - ADVPL - Totvs report com campos complexos

time.pngTempo aproximado para leitura: 00:10:00 min

Dúvida

Como inserir um excerto de código ADVPL (Advanced Protheus Language) no TOTVS Report?

Ambiente
Cross Segmento - TOTVS Backoffice (Linha Protheus)  – ADVPL – A partir da versão 11.8

Solução

Criar uma função de usuário que retorne o valor desejado.

Exemplo
Temos um relatório de pedidos de venda sintético (resumo de valores por pedido) e outro analítico (exibição de valor por item, e itens por pedido).

Em nosso relatório sintético, não temos a necessidade de utilizar de itens (SC6), apenas a tabela (SC5), porém os valores dos itens do pedido estão contidos na SC6, assim sendo, é necessário acumular os valores por número de pedido (C6_NUM).

  1. Crie um campo do tipo Fórmula:


  2. Crie a e compile função de usuário informada, recebendo no cabeçalho o número do pedido:
    // BIBLIOTECA NECESSÁRIA
    #Include "TOTVS.ch"

    // FUNÇÃO: RETORNA VALORES DO PEDIDO DE COMPRA
    User Function RetValPC(cNumPed) // RECEBE O NÚMERO DO PEDIDO CORRENTE
    Local nTotal :=0 // VALOR TOTAL POR PEDIDO DE COMPRA
    Local aArea := SC6->(GetArea()) // ARMAZENA A ÁREA PARA RESTAURAR APÓS OPERAÇÕES

    SC6->(DbGoTop()) // MOVE O CURSOR PARA O TOPO DA TABELA
    SC6->(DbSetOrder(1)) // ALTERA PARA O ÍNDICE 1: C6_FILIAL + C6_NUM + (...)
    SC6->(MsSeek(FwXFilial("SC6") + cNumPed)) // USA O NÚMERO DO PEDIDO PARA PESQUISAR

    // ENTÃO O NÚMERO DO PEDIDO FOR IGUAL AO NÚMERO CORRENTE NA
    // TABELA SC6, ADICIONE O VALOR TOTAL DO ITEM A VARIAVEL NTOTAL
    While (SC6->C6_NUM == cNumPed)
    nTotal += SC6->C6_VALOR
    SC6->(DbSkip())
    End

    // RESTAURA A ÁREA ORIGINAL (EVITA ERROS DE POSICIONAMENTO)
    RestArea(aArea)
    Return (nTotal) // RETORNA O VALOR PARA A COLUNA
  3. Adicione uma função de usuário que receba o campo de número do pedido (C6_NUM):


  4. Impressão de relatório sintético:


  5. Impressão de relatório analítico:


    Saiba mais

    Configurando Relatórios Personalizáveis
Esse artigo foi útil?
Usuários que acharam isso útil: 0 de 0

0 Comentários

Por favor, entre para comentar.
X Fechar

Olá ,

Há pendência referente a um de seus produtos contratados para a empresa ().

Entre em contato com o Centro de Serviços TOTVS para tratativa.

Ligue! 4003-0015 opção 4 e 9 ou registre uma solicitação para CST – Cobrança – Verificação de pendências financeiras . clique aqui.

TOTVS

X Fechar

Olá ,

Seu contato não está cadastrado no Portal do Cliente como um perfil autorizado a solicitar consultoria telefônica.

Por gentileza, acione o administrador do Portal de sua empresa para: (1)configurar o seu acesso ou (2)buscar um perfil autorizado para registro desse atendimento.

Em caso de dúvidas sobre a identificação do contato administrador do Portal, ligue (11) 4003-0015, opção 7 e, em seguida, opção 4 para buscar o suporte com o time de Assessoria ao Portal do Cliente. . clique aqui.

TOTVS

X Fechar

Olá ,

Para o atendimento de "Consultoria Telefônica" você deverá estar de acordo com o Faturamento.

TOTVS

X Fechar

Olá,

Algo inesperado ocorreu, e o usuario nao foi reconhecido ou você nao se encontra logado

Por favor realize um novo login

Em caso de dúvidas, entre em contato com o administrador do Portal de Clientes de sua empresa para verificação do seu usuário, ou Centro de Serviços TOTVS.

Ligue! 4003-0015 opção 4 e 9 ou registre uma solicitação para CST – Cadastros . clique aqui.

TOTVS

Chat _

Preencha os campos abaixo para iniciar o atendimento:

Chat _