Pular para o conteúdo principal

Postagem em destaque

🚀 Oferecendo Serviços Remotos de Desenvolvedor AdvPL e Mais 🖥️

🚀 Oferecendo Serviços Remotos de Desenvolvedor AdvPL e Mais 🖥️ Olá pessoal, Espero que este post encontre todos vocês bem! É com grande entusiasmo que compartilho que estou expandindo meus serviços como Desenvolvedor AdvPL para novos desafios e colaborações. Com mais de duas décadas de experiência sólida, minha jornada profissional tem sido enriquecedora, com a oportunidade de participar de projetos empolgantes ao longo dos anos. Agora, estou ansioso para trazer minha experiência e habilidades para novas equipes e projetos, trabalhando de forma remota. Minha expertise abrange não apenas AdvPL, mas também outras tecnologias-chave, incluindo JS, SQL, Infraestrutura e Otimização de Processos. Acredito que essa combinação de conhecimentos me permite oferecer soluções abrangentes e eficazes para uma variedade de necessidades de desenvolvimento. Acredito que a tecnologia tem o poder de transformar negócios e impulsionar o sucesso, e estou comprometido em ajudar meus clientes a alcançar seu

BlackTDN :: TCustomReport ( R3 e TReport : 2 em 1)

BlackTDN :: TCustomReport

Como prometido, a versão Demo (Beta 1) de TCustomReport já está pronta. As primeiras “vítimas” da conversão “2 em 1” foram os programas padrões IMPESP.PRX (Espelho do Ponto Customizado), ABSENT.PRX (Relatório de Absenteísmo) e PONQDHR.PRX (Relatório de Quadro de Horários) todos usando, por padrão, a impressão em R3 e a função IMPR(). Qualquer outro relatório poderá, também, ter a propriedade de ser impresso tanto em R3 quanto em TReport.

A figura ao lado (Espelho do Ponto) é um “instantâneo” da versão em TReport do mesmo relatório R3. Ele contém a targeta “BLACKTDN TCUSTOMREPORT DEMO” para provar que foi impresso usando a classe de impressão TReport.

A conversão de R3 pra TReport, usando TCustomReport é muito simples. Na maioria dos casos apenas duas linhas resolverão o problema.

Vamos utilizar “as vítimas” para exemplificar:

IMPESP.PRX

BlackTDN :: IMPESP e TCustomReport (1)
Neste ponto incluímos o arquivo de cabeçalho “TCUSTOMREPORT.CH”
É ele o responsável pela “conversão” de um relatório em R3 para TReport. A partir daqui pouca alteração se faz necessária para ter a impressão disponível tanto em R3 quando em TReport.

BlackTDN :: IMPESP e TCustomReport (2)Ativamos a Opção para impressão em TReport usando o comando TCUSTOMREPORT ACTIVATE e personalizamos a Fonte e o Tamanho das linhas do relatório, respectivamente:
TCUSTOMREPORT SET FONT e TCUSTOMREPORT SET LINE HEIGHT

BlackTDN :: IMPESP e TCustomReport (3)Considerando que IMPESP não faz referência Direta a Cabec às vezes fica difícil identificar a “Quebra” do relatório. Neste caso um TCUSTOMREPORT SET PAGE BREAK resolve o Problema.

BlackTDN :: IMPESP e TCustomReport (4)IMPR não imprime o cabeçalho padrão. Possui um cabeçalho específico (sem logo e outras informações). Neste caso utizamamos o comando TCUSTOMREPORT HIDE DEFAULT HEADER para desabilitar o cabeçalho padrão.

BlackTDN :: IMPESP e TCustomReport (5)TCUSTOMREPORT SET PAGE BREAK também para forçar a quebra de página.

BlackTDN :: IMPESP e TCustomReport (6)

O resultado, após 5 passos.

PONQDHR.PRX

BlackTDN :: PONQDHR e TCustomReport (1)

Neste caso, bastaram 3 alterações para que o relatório fosse impresso tanto em R3 quanto em TReport. São elas:
1) A inclusão do arquivo de cabeçalho TCustomReport.CH;
2) TCUSTOMREPORT ACTIVATE para ativar a opção de impressão em TReport e;
3) TCUSTOMREPORT SET FONT "Courier New" SIZE 0,-9 para personalizar a Fonte de impressão (uma vez que na conversão os dados poderiam ser impressos fora da margem do relatório).  Uma outra opção seria redefinir os dados para impressão “Truncando-os” e/ou eliminando espaços em branco. Mas daria muito trabalho e não é o que queremos aqui.

BlackTDN :: PONQDHR e TCustomReport (2) BlackTDN :: PONQDHR e TCustomReport (3)

e, finalmente:

ABSENT.PRX

BlackTDN :: ABSENT e TCustomReport (1) O trabalho para conversão de ABSENT.PRW foi “árduo”. Foram necessárias duas modificações para permitir que fosse impresso tanto em R3 quanto em TReport.

1) #include "TCUSTOMREPORT.CH" e;
BlackTDN :: ABSENT e TCustomReport (2) 2) TCUSTOMREPORT ACTIVATE.
BlackTDN :: ABSENT e TCustomReport (3) Na grande maioria dos relatórios apenas as duas alterações feitas em ABSENT.PRX serão necessárias para a impressão tanto em R3 quanto em TReport.

TCUSTOMREPORT.CH

BlackTDN : TCustoReport.CH (1) BlackTDN : TCustoReport.CH (2) BlackTDN : TCustoReport.CH (3)

O arquivo de cabeçalho “TCustomReport.CH” apresentado anteriormente foi modificado. Acima alguns “instantâneos” das modificações efetuadas.

TCustomReport ainda tem muito a evoluir mas, nesta sua primeira versão, já nos permite a impressão em TReport com poucas alterações no código original em R3.

Desta vez não vou disponibilizar todo o código utilizado para desenvolver TCustomReport (por questões de compromisso comercial). Apenas os arquivos de cabeçalho e um “patch” com as funções a serem utilizadas no processo de impressão. Considerando que é uma versão de “Demo” não poderá ser utilizada comercialmente uma vez que a targeta  “BLACKTDN TCUSTOMREPORT DEMO” será impressa em praticamente todas as páginas dos relatórios.

TCustomReport foi encomendada à equipe do BlackTDN pela IT Advanced e acredito que ela deverá disponibilizar uma versão comercial para uso. Contate-os.

Interessado na versão “demo” clique aqui (por enquanto apenas Protheus 10 e 11 pt-br).

[]s

иαldσ dj

Comentários

  1. Uma nova versão está disponível para Download. ajustes/melhorias:
    1)informações de impressão de cabeçalho;
    2)possibilitar a impressão em planilha (MS Excel/Oppen Office);
    3)possibilitar definir a fonte para o cabeçalho do relatório.

    ResponderExcluir
    Respostas
    1. Grande Naldo, beleza?

      Cara, gostei muito desta ferramenta, fiz um teste em P11 e vi que roda legal, não quer disponibilizar para nós? Grande Abraço

      Excluir
  2. Use, preferencialmente, fontes mono espaçadas como, por exemplo:

    Courier
    Courier New
    Lucida Console
    MS Mincho
    MS LineDraw

    etc.

    ResponderExcluir
  3. Bom dia,
    Alguém já viu ou personalizou no fonte NFESefaz ou sugere um PE onde:
    Na escolha da TES a mensagem (formula) dos dados complementares da Danfe seja automatico para a transmissão para a Sefaz e também saia na Danfe?

    Pergunto isto porque no cliente, ele tem uma variação de CFOPs nos items e cada um tem uma mensagem...

    Preciso de algumas ideias...

    ResponderExcluir
    Respostas
    1. Boa noite Mauro, isso e facil de fazer, eu mesmo tenho um fonte padrão onde que eu tenho isso, que mantenho atualizado com o da Totvs.

      Excluir
    2. Mauro, boa noite isso que vc quer e facil de fazer, montei para fazer isso.

      Excluir
    3. Naldo, estou com problema no Active, esta dando erro.
      Nao consigo saber porque.

      Excluir
  4. Este TCustomReport ( R3 e TReport : 2 em 1) tb posso alterar o tamanho da fonte?

    ResponderExcluir
  5. Deu zica na chamada do fonte!

    THREAD ERROR (mauro.nunes, TI02) 27/03/2013 16:19:07
    type mismatch on .AND. on U_IMPESP(IMPESP.PRX) 07/10/2012 03:25:47 line : 161

    ResponderExcluir
    Respostas
    1. Mauro, baixei a última versão do exemplo disponível para uso, apliquei o Patch e compilei os exemplos e não consegui reproduzir o erro.

      Verifique, se quando da aplicação do Patch, aparecem, no Log do AppServer, os seguintes arquivos:

      [INFO ][SERVER] [Thread 7884] [27/03/2013 17:01:53] Starting Debugger (marinaldo.jesus, NALDO-PC)

      validating BTDNRPTCHK.PRG...
      validating TCUSTOMREPORT.PRG...
      deleting: BTDNRPTCHK.PRG...
      updating: BTDNRPTCHK.PRG...
      deleting: TCUSTOMREPORT.PRG...
      updating: TCUSTOMREPORT.PRG...

      Excluir
    2. blz... passou

      Agora a targeta, tem como retira-la?

      Excluir
    3. O componente é vendido? Quanto? Com quem olho?

      Excluir
  6. Este comentário foi removido pelo autor.

    ResponderExcluir
  7. Este comentário foi removido pelo autor.

    ResponderExcluir
  8. Vendido não, mas a "targeta" poderá ser removida mediante doação no valor de R$ 100,00 (cem reais) que tem por finalidade a manutenção do blog.

    Para doar:

    1)acesse: http://www.blacktdn.com.br/p/doacoes.html
    2)encaminhe o comprovante para mail@blacktdn.com.br, assunto: TCUSTOMREPORT, juntamente com o arquivo (SIGAMAT.EMP)

    Feito isso, um arquivo de "autorização", e o "patch full", será enviado em resposta acompanhado dos procedimentos para uso. Vale lembrar que a "autorização" é por SIGAMAT.EMP se for utilizado com outro SIGAMAT a "targeta" voltará a aparecer.

    ResponderExcluir
    Respostas
    1. Desculpe Naldo,
      Achei que o valor era uma quantia mais simbólica...
      Obrigado pela atenção

      Excluir
  9. Este projeto ainda está ativo? Ainda é possível adquirir?

    ResponderExcluir
    Respostas
    1. Já compartilhei: https://github.com/NaldoDj/BlackTDN/tree/master/templates/uTCREPORT

      Excluir

Postar um comentário

Postagens mais visitadas deste blog

BlackTDN :: RLeg ~ Desvendando a Função ParamBox

Para quem precisar desenvolver uma interface de entrada de dados, coisa rápida, e não quer ter aquele trabalhão danado que todos já sabemos, o Protheus tem uma função que ajuda muito, é uma interface semelhante a função Pergunte, porém com muito mais opção de objeto de entrada de dados, alias até colocar o scrollbox desta interface com todos os objetos em outra MsDialog ou Wizard é simples. Vejam o exemplo abaixo, boa sorte! Rleg. //---------------------------------------------------------- // Função exemplo utilizando a função ParamBox() //---------------------------------------------------------- User Function xParamBox() Local aRet := {} Local aParamBox := {} Local aCombo := {"Janeiro","Fevereiro","Março","Abril","Maio","Junho","Julho","Agosto","Setembro","Outubro","Novembro","Dezembro"} Local i := 0 Private cCadastro := "xParambox" // ---------------

BlackTDN :: Customizando a interface de Login no Protheus e by You

A publicação “ BlackTDN :: By You e sua nova tela de login ”  de nosso amigo OBona deu o que falar e, em função disso, esse que a muito não vos escreve resolveu criar uma versão onde será possível personalizar, “por completo”, a tela de login no Protheus/by You. Considerando que OBona já havia “mapeado, identificado e customizado” as imagens peguei-as emprestadas para o exemplo que se segue: O primeiro passo para a customização “total” da interface de login do Protheus/by You será implementar o “Ponto de Entrada” ChgPrDir (Diretório de impressão) . Usaremos esse PE juntamente como programa U_FindMsObject.prg (apresentado pela primeira vez em: Protheus :: ADVPL : The Container : Presents Pandora's box ). Diferente do exemplo proposto por OBona, que substitui, durante o processo de compilação, as imagens padrões do sistema (excluindo-as) por imagens customizadas (com o mesmo nome) este novo exemplo mantém, no RPO, as imagens padrões adicionando novas imagens customizadas que serã

Protheus :: Chamando Funções do Menu Diretamente e sem a Necessidade de Login

Ferne$ perguntou: "...é possível abrir alguma rotina do sistema sem solicitar login ao usuário, como por exemplo a rotina MATA010..." Sim Ferne$, é possível sim. Abaixo um Exemplo para a Chamada à função MATA010 sem a necessidade de Login no sistema. #INCLUDE "PROTHEUS.CH" #INCLUDE "TBICONN.CH" /*/ Funcao: MATA010Ex Data: 30/04/2011 Autor: Marinaldo de Jesus Descricao: Executar a Funcao MATA010 diretamente sem a necessidade de LOGIN no Protheus Sintaxe: 1 ) U_MATA010Ex ( Chamada diretamente na Tela de Entrada do Sistema ) ; ou 2 ) totvsclient.exe -q -p=u_MATA010Ex -a=01;01 -c=rnp_local -e=rnp -m -l ( Chamada Via Linha de Comando ) /*/ User Function MATA010Ex( cEmpFil ) Local aEmpFil Local bWindowInit := { || __Execute( "MATA010()" , "xxxxxxxxxxxxxxxxxxxx" , "MATA010" , "SIGAFAT" , "SIGAFAT", 1 , .T. ) } Local cEmp Local cFil Local cMod Local cModName := "SIGAFAT" DEFA