ACBrPrinter - Utilit p/ impressao de NFCe e SAT

Aqui você poderá oferecer suas Contribuições, Dicas e Tutoriais (Texto ou Vídeo) que sejam de interesse de todos.

Moderador: Moderadores

Avatar do usuário
JoséQuintas
Administrador
Administrador
Mensagens: 20415
Registrado em: 26 Fev 2007 11:59
Localização: São Paulo-SP
Curtiram: 1 vez

ACBrPrinter - Utilit p/ impressao de NFCe e SAT

Mensagem por JoséQuintas »

Um uso legal do FOR/EACH.
Tinha muito disto na NFCe.

Código: Selecionar todos

      nLinha := 1
      DO WHILE .T.
         cLinha := Trim( MemoLine( ::aDest[ "xNome" ], 44, nLinha ) )
         IF Empty( cLinha )
            EXIT
         ENDIF
         ::DrawTexto( 37, ::nLinhaPDF - 10, 220, NIL, cLinha, HPDF_TALIGN_LEFT, ::oPDFFontNormal, 7 )
         ::nLinhaPDF -= 10
         nLinha++
      ENDDO
Troquei por isto:

Código: Selecionar todos

FOR EACH oElement IN ::FormatMemoAsArray( ::aDest[ "xNome" ] )
   ::DrawTexto( 37, ::nLinhaPDF - 10, 220, NIL, oElement, HPDF_TALIGN_LEFT, ::oPDFFontNormal, 7 )
   ::nLinhaPDF -= 10
NEXT
E passei a divisão pra uma função.

Código: Selecionar todos

METHOD FormatTextAsArray( cText, nLarguraCol )

   LOCAL aText := {}, nCont, cLinha

   FOR nCont = 1 TO 100
      cLinha := MemoLine( cText, nLarguraCol, nCont )
      IF Empty( cLinha )
         EXIT
      ENDIF
      AAdd( aText, cLinha )
   NEXT

   RETURN aText
Isso economizou linhas de fonte, e eliminou a variável cLinha.

Depois, foi só usar outra função já existente

Código: Selecionar todos

   HPDF_Page_SetFontAndSize( ::oPdfPage, ::oPDFFontBold, 7 )
   cText := ::FormataMemo( cText, Int( 220 / 60 * nLarguraCol ) )
Essa eu já havia criado, que divide o texto pela "largura em PDF" e não por colunas.

Agora é testar com vários CFes.

por enquanto o antes e o depois, com o ajuste por "largura em pdf".
testeant.pdf
(15.94 KiB) Baixado 230 vezes
testefim.pdf
(15.96 KiB) Baixado 228 vezes
Achei interessante usar o FOR/EACH pra isso, por isso postando como mais um exemplo de uso.

Nota: reduziu cerca de 25 linhas, mesmo com a adição do novo recurso.

https://github.com/JoseQuintas/sefazcla ... d8bd887207
José M. C. Quintas
Harbour 3.2, mingw, multithread, gtwvg, fivewin 25.12, dbfcdx, MySQL, ADOClass, PDFClass, SefazClass, (hwgui), (hmg3), (hmg extended), (oohg), PNotepad, ASP, (Linux/Flagship/harbour 3.2)
"The world is full of kings and queens, who blind our eyes and steal our dreams Its Heaven and Hell"

https://github.com/JoseQuintas/
Fernando queiroz
Usuário Nível 4
Usuário Nível 4
Mensagens: 783
Registrado em: 13 Nov 2014 00:41
Localização: Porto Alegre/RS

ACBrPrinter - Utilit p/ impressao de NFCe e SAT

Mensagem por Fernando queiroz »

QUINTAS o que você usou no CSC para gerar essa NFCE tem como passar um xml para ver como foi montado
:% :%
HARBOUR 3.2, HWGUI 2.23 B7, SEFAZCLASS, PDFClass, ADO + MariaDB/MySQL, RMChart, Python + FASTAPI , Android Kotlin
Avatar do usuário
JoséQuintas
Administrador
Administrador
Mensagens: 20415
Registrado em: 26 Fev 2007 11:59
Localização: São Paulo-SP
Curtiram: 1 vez

ACBrPrinter - Utilit p/ impressao de NFCe e SAT

Mensagem por JoséQuintas »

Não uso NFCe.
Baixei o exemplo que encontrei aqui:

http://www.unimake.com.br/downloads.php
José M. C. Quintas
Harbour 3.2, mingw, multithread, gtwvg, fivewin 25.12, dbfcdx, MySQL, ADOClass, PDFClass, SefazClass, (hwgui), (hmg3), (hmg extended), (oohg), PNotepad, ASP, (Linux/Flagship/harbour 3.2)
"The world is full of kings and queens, who blind our eyes and steal our dreams Its Heaven and Hell"

https://github.com/JoseQuintas/
Avatar do usuário
rochinha
Administrador
Administrador
Mensagens: 4666
Registrado em: 18 Ago 2003 20:43
Localização: São Paulo - Brasil
Curtiu: 1 vez
Contato:

ACBrPrinter - Utilit p/ impressao de NFCe e SAT

Mensagem por rochinha »

Amiguinhos,
QUINTAS o que você usou no CSC para gerar essa NFCE tem como passar um xml para ver como foi montado
Gerar CSC

Acessar https://www.nfce.fazenda.sp.gov.br/NFCePortal/

No menu "Credenciamento". O CSC é obtido no menu "Gerenciar Cód. Segurança". Nesse menu você emitirá tanto o CSC de homologação (ambiente de testes) quanto o de produção (com validade jurídica) sendo que este último somente poderá ser emitido após a ativação e vinculação do equipamento SAT

Necessário ter certificado digital A1 minimo Solicitar Certificado Digital.

Para testes creio ser possivel usar estas informações:

* CSC FICTICIO
* CSC: 0123456789
* ID do CSC: 000001

Veja este tópico para dicas de uso da ACBrLib e emissão dos documentos.
OPS! LINK QUEBRADO? Veja ESTE TOPICO antes e caso não encontre ENVIE seu email com link do tópico para [url=mailto://fivolution@hotmail.com]fivolution@hotmail.com[/url]. Agradecido.

@braços : ? )

A justiça divina tarda mas não falha, enquanto que a justiça dos homens falha porque tarda.
Responder