Página 4 de 4

ACBrPrinter - Utilit p/ impressao de NFCe e SAT

Enviado: 10 Ago 2017 02:41
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

ACBrPrinter - Utilit p/ impressao de NFCe e SAT

Enviado: 12 Ago 2017 18:41
por Fernando queiroz
QUINTAS o que você usou no CSC para gerar essa NFCE tem como passar um xml para ver como foi montado
:% :%

ACBrPrinter - Utilit p/ impressao de NFCe e SAT

Enviado: 12 Ago 2017 19:47
por JoséQuintas
Não uso NFCe.
Baixei o exemplo que encontrei aqui:

http://www.unimake.com.br/downloads.php

ACBrPrinter - Utilit p/ impressao de NFCe e SAT

Enviado: 22 Jun 2022 12:23
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.