Página 3 de 3

PDF de NFe, CTe, MDFe, e Evento

Enviado: 24 Abr 2017 13:56
por rubens
Ok.. José Quintas...

Vou deixar do jeito que tá e ver o no que dá... quando a gente tem muita coisa no sistema e daqui um pouco precisa atualizar vira um Deus nos acuda... É sempre melhor deixar o original...
Se não houver um número expressivo de reclamações fica assim mesmo...

Obrigado...

Rubens

PDF de NFe, CTe, MDFe, e Evento

Enviado: 24 Abr 2017 14:29
por JoséQuintas
Depois verifico um jeito e aviso aqui.
Acho que encontrei uma alternativa interessante.
Algo como oPDF:SetEanOff()

Mas pergunta:
Está dizendo sobre a classe dentro de um programa, ou do utilitário de teste que pode ser usado de forma independente?

PDF de NFe, CTe, MDFe, e Evento

Enviado: 24 Abr 2017 18:02
por JoséQuintas
Feito para a classe.

https://github.com/JoseQuintas/sefazcla ... 0a60a2d74f

Inicio as colunas como IMPRIME_IMPRIMEXMLTEM, que seria algo como só vai imprimir se tem no XML... rs

Código: Selecionar todos

   ::aLayout[ LAYOUT_EAN,      LAYOUT_IMPRIME ] := LAYOUT_IMPRIMEXMLTEM
E criei os métodos onde pode indicar não.

Código: Selecionar todos

   METHOD SetEanOff()           INLINE ::aLayout[ LAYOUT_EAN,      LAYOUT_IMPRIME ] := LAYOUT_NAOIMPRIME
Na definição de layout a partir do XML, só vai considerar o campo se estiver como baseado no XML (LAYOUT_IMPRIMEXMLTEM)

Código: Selecionar todos

      IF ! Empty( ::aItem[ "cEAN" ] )
         IF ::aLayout[ LAYOUT_EAN, LAYOUT_IMPRIME ] == LAYOUT_IMPRIMEXMLTEM
            ::aLayout[ LAYOUT_EAN, LAYOUT_IMPRIME ] := LAYOUT_IMPRIMENORMAL
         ENDIF
      ENDIF
No uso é algo como isto:

Código: Selecionar todos

oPDF := hbnfeDaNfe():New()
oPDF:SetEanOff()
oPDF:ToPDF( "arq.xml", "arq.pdf" )
Fiz o mesmo pra todos os outros campos opcionais. Com isso, o default é pra sair se existir no XML, como era antes.

PDF de NFe, CTe, MDFe, e Evento

Enviado: 25 Abr 2017 08:10
por rubens
Bom dia ...

Quinta eu compilo direto a classe....
Se embutir no sistema direto é melhor e mais rápido né...
Pelo que entendi se no XML tiver ean ele vai imprimir mesmo executando o método oPDF:SetEanOff()?
Vai depender se tiver no XML?

Obrigado

Rubens

PDF de NFe, CTe, MDFe, e Evento

Enviado: 25 Abr 2017 08:50
por JoséQuintas
Não. Entendeu errado.

Código: Selecionar todos

// SetEanOff: ::aLayout[ LAYOUT_EAN,   LAYOUT_IMPRIME ] := LAYOUT_NAOIMPRIME

IF ! Empty( ::aItem[ "cEAN" ] ) // se existir no xml. se não estiver vazio.  tem o NOT no início (!)
    IF ::aLayout[ LAYOUT_EAN, LAYOUT_IMPRIME ] == LAYOUT_IMPRIMEXMLTEM // não entra aqui se for LAYOUT_NAOIMPRIME
      ::aLayout[ LAYOUT_EAN, LAYOUT_IMPRIME ] := LAYOUT_IMPRIMENORMAL
    ENDIF
ENDIF