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: 20267
Registrado em: 26 Fev 2007 11:59
Localização: São Paulo-SP

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 224 vezes
testefim.pdf
(15.96 KiB) Baixado 222 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, gtwvg mt, fivewin 25.04, multithread, dbfcdx, MySQL, ADOClass, PDFClass, SefazClass, (hwgui mt), (hmg3), (hmg extended), (oohg), PNotepad, ASP, stored procedure, stored function, 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: 779
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 B3, SEFAZCLASS, PDFClass, ADO + MariaDB/MySQL, RMChart
Avatar do usuário
JoséQuintas
Administrador
Administrador
Mensagens: 20267
Registrado em: 26 Fev 2007 11:59
Localização: São Paulo-SP

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, gtwvg mt, fivewin 25.04, multithread, dbfcdx, MySQL, ADOClass, PDFClass, SefazClass, (hwgui mt), (hmg3), (hmg extended), (oohg), PNotepad, ASP, stored procedure, stored function, 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: 4664
Registrado em: 18 Ago 2003 20:43
Localização: São Paulo - Brasil
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