Como baixar fontes padrão de relatórios e transformá-los em User Function?

Hoje vou mostrar como fazer o download de um fonte padrão de relatório via suporte.totvs.com e fazer a customização no fonte.

O ato de você fazer o download de um fonte padrão, e transformar para a sua necessidade, alguns autores chamam de “Congelar”, que basicamente consiste em alterar constantes e Function para User Function.

1. Primeiramente, para fazer o download, é necessário acessar o suporte da TOTVS, e em seguida clicar em TOTVS Linha Protheus

2. Depois clique em Artefatos Gerais de Produto

3. Clique Em Fontes de Relatório

4. Basta realizar o download dos pacotes e descompactar.

Acessando Fontes de Relatórios

Agora vamos ao passo a passo de como Congelar o fonte:

1. Após descompactar, procure o arquivo desejado, e altere o nome colocando um caracter antes como “x” ou “z”. Por exemplo, no matr010.prx, foi alterado o nome para xMATR010.prw

2. Coloque esse novo fonte dentro da workspace, e coloque a include dele se precisar, na sua pasta de includes

3. Abra o arquivo, e procure pela palavra Function (não por Static Function, apenas Function)

3.1. Onde tiver a palavra Function, na função da frente, acrescente um x minúsculo e troque de Function para User Function, por exemplo, Function MATR010() = User Function xMATR010()

3.2. Onde tinha a chamada da função, trocar pela nova chamada, por exemplo, MATR010() = u_xMATR010()

4. Repetir os passos 3, 3.1 e 3.2 até o fim do arquivo


Bom pessoal, por hoje é só.

Abraços e até a próxima.

Dan (Daniel Atilio)
Cristão de ramificação protestante. Especialista em Engenharia de Software pela FIB, graduado em Banco de Dados pela FATEC Bauru e técnico em informática pelo CTI da Unesp. Entusiasta de soluções Open Source e blogueiro nas horas vagas. Autor e mantenedor do portal Terminal de Informação.

11 Responses

  1. Walter Rocha disse:

    Muito bom Dan, ter os fontes padrões para analisar algumas situações é muito bom e apesar de trabalhar com o protheus a tempos eu não sabia dessa possibilidade.
    Muito Obrigado novamente

  2. Jonathan Oliveira disse:

    Segui os passo para renomear o arquivo e as funções, porém, ao compilar recebo essa mensagem de erro: “Cannot overwrite TOTVS programs (MATR110A.PRW)”
    O que pode ser?

  3. Oesly Nunes disse:

    Olá peço por favor ajuda, já tentei com o pessoal da totvs e não tive sucesso, inclusive tive ajuda do pessoal do ADVPL e não consegui, o relatório MATR700 é bloqueado para personalização, eu segui seu tutorial e consegui desbloquear ele para personalização, além dos procedimentos que vc orientou comentei as funções SetReadOnly que estavam bloqueando a personalização. Após concluir tudo, incluindo os campos necessários, o protheus retorna com a seguinte mensagem: A CONFIGURAÇÃO DESSE RELATÓRIO NÃO PERMITE A INCLUSÃO DE CAMPOS DO USUÁRIO… não sei o que fazer mais.. por favor me ajuda…

  4. Oesly Nunes disse:

    uma outra tentativa que fiz foi inserir um novo campo na tabela dos pedidos de venda e chamar este campo no fonte do relatório, fiz os testes, e o campo apareceu perfeitamente no relatório, com as informações que coloquei no campo lá no pedido, porém o campo C6_DESCRI que traz a descrição do produto está replicando o campo novo que criei (C6_PEND) que traz a pendencia do item no pedido. olhei via APSDU e a informação está armazenada corretamente, em ambos os campos…

    • Dan_Atilio disse:

      Bom dia Oesly, tudo bem?
      Então, no caso se mesmo assim ele mostrando a mensagem de não permitir a inclusão de campos, é somente via AdvPL.
      Agora quanto a adição do campo e sair com dados dobrados, ai se possível, nos envie o fonte, ou mostre como você criou o TRCell e está imprimindo as informações.

  5. Sérgio H. C. Motta disse:

    Bom dia, Dan. Tudo bom?
    Sou iniciante do Protheus e preciso adicionar e remover campos num relatório não personalizável (MATR090.prx). Após a edição do arquivo fonte com a transformação da função em função de usuário e a adequação da chamada ao novo nome do arquivo xMATR090(), o que fazer? Sua orientação é para edição do relatório no Treports, Sigarpm ou edição em fonte mesmo?

    • Dan_Atilio disse:

      Bom dia Sérgio, bem e você?
      Após você fazer a alteração, utilizando o VSCode, compile o novo código fonte.
      Com isso, ele já estará dentro do RPO do seu Protheus, agora basta colocar um item no menu via Configurador, chamando a sua função xMATR090 com o tipo Função de Usuário.

Deixe uma resposta para Dan_AtilioCancelar resposta

Terminal de Informação