Pular para o conteúdo principal

Postagem em destaque

BlackTDN :: LeetCode :: Comparando Implementações Harbour e TLPP para o Desafio Longest Palindromic Substring

_Créditos das imagens: ChatGPT_ ### LeetCode :: Comparando Implementações Harbour e TLPP para o Desafio Longest Palindromic Substring Resolver o problema do [Longest Palindromic Substring](https://leetcode.com/problems/longest-palindromic-substring/description/) é um exercício clássico de programação, que desafia desenvolvedores a encontrar a maior substring palindrômica dentro de uma string. Recentemente, exploramos soluções tanto em Harbour quanto em TLPP (Total Language Protheus Programming). Neste artigo, comparamos as implementações nessas duas linguagens, destacando suas semelhanças, diferenças e funcionalidades específicas. #### Implementações em Harbour ##### Versão 5.1 Essa solução utiliza a técnica de expansão a partir do centro do palíndromo. Cada caractere ou par de caracteres consecutivos é considerado um possível "centro". O algoritmo expande em ambas as direções enquanto os caracteres forem iguais, retornando o maior palíndromo encontrado. ##### Versão 5....

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