Remodelar hbnfe pra aceitar NFE, CTE, MDFE, e tudo mais

Projeto hbNFe (Nota Fiscal Eletronica/Danfe) para [x]Harbour

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

Remodelar hbnfe pra aceitar NFE, CTE, MDFE, e tudo mais

Mensagem por JoséQuintas »

Quem quiser testar/olhar a alteração, alterei a assinatura pra assinar qualquer coisa.
Como ainda não consegui compilar, deixar a parte trocada com //

Não entendi, mas dá erro na compilação nestas linhas.
Cheguei a trocar aspas simples pra duplas, formatar, etc. mas não resolveu o erro.
Estão do jeito original, sem alteração, talvez algum include faça diferença.

Compiling 'hbnfeassina.prg'...
hbnfeassina.prg(184) Error E0030 Syntax error "syntax error at '.'"
hbnfeassina.prg(185) Error E0030 Syntax error "syntax error at '.'"
hbnfeassina.prg(369) Error E0030 Syntax error "syntax error at '.'"

Nota:
Pra assinar documentos diferentes, é só mexer no array aDelimitadores
Ao colega que teve problema pra assinar a nota 3.10, além desses delimitadores é usada a "Id".
Fora isso, só mesmo caracteres especiais.
Lembrando que caractere DOS usa ASCII US, caractere Windows PTBR usa ASCII PTBR, e caractere UTF8 usa... UTF8.
E tem também o caractere unicode, que dependendo do caractere nem o bloco de notas mostra.

Complicado?
Então fugindo um pouco do assunto principal:
1) No início o computador só "falava" inglês, e a tabela ASCII atendia isso.
2) Depois inventaram tabelas ASCII diferentes, uma pra cada idioma.
No DOS era o CONTRY,SYS que alterava a tabela.
O Windows também usa a mesma tabela, mas de acordo com o idioma do Windows.
Como o Windows não configura o DOS, o normal pra nós é o DOS usar tabela inglês e o Windows tabela português
3) Depois inventaram o Unicode, com mais caracteres, mas que podem ficar invisíveis na tela.
4) E a tentativa atual é o UTF8, onde uma letra pode ser representada por um conjunto de caracteres
Neste último, definir um campo com 40 caracteres é complicado, já que em UTF8 um caractere pode ser formado por até 8 caracteres
Teria que criar um campo com 320 caracteres pra ele aceitar 40 caracteres sem problema.
Até o Windows se perde na hora de limitar tamanhos de arquivos e pastas por causa desse tamanho incerto.
Indexar um DBF então... muito processamento...

E voltando à assinatura:
Tem programa de assinatura que faz uma pequena conversão antes de assinar e tem programa que não.
Então o programa que assina pode considerar o arquivo como codepage UTF8 ou codepage ASCII PTBR ou codepage ASCII US.
Como o código da tabela ASCII é diferente em cada uma delas, a assinatura também vai ser diferente.
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
JoséQuintas
Administrador
Administrador
Mensagens: 20267
Registrado em: 26 Fev 2007 11:59
Localização: São Paulo-SP

Remodelar hbnfe pra aceitar NFE, CTE, MDFE, e tudo mais

Mensagem por JoséQuintas »

Usei copiar/colar pras linhas onde acusa erro, e fora do fonte não dá erro.
Só posso imaginar o TRY/CATCH como diferença.
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/
Devair
Usuário Nível 1
Usuário Nível 1
Mensagens: 15
Registrado em: 22 Ago 2012 15:17
Localização: tanabi,sp

Remodelar hbnfe pra aceitar NFE, CTE, MDFE, e tudo mais

Mensagem por Devair »

IF xmlHeaderAntes <> ''
I := at(XMLAssinado,'?>') --> errado
I := at('?>',XMLAssinado) -- CORRETO
IF I > 0
xmlHeaderDepois := subs(XMLAssinado,1,I+1)
IF xmlHeaderAntes <> xmlHeaderDepois
* ? "entrou stuff"
* XMLAssinado := StuffString(XMLAssinado,1,length(xmlHeaderDepois),xmlHeaderAntes)
ENDIF
ELSE
XMLAssinado := xmlHeaderAntes + XMLAssinado
ENDIF
ENDIF
ENDIF

Neste trecho de código da HBNFeAssina, a função AT, está invertida, desta forma o IF I, sempre será 0 zero, mais em todas as funções de assina, inclusive na Projeto Open ACBR, também esta desta forma, que pra mim esta errada.

-- José Quintas .
Baixei sua nova versão da assinar, vou verificar, pois tenho tagas vazias no meu xml, qdo descobrir o que esta acontecendo, vou postar aqui, Agradeço vc.
Avatar do usuário
JoséQuintas
Administrador
Administrador
Mensagens: 20267
Registrado em: 26 Fev 2007 11:59
Localização: São Paulo-SP

Remodelar hbnfe pra aceitar NFE, CTE, MDFE, e tudo mais

Mensagem por JoséQuintas »

Isso já havia sido corrigido.
Olhando direito a rotina de assinatura, ela não trata o bloco individual da nota.
O bloco a assinar é a partir de <infNFe, mas a rotina pega tudo, então com certeza tem que usá-la antes da criação do lote.
Se tiver aquele <UTF8?> no início, vai alterar a assinatura com a rotina antiga.
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
JoséQuintas
Administrador
Administrador
Mensagens: 20267
Registrado em: 26 Fev 2007 11:59
Localização: São Paulo-SP

Remodelar hbnfe pra aceitar NFE, CTE, MDFE, e tudo mais

Mensagem por JoséQuintas »

Aproveitando e atualizando a informação:

A assinatura é feita no bloco do documento, apenas com as informações do bloco do documento.

A rotina da hbnfe considera que está recebendo apenas um bloco de documento.
A única coisa adicional da rotina da hbnfe é retirar o bloco UTF8?, caso exista no começo do arquivo.

Corrigindo minha informação anterior:
aDelimitadores contém o início do detalhe (não do documento), e o final do XML do documento.
Teoricamente o início seria igual o final tirando a barra "/".
Final </Nfe> significa que o documento deve começar com <NFe
Qualquer coisa a mais, vai causar assinatura inválida.

Então dá pra usar aDelimitadores como referência pra solucionar algum problema.
Na prática não confirmei isso, senão poderia acrescentar a checagem de início de XML na rotina de assinatura, com base no final indicado em aDelimitadores.
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
JoséQuintas
Administrador
Administrador
Mensagens: 20267
Registrado em: 26 Fev 2007 11:59
Localização: São Paulo-SP

Remodelar hbnfe pra aceitar NFE, CTE, MDFE, e tudo mais

Mensagem por JoséQuintas »

Minhas desculpas!
Fui comparar a assinatura da hbnfe com a minha e vi que errei em algo importante.
Não é o tipo de XML que interessa pra assinatura, e sim as TAGs.

Código: Selecionar todos

 nTipoXml := aDelimitadores[ nCont, TAG_TIPOXML ]
Já atualizei, e alterei o nome da variável nTipoXml pra ficar de acordo com o conteúdo.
Isto fica dentro do FOR/NEXT pra decidir o tipo de documento/tags

Código: Selecionar todos

nTagInicioFim := nCont
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
JoséQuintas
Administrador
Administrador
Mensagens: 20267
Registrado em: 26 Fev 2007 11:59
Localização: São Paulo-SP

Remodelar hbnfe pra aceitar NFE, CTE, MDFE, e tudo mais

Mensagem por JoséQuintas »

Importante:
Lembrando que não estou usando a hbnfe, mas estou alterando e atualizando o CVS.
Ainda não consegui compilar aqui.

No Harbour até tem a bilbioteca de compatibilidade com xHarbour, mas tem que lembrar que isso vai mudar todo aplicativo pra compabilidade,
e não apenas a hbnfe.

No momento minha compilação está sendo esta, mesmo acrescentando a compatibilidade.
Não lembro como desliga o multithread na compilação, default no Harbour 3.4, então os erros saem intercalados.
São so fontes originais, sem alteração.
E compilação -w3 -es2, mas alguns alertas podem ser falsos por compatibilidade.

Aceito sugestões.

Código: Selecionar todos

d:\CVSFiles\hbnfe\source>hbmk2 hbnfe -xhb
hbmk2: Processing environment options: -comp=msvc
hbmk2: Compiling Harbour sources...
Harbour 3.4.0dev (a330318) (2014-11-19 11:30)
Copyright (c) 1999-2014, https://github.com/vszakats/harbour-core/
Compiling 'hbMDFe.prg'...
hbMDFe.prg(304) Error E0020  Incomplete statement or unbalanced delimiters
hbMDFe.prg(308) Error E0020  Incomplete statement or unbalanced delimiters
hbMDFe.prg(309) Error E0030  Syntax error "syntax error at 'END'"
hbMDFe.prg(313) Error E0020  Incomplete statement or unbalanced delimiters
hbMDFe.prg(317) Error E0020  Incomplete statement or unbalanced delimiters
hbMDFe.prg(318) Error E0030  Syntax error "syntax error at 'END'"
hbMDFe.prg(322) Error E0020  Incomplete statement or unbalanced delimiters
hbMDFe.prg(326) Error E0020  Incomplete statement or unbalanced delimiters
hbMDFe.prg(327) Error E0030  Syntax error "syntax error at 'END'"
hbMDFe.prg(329) Error E0020  Incomplete statement or unbalanced delimiters
hbMDFe.prg(333) Error E0020  Incomplete statement or unbalanced delimiters
hbMDFe.prg(334) Error E0030  Syntax error "syntax error at 'END'"
hbMDFe.prg(335) Error E0020  Incomplete statement or unbalanced delimiters
hbMDFe.prg(339) Error E0020  Incomplete statement or unbalanced delimiters
hbMDFe.prg(340) Error E0030  Syntax error "syntax error at 'END'"
hbMDFe.prg(399) Error E0020  Incomplete statement or unbalanced delimiters
hbMDFe.prg(403) Error E0020  Incomplete statement or unbalanced delimiters
hbMDFe.prg(404) Error E0030  Syntax error "syntax error at 'END'"
hbMDFe.prg(405) Error E0020  Incomplete statement or unbalanced delimiters
hbMDFe.prg(409) Error E0020  Incomplete statement or unbalanced delimiters
hbMDFe.prg(410) Error E0030  Syntax error "syntax error at 'END'"
hbMDFe.prg(413) Error E0020  Incomplete statement or unbalanced delimiters
hbMDFe.prg(417) Error E0020  Incomplete statement or unbalanced delimiters
hbMDFe.prg(418) Error E0030  Syntax error "syntax error at 'END'"
hbMDFe.prg(421) Error E0020  Incomplete statement or unbalanced delimiters
hbMDFe.prg(425) Error E0020  Incomplete statement or unbalanced delimiters
hbMDFe.prg(426) Error E0030  Syntax error "syntax error at 'END'"
hbMDFe.prg(427) Error E0020  Incomplete statement or unbalanced delimiters
hbMDFe.prg(431) Error E0020  Incomplete statement or unbalanced delimiters
hbMDFe.prg(432) Error E0030  Syntax error "syntax error at 'END'"
hbMDFe.prg(444) Error E0020  Incomplete statement or unbalanced delimiters
hbMDFe.prg(465) Error E0020  Incomplete statement or unbalanced delimiters
hbMDFe.prg(466) Error E0030  Syntax error "syntax error at 'END'"
hbMDFe.prg(467) Error E0020  Incomplete statement or unbalanced delimiters
hbMDFe.prg(486) Error E0020  Incomplete statement or unbalanced delimiters
hbMDFe.prg(487) Error E0030  Syntax error "syntax error at 'END'"
hbMDFe.prg(581) Error E0020  Incomplete statement or unbalanced delimiters
hbMDFe.prg(584) Warning W0001  Ambiguous reference 'CCI'
hbMDFe.prg(585) Warning W0001  Ambiguous reference 'CCI'
hbMDFe.prg(586) Warning W0001  Ambiguous reference 'CCI'
hbMDFe.prg(587) Error E0020  Incomplete statement or unbalanced delimiters
hbMDFe.prg(589) Warning W0001  Ambiguous reference 'CCCI'
hbMDFe.prg(590) Warning W0001  Ambiguous reference 'CCI'
hbMDFe.prg(590) Warning W0001  Ambiguous reference 'CCCI'
hbMDFe.prg(591) Warning W0001  Ambiguous reference 'CCCI'
hbMDFe.prg(591) Warning W0001  Ambiguous reference 'CCCI'
hbMDFe.prg(591) Warning W0001  Ambiguous reference 'CCI'
hbMDFe.prg(593) Error E0020  Incomplete statement or unbalanced delimiters
hbMDFe.prg(594) Warning W0001  Ambiguous reference 'CCI'
hbMDFe.prg(594) Warning W0001  Ambiguous reference 'CCI'
hbMDFe.prg(595) Error E0020  Incomplete statement or unbalanced delimiters
hbMDFe.prg(597) Warning W0001  Ambiguous reference 'CCCI'
hbMDFe.prg(598) Warning W0001  Ambiguous reference 'CCI'
hbMDFe.prg(598) Warning W0001  Ambiguous reference 'CCCI'
hbMDFe.prg(599) Warning W0001  Ambiguous reference 'CCI'
hbMDFe.prg(599) Warning W0001  Ambiguous reference 'CCCI'
hbMDFe.prg(600) Error E0020  Incomplete statement or unbalanced delimiters
hbMDFe.prg(602) Warning W0001  Ambiguous reference 'CCCCI'
hbMDFe.prg(603) Warning W0001  Ambiguous reference 'CCI'
hbMDFe.prg(603) Warning W0001  Ambiguous reference 'CCCI'
hbMDFe.prg(603) Warning W0001  Ambiguous reference 'CCCI'
hbMDFe.prg(604) Warning W0001  Ambiguous reference 'CCCCI'
hbMDFe.prg(604) Warning W0001  Ambiguous reference 'CCCCI'
hbMDFe.prg(604) Warning W0001  Ambiguous reference 'CCI'
hbMDFe.prg(604) Warning W0001  Ambiguous reference 'CCCI'
hbMDFe.prg(606) Error E0020  Incomplete statement or unbalanced delimiters
hbMDFe.prg(607) Warning W0001  Ambiguous reference 'CCCI'
hbMDFe.prg(607) Warning W0001  Ambiguous reference 'CCCI'
hbMDFe.prg(607) Warning W0001  Ambiguous reference 'CCI'
hbMDFe.prg(608) Error E0030  Syntax error "syntax error at 'NEXT'"
hbMDFe.prg(609) Error E0020  Incomplete statement or unbalanced delimiters
hbMDFe.prg(610) Warning W0001  Ambiguous reference 'CCI'
hbMDFe.prg(610) Warning W0001  Ambiguous reference 'CCCI'
hbMDFe.prg(611) Error E0020  Incomplete statement or unbalanced delimiters
hbMDFe.prg(614) Error E0020  Incomplete statement or unbalanced delimiters
hbMDFe.prg(615) Error E0030  Syntax error "syntax error at 'END'"
hbMDFe.prg(616) Error E0020  Incomplete statement or unbalanced delimiters
hbMDFe.prg(617) Warning W0001  Ambiguous reference 'CCI'
hbMDFe.prg(618) Error E0020  Incomplete statement or unbalanced delimiters
hbMDFe.prg(619) Error E0030  Syntax error "syntax error at 'END'"
hbMDFe.prg(620) Error E0013  NEXT does not match FOR
hbMDFe.prg(622) Error E0030  Syntax error "syntax error at 'ENDIF'"
hbMDFe.prg(623) Error E0020  Incomplete statement or unbalanced delimiters
hbMDFe.prg(624) Error E0030  Syntax error "syntax error at 'END'"
hbMDFe.prg(627) Error E0013  NEXT does not match FOR
hbMDFe.prg(638) Error E0020  Incomplete statement or unbalanced delimiters
hbMDFe.prg(641) Warning W0001  Ambiguous reference 'CCI'
hbMDFe.prg(642) Warning W0001  Ambiguous reference 'CCI'
hbMDFe.prg(643) Warning W0001  Ambiguous reference 'CCI'
hbMDFe.prg(644) Error E0020  Incomplete statement or unbalanced delimiters
hbMDFe.prg(646) Warning W0001  Ambiguous reference 'CCCI'
hbMDFe.prg(647) Warning W0001  Ambiguous reference 'CCI'
hbMDFe.prg(647) Warning W0001  Ambiguous reference 'CCCI'
hbMDFe.prg(648) Warning W0001  Ambiguous reference 'CCCI'
hbMDFe.prg(648) Warning W0001  Ambiguous reference 'CCCI'
hbMDFe.prg(648) Warning W0001  Ambiguous reference 'CCI'
hbMDFe.prg(650) Error E0020  Incomplete statement or unbalanced delimiters
hbMDFe.prg(651) Warning W0001  Ambiguous reference 'CCI'
hbMDFe.prg(651) Warning W0001  Ambiguous reference 'CCI'
hbMDFe.prg(652) Error E0020  Incomplete statement or unbalanced delimiters
hbMDFe.prg(654) Warning W0001  Ambiguous reference 'CCCI'
hbMDFe.prg(655) Warning W0001  Ambiguous reference 'CCI'
hbMDFe.prg(655) Warning W0001  Ambiguous reference 'CCCI'
hbMDFe.prg(656) Warning W0001  Ambiguous reference 'CCI'
hbMDFe.prg(656) Warning W0001  Ambiguous reference 'CCCI'
hbMDFe.prg(657) Error E0020  Incomplete statement or unbalanced delimiters
hbMDFe.prg(659) Warning W0001  Ambiguous reference 'CCCCI'
hbMDFe.prg(660) Warning W0001  Ambiguous reference 'CCI'
hbMDFe.prg(660) Warning W0001  Ambiguous reference 'CCCI'
hbMDFe.prg(660) Warning W0001  Ambiguous reference 'CCCI'
hbMDFe.prg(661) Warning W0001  Ambiguous reference 'CCCCI'
hbMDFe.prg(661) Warning W0001  Ambiguous reference 'CCCCI'
hbMDFe.prg(661) Warning W0001  Ambiguous reference 'CCI'
hbMDFe.prg(661) Warning W0001  Ambiguous reference 'CCCI'
hbMDFe.prg(663) Error E0020  Incomplete statement or unbalanced delimiters
hbMDFe.prg(664) Warning W0001  Ambiguous reference 'CCCI'
hbMDFe.prg(664) Warning W0001  Ambiguous reference 'CCCI'
hbMDFe.prg(664) Warning W0001  Ambiguous reference 'CCI'
hbMDFe.prg(665) Error E0030  Syntax error "syntax error at 'NEXT'"
hbMDFe.prg(666) Error E0020  Incomplete statement or unbalanced delimiters
hbMDFe.prg(667) Warning W0001  Ambiguous reference 'CCI'
hbMDFe.prg(667) Warning W0001  Ambiguous reference 'CCCI'
hbMDFe.prg(668) Error E0020  Incomplete statement or unbalanced delimiters
hbMDFe.prg(669) Error E0030  Syntax error "syntax error at 'END'"
hbMDFe.prg(671) Error E0020  Incomplete statement or unbalanced delimiters
hbMDFe.prg(672) Error E0030  Syntax error "syntax error at 'END'"
hbMDFe.prg(673) Error E0020  Incomplete statement or unbalanced delimiters
hbMDFe.prg(674) Warning W0001  Ambiguous reference 'CCI'
hbMDFe.prg(675) Error E0020  Incomplete statement or unbalanced delimiters
hbMDFe.prg(676) Error E0030  Syntax error "syntax error at 'END'"
hbMDFe.prg(677) Error E0013  NEXT does not match FOR
hbMDFe.prg(679) Error E0030  Syntax error "syntax error at 'ENDIF'"
hbMDFe.prg(680) Error E0020  Incomplete statement or unbalanced delimiters
hbMDFe.prg(681) Error E0030  Syntax error "syntax error at 'END'"
hbMDFe.prg(684) Error E0013  NEXT does not match FOR
hbMDFe.prg(692) Error E0020  Incomplete statement or unbalanced delimiters
hbMDFe.prg(695) Warning W0001  Ambiguous reference 'CCI'
hbMDFe.prg(696) Warning W0001  Ambiguous reference 'CCI'
hbMDFe.prg(697) Warning W0001  Ambiguous reference 'CCI'
hbMDFe.prg(698) Error E0020  Incomplete statement or unbalanced delimiters
hbMDFe.prg(700) Warning W0001  Ambiguous reference 'CCCI'
hbMDFe.prg(701) Warning W0001  Ambiguous reference 'CCI'
hbMDFe.prg(701) Warning W0001  Ambiguous reference 'CCCI'
hbMDFe.prg(702) Warning W0001  Ambiguous reference 'CCCI'
hbMDFe.prg(702) Warning W0001  Ambiguous reference 'CCCI'
hbMDFe.prg(702) Warning W0001  Ambiguous reference 'CCI'
hbMDFe.prg(704) Error E0020  Incomplete statement or unbalanced delimiters
hbMDFe.prg(705) Warning W0001  Ambiguous reference 'CCI'
hbMDFe.prg(705) Warning W0001  Ambiguous reference 'CCI'
hbMDFe.prg(706) Error E0020  Incomplete statement or unbalanced delimiters
hbMDFe.prg(708) Warning W0001  Ambiguous reference 'CCCI'
hbMDFe.prg(709) Warning W0001  Ambiguous reference 'CCI'
hbMDFe.prg(709) Warning W0001  Ambiguous reference 'CCCI'
hbMDFe.prg(710) Warning W0001  Ambiguous reference 'CCI'
hbMDFe.prg(710) Warning W0001  Ambiguous reference 'CCCI'
hbMDFe.prg(711) Error E0020  Incomplete statement or unbalanced delimiters
hbMDFe.prg(713) Warning W0001  Ambiguous reference 'CCCCI'
hbMDFe.prg(714) Warning W0001  Ambiguous reference 'CCI'
hbMDFe.prg(714) Warning W0001  Ambiguous reference 'CCCI'
hbMDFe.prg(714) Warning W0001  Ambiguous reference 'CCCI'
hbMDFe.prg(715) Warning W0001  Ambiguous reference 'CCCCI'
hbMDFe.prg(715) Warning W0001  Ambiguous reference 'CCCCI'
hbMDFe.prg(715) Warning W0001  Ambiguous reference 'CCI'
hbMDFe.prg(715) Warning W0001  Ambiguous reference 'CCCI'
hbMDFe.prg(717) Error E0020  Incomplete statement or unbalanced delimiters
hbMDFe.prg(718) Warning W0001  Ambiguous reference 'CCCI'
hbMDFe.prg(718) Warning W0001  Ambiguous reference 'CCCI'
hbMDFe.prg(718) Warning W0001  Ambiguous reference 'CCI'
hbMDFe.prg(719) Error E0030  Syntax error "syntax error at 'NEXT'"
hbMDFe.prg(720) Error E0020  Incomplete statement or unbalanced delimiters
hbMDFe.prg(721) Warning W0001  Ambiguous reference 'CCI'
hbMDFe.prg(721) Warning W0001  Ambiguous reference 'CCCI'
hbMDFe.prg(722) Error E0020  Incomplete statement or unbalanced delimiters
hbMDFe.prg(723) Error E0030  Syntax error "syntax error at 'END'"
hbMDFe.prg(725) Error E0020  Incomplete statement or unbalanced delimiters
hbMDFe.prg(726) Error E0030  Syntax error "syntax error at 'END'"
hbMDFe.prg(727) Error E0020  Incomplete statement or unbalanced delimiters
hbMDFe.prg(728) Warning W0001  Ambiguous reference 'CCI'
hbMDFe.prg(729) Error E0020  Incomplete statement or unbalanced delimiters
hbMDFe.prg(730) Error E0030  Syntax error "syntax error at 'END'"
hbMDFe.prg(731) Error E0013  NEXT does not match FOR
hbMDFe.prg(733) Error E0030  Syntax error "syntax error at 'ENDIF'"
hbMDFe.prg(734) Error E0020  Incomplete statement or unbalanced delimiters
hbMDFe.prg(735) Error E0030  Syntax error "syntax error at 'END'"
hbMDFe.prg(738) Error E0013  NEXT does not match FOR
hbMDFe.prg(751) Error E0020  Incomplete statement or unbalanced delimiters
hbMDFe.prg(754) Warning W0001  Ambiguous reference 'CCI'
hbMDFe.prg(755) Warning W0001  Ambiguous reference 'CCI'
hbMDFe.prg(756) Warning W0001  Ambiguous reference 'CCI'
hbMDFe.prg(757) Error E0020  Incomplete statement or unbalanced delimiters
hbMDFe.prg(759) Warning W0001  Ambiguous reference 'CCCI'
hbMDFe.prg(760) Warning W0001  Ambiguous reference 'CCI'
hbMDFe.prg(760) Warning W0001  Ambiguous reference 'CCCI'
hbMDFe.prg(761) Warning W0001  Ambiguous reference 'CCCI'
hbMDFe.prg(761) Warning W0001  Ambiguous reference 'CCCI'
hbMDFe.prg(761) Warning W0001  Ambiguous reference 'CCI'
hbMDFe.prg(763) Error E0020  Incomplete statement or unbalanced delimiters
hbMDFe.prg(764) Warning W0001  Ambiguous reference 'CCI'
hbMDFe.prg(764) Warning W0001  Ambiguous reference 'CCI'
hbMDFe.prg(765) Error E0020  Incomplete statement or unbalanced delimiters
hbMDFe.prg(767) Warning W0001  Ambiguous reference 'CCCI'
hbMDFe.prg(768) Warning W0001  Ambiguous reference 'CCI'
hbMDFe.prg(768) Warning W0001  Ambiguous reference 'CCCI'
hbMDFe.prg(769) Warning W0001  Ambiguous reference 'CCI'
hbMDFe.prg(769) Warning W0001  Ambiguous reference 'CCCI'
hbMDFe.prg(770) Error E0020  Incomplete statement or unbalanced delimiters
hbMDFe.prg(772) Warning W0001  Ambiguous reference 'CCCCI'
hbMDFe.prg(773) Warning W0001  Ambiguous reference 'CCI'
hbMDFe.prg(773) Warning W0001  Ambiguous reference 'CCCI'
hbMDFe.prg(773) Warning W0001  Ambiguous reference 'CCCI'
hbMDFe.prg(774) Warning W0001  Ambiguous reference 'CCCCI'
hbMDFe.prg(774) Warning W0001  Ambiguous reference 'CCCCI'
hbMDFe.prg(774) Warning W0001  Ambiguous reference 'CCI'
hbMDFe.prg(774) Warning W0001  Ambiguous reference 'CCCI'
hbMDFe.prg(776) Error E0020  Incomplete statement or unbalanced delimiters
hbMDFe.prg(777) Warning W0001  Ambiguous reference 'CCCI'
hbMDFe.prg(777) Warning W0001  Ambiguous reference 'CCCI'
hbMDFe.prg(777) Warning W0001  Ambiguous reference 'CCI'
hbMDFe.prg(778) Error E0030  Syntax error "syntax error at 'NEXT'"
hbMDFe.prg(779) Error E0020  Incomplete statement or unbalanced delimiters
hbMDFe.prg(780) Warning W0001  Ambiguous reference 'CCI'
hbMDFe.prg(780) Warning W0001  Ambiguous reference 'CCCI'
hbMDFe.prg(781) Error E0020  Incomplete statement or unbalanced delimiters
hbMDFe.prg(782) Error E0030  Syntax error "syntax error at 'END'"
hbMDFe.prg(784) Error E0020  Incomplete statement or unbalanced delimiters
hbMDFe.prg(785) Error E0030  Syntax error "syntax error at 'END'"
hbMDFe.prg(786) Error E0020  Incomplete statement or unbalanced delimiters
hbMDFe.prg(787) Warning W0001  Ambiguous reference 'CCI'
hbMDFe.prg(788) Error E0020  Incomplete statement or unbalanced delimiters
hbMDFe.prg(789) Error E0030  Syntax error "syntax error at 'END'"
hbMDFe.prg(790) Error E0013  NEXT does not match FOR
hbMDFe.prg(792) Error E0030  Syntax error "syntax error at 'ENDIF'"
hbMDFe.prg(793) Error E0020  Incomplete statement or unbalanced delimiters
hbMDFe.prg(794) Error E0030  Syntax error "syntax error at 'END'"
hbMDFe.prg(797) Error E0013  NEXT does not match FOR
hbMDFe.prg(799) Error E0013  NEXT does not match FOR
hbMDFe.prg(814) Error E0017  Unclosed control structure 'IF'
hbMDFe.prg(874) Error E0020  Incomplete statement or unbalanced delimiters
hbMDFe.prg(878) Error E0020  Incomplete statement or unbalanced delimiters
hbMDFe.prg(880) Error E0020  Incomplete statement or unbalanced delimiters
hbMDFe.prg(884) Error E0020  Incomplete statement or unbalanced delimiters
hbMDFe.prg(885) Error E0030  Syntax error "syntax error at 'END'"
hbMDFe.prg(887) Error E0010  ENDIF does not match IF
hbMDFe.prg(973) Error E0020  Incomplete statement or unbalanced delimiters
hbMDFe.prg(979) Error E0020  Incomplete statement or unbalanced delimiters
hbMDFe.prg(982) Error E0030  Syntax error "syntax error at 'END'"
hbMDFe.prg(983) Warning W0028  Unreachable code
hbMDFe.prg(990) Error E0020  Incomplete statement or unbalanced delimiters
hbMDFe.prg(996) Error E0020  Incomplete statement or unbalanced delimiters
hbMDFe.prg(999) Error E0030  Syntax error "syntax error at 'END'"
hbMDFe.prg(1002) Warning W0028  Unreachable code
hbMDFe.prg(1035) Error E0020  Incomplete statement or unbalanced delimiters
hbMDFe.prg(1037) Error E0030  Syntax error "syntax error at 'OERROR'"
hbMDFe.prg(1043) Warning W0001  Ambiguous reference 'OERROR'
hbMDFe.prg(1043) Warning W0001  Ambiguous reference 'OERROR'
hbMDFe.prg(1043) Warning W0001  Ambiguous reference 'OERROR'
hbMDFe.prg(1043) Warning W0001  Ambiguous reference 'OERROR'
hbMDFe.prg(1043) Warning W0001  Ambiguous reference 'OERROR'
hbMDFe.prg(1045) Error E0030  Syntax error "syntax error at 'END'"
hbMDFe.prg(1048) Error E0020  Incomplete statement or unbalanced delimiters
hbMDFe.prg(1049) Warning W0028  Unreachable code
hbMDFe.prg(1050) Error E0030  Syntax error "syntax error at 'OERROR'"
hbMDFe.prg(1056) Warning W0001  Ambiguous reference 'OERROR'
hbMDFe.prg(1056) Warning W0001  Ambiguous reference 'OERROR'
hbMDFe.prg(1056) Warning W0001  Ambiguous reference 'OERROR'
hbMDFe.prg(1056) Warning W0001  Ambiguous reference 'OERROR'
hbMDFe.prg(1056) Warning W0001  Ambiguous reference 'OERROR'
hbMDFe.prg(1058) Error E0030  Syntax error "syntax error at 'END'"
hbMDFe.prg(1059) Warning W0028  Unreachable code
hbMDFe.prg(1062) Error E0020  Incomplete statement or unbalanced delimiters
hbMDFe.prg(1064) Error E0020  Incomplete statement or unbalanced delimiters
hbMDFe.prg(1067) Error E0030  Syntax error "syntax error at 'END'"
hbMDFe.prg(1068) Warning W0028  Unreachable code
hbMDFe.prg(1074) Error E0020  Incomplete statement or unbalanced delimiters
hbMDFe.prg(1076) Error E0020  Incomplete statement or unbalanced delimiters
hbMDFe.prg(1079) Error E0030  Syntax error "syntax error at 'END'"
hbMDFe.prg(1080) Warning W0028  Unreachable code
hbMDFe.prg(1094) Error E0021  Incorrect number of arguments in AT
Passed: 3, expected: 2
hbMDFe.prg(1135) Error E0020  Incomplete statement or unbalanced delimiters
hbMDFe.prg(1137) Error E0020  Incomplete statement or unbalanced delimiters
hbMDFe.prg(1140) Error E0030  Syntax error "syntax error at 'END'"
hbMDFe.prg(1142) Error E0020  Incomplete statement or unbalanced delimiters
hbMDFe.prg(1143) Warning W0028  Unreachable code
hbMDFe.prg(1147) Error E0020  Incomplete statement or unbalanced delimiters
hbMDFe.prg(1150) Error E0030  Syntax error "syntax error at 'END'"
hbMDFe.prg(1151) Warning W0028  Unreachable code
hbMDFe.prg(1160) Error E0020  Incomplete statement or unbalanced delimiters
hbMDFe.prg(1162) Error E0020  Incomplete statement or unbalanced delimiters
hbMDFe.prg(1165) Error E0030  Syntax error "syntax error at 'END'"
hbMDFe.prg(1167) Warning W0028  Unreachable code
hbMDFe.prg(1186) Error E0020  Incomplete statement or unbalanced delimiters
hbMDFe.prg(1192) Error E0030  Syntax error "syntax error at 'OERROR'"
hbMDFe.prg(1198) Warning W0001  Ambiguous reference 'OERROR'
hbMDFe.prg(1198) Warning W0001  Ambiguous reference 'OERROR'
hbMDFe.prg(1198) Warning W0001  Ambiguous reference 'OERROR'
hbMDFe.prg(1198) Warning W0001  Ambiguous reference 'OERROR'
hbMDFe.prg(1198) Warning W0001  Ambiguous reference 'OERROR'
hbMDFe.prg(1200) Error E0030  Syntax error "syntax error at 'END'"
hbMDFe.prg(1202) Warning W0028  Unreachable code
hbMDFe.prg(1236) Error E0020  Incomplete statement or unbalanced delimiters
hbMDFe.prg(1238) Error E0020  Incomplete statement or unbalanced delimiters
hbMDFe.prg(1239) Error E0030  Syntax error "syntax error at 'END'"
hbMDFe.prg(1254) Error E0020  Incomplete statement or unbalanced delimiters
hbMDFe.prg(1260) Error E0020  Incomplete statement or unbalanced delimiters
hbMDFe.prg(1263) Error E0030  Syntax error "syntax error at 'END'"
hbMDFe.prg(1265) Warning W0028  Unreachable code
hbMDFe.prg(1270) Error E0020  Incomplete statement or unbalanced delimiters
hbMDFe.prg(1271) Warning W0001  Ambiguous reference 'ODOMDOC'
hbMDFe.prg(1272) Warning W0001  Ambiguous reference 'ODOMDOC'
hbMDFe.prg(1273) Warning W0001  Ambiguous reference 'ODOMDOC'
hbMDFe.prg(1274) Warning W0001  Ambiguous reference 'ODOMDOC'
hbMDFe.prg(1275) Warning W0001  Ambiguous reference 'ODOMDOC'
hbMDFe.prg(1276) Warning W0001  Ambiguous reference 'ODOMDOC'
hbMDFe.prg(1277) Error E0020  Incomplete statement or unbalanced delimiters
hbMDFe.prg(1280) Error E0030  Syntax error "syntax error at 'END'"
hbMDFe.prg(1281) Warning W0028  Unreachable code
hbMDFe.prg(1281) Warning W0001  Ambiguous reference 'ODOMDOC'
hbMDFe.prg(1286) Warning W0001  Ambiguous reference 'ODOMDOC'
hbMDFe.prg(1286) Warning W0001  Ambiguous reference 'ODOMDOC'
hbMDFe.prg(1286) Warning W0001  Ambiguous reference 'ODOMDOC'
hbMDFe.prg(1286) Warning W0001  Ambiguous reference 'ODOMDOC'
hbMDFe.prg(1290) Error E0020  Incomplete statement or unbalanced delimiters
hbMDFe.prg(1291) Warning W0001  Ambiguous reference 'ODOMDOC'
hbMDFe.prg(1292) Error E0030  Syntax error "syntax error at 'E'"
hbMDFe.prg(1298) Warning W0001  Ambiguous reference 'E'
hbMDFe.prg(1298) Warning W0001  Ambiguous reference 'E'
hbMDFe.prg(1298) Warning W0001  Ambiguous reference 'E'
hbMDFe.prg(1298) Warning W0001  Ambiguous reference 'E'
hbMDFe.prg(1298) Warning W0001  Ambiguous reference 'E'
hbMDFe.prg(1300) Error E0030  Syntax error "syntax error at 'END'"
hbMDFe.prg(1301) Warning W0028  Unreachable code
hbMDFe.prg(1380) Warning W0003  Variable 'OSERVERWS' declared but not used in function 'HBMDFE_RECEPCAOMDFE(1316)'
hbMDFe.prg(1380) Warning W0003  Variable 'ODOMDOC' declared but not used in function 'HBMDFE_RECEPCAOMDFE(1316)'
hbMDFe.prg(1380) Warning W0003  Variable 'E' declared but not used in function 'HBMDFE_RECEPCAOMDFE(1316)'
hbMDFe.prg(1380) Warning W0032  Variable 'CCERT' is assigned but not used in function 'HBMDFE_RECEPCAOMDFE(1318)'
hbMDFe.prg(1380) Warning W0032  Variable 'CURLWS' is assigned but not used in function 'HBMDFE_RECEPCAOMDFE(1318)'
hbMDFe.prg(1380) Warning W0032  Variable 'CXMLRESP' is assigned but not used in function 'HBMDFE_RECEPCAOMDFE(1318)'
hbMDFe.prg(1468) Warning W0032  Variable 'CXMLRESP' is assigned but not used in function 'HBMDFE_RETRECEPCAOMDFE(1386)'
hbMDFe.prg(1580) Warning W0032  Variable 'CXMLRESP' is assigned but not used in function 'HBMDFE_CONSULTAMDF(1474)'
hbMDFe.prg(1580) Warning W0032  Variable 'CXMLINFPROT' is assigned but not used in function 'HBMDFE_CONSULTAMDF(1474)'
hbMDFe.prg(1580) Warning W0032  Variable 'CXMLEVENTOMDFE' is assigned but not used in function 'HBMDFE_CONSULTAMDF(1474)
'
hbMDFe.prg(1580) Warning W0032  Variable 'CXMLEVCANCMDFE' is assigned but not used in function 'HBMDFE_CONSULTAMDF(1474)
'
hbMDFe.prg(1580) Warning W0032  Variable 'CXMLRETEVENTOMDFE' is assigned but not used in function 'HBMDFE_CONSULTAMDF(14
74)'
hbMDFe.prg(1634) Warning W0001  Method <MDFeEvento(cXMLeve)> not declared or declaration mismatch in class <hbMDFe>
hbMDFe.prg(1634) Warning W0032  Variable 'CXMLRESP' is assigned but not used in function 'HBMDFE_STATUSSERVICO(1586)'
hbMDFe.prg(1730) Warning W0001  Ambiguous reference 'CXMLRESP'
hbMDFe.prg(1735) Warning W0001  Ambiguous reference 'CXMLRESP'
hbMDFe.prg(1737) Warning W0001  Ambiguous reference 'CXMLRESP'
hbMDFe.prg(1737) Warning W0001  Ambiguous reference 'CXMLRESP'
hbMDFe.prg(1738) Warning W0001  Ambiguous reference 'CXMLRESP'
hbMDFe.prg(1739) Warning W0001  Ambiguous reference 'CXMLRESP'
hbMDFe.prg(1740) Warning W0001  Ambiguous reference 'CXMLRESP'
hbMDFe.prg(1741) Warning W0001  Ambiguous reference 'CXMLRESP'
hbMDFe.prg(1742) Warning W0001  Ambiguous reference 'CXMLRESP'
hbMDFe.prg(1743) Warning W0001  Ambiguous reference 'CXMLRESP'
hbMDFe.prg(1744) Warning W0001  Ambiguous reference 'CXMLRESP'
hbMDFe.prg(1745) Warning W0001  Ambiguous reference 'CXMLRESP'
hbMDFe.prg(1746) Warning W0001  Ambiguous reference 'CXMLRESP'
hbMDFe.prg(1747) Warning W0001  Ambiguous reference 'CXMLRESP'
hbMDFe.prg(1748) Warning W0001  Ambiguous reference 'CXMLRESP'
hbMDFe.prg(1749) Warning W0001  Ambiguous reference 'CXMLRESP'
hbMDFe.prg(1831) Warning W0032  Variable 'CXMLRESP' is assigned but not used in function 'HBMDFE_MDFECANCELA(1760)'
hbMDFe.prg(1889) Warning W0001  Ambiguous reference 'CXMLRESP'
hbMDFe.prg(1890) Warning W0001  Ambiguous reference 'CXMLRESP'
hbMDFe.prg(1890) Warning W0001  Ambiguous reference 'CXMLRESP'
hbMDFe.prg(1892) Warning W0001  Ambiguous reference 'CXMLRESP'
hbMDFe.prg(1893) Warning W0001  Ambiguous reference 'CXMLRESP'
hbMDFe.prg(1894) Warning W0001  Ambiguous reference 'CXMLRESP'
hbMDFe.prg(1896) Warning W0001  Ambiguous reference 'CXMLRESP'
hbMDFe.prg(1897) Warning W0001  Ambiguous reference 'CXMLRESP'
hbMDFe.prg(1898) Warning W0001  Ambiguous reference 'CXMLRESP'
hbMDFe.prg(1899) Warning W0001  Ambiguous reference 'CXMLRESP'
hbMDFe.prg(1900) Warning W0001  Ambiguous reference 'CXMLRESP'
hbMDFe.prg(1901) Warning W0001  Ambiguous reference 'CXMLRESP'
hbMDFe.prg(1902) Warning W0001  Ambiguous reference 'CXMLRESP'
hbMDFe.prg(1903) Warning W0001  Ambiguous reference 'CXMLRESP'
hbMDFe.prg(1989) Warning W0001  Ambiguous reference 'NSCAN'
hbMDFe.prg(1990) Warning W0001  Ambiguous reference 'NSCAN'
hbMDFe.prg(1991) Warning W0001  Ambiguous reference 'NSCAN'
166 errors

No code generated.
hbmk2 [hbnfe]: Error: Running Harbour compiler. 1
d:\harbour\bin\harbour.exe -n hbMDFe.prg -DHBMK_HAS_HBWIN=1 -DHBMK_HAS_LIBHPDF=1 -DHBMK_HAS_HBHPDF=1 -DHBMK_HAS_HBZEBRA=
1 -DHBMK_HAS_HBCT=1 -DHBMK_HAS_HBTIP=1 -DHBMK_HAS_HBFSHIP=1 -DHBMK_HAS_HBXPP=1 -DHBMK_HAS_XHB=1 -w3 -es2 -o.hbmk\win\msvc\ -id:\harbour\include -id:\harbour\contrib\hbwin -id:\harbour\contrib\hbhpdf -id:\harbour\contrib\hbzebra -id:\harbour\contrib\xhb -id:\harbour\contrib\hbct -id:\harbour\contrib\hbtip -id:\harbour\contrib\hbfship -id:\harbour\contrib\hbxpp -u+d:\harbour\contrib\hbwin\hbwin.ch -u+d:\harbour\contrib\hbhpdf\harupdf.ch -u+d:\harbour\contrib\hbzebra\hbzebra.ch
c.bat

Código: Selecionar todos

copy ..\include\*.ch .
copy \harbour\include\hbcompat.ch
hbmk2 hbnfe -xhb
del *.ch
hbnfe.hbp

Código: Selecionar todos

*.prg

hbwin.hbc
hbhpdf.hbc
hbzebra.hbc
xhb.hbc
-w3
-es2
-inc
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
sygecom
Administrador
Administrador
Mensagens: 7131
Registrado em: 21 Jul 2006 10:12
Localização: Alvorada-RS
Contato:

Remodelar hbnfe pra aceitar NFE, CTE, MDFE, e tudo mais

Mensagem por sygecom »

José,
Se você acresentar as linhas abaixo no HBNFE.CH, deve resolver. Isso foi feito para deixar compativel com algumas funcionalidades do xHarbour
#ifdef __HARBOUR__
#include "hbcompat.ch"
#endif

ou
#xcommand TRY => BEGIN SEQUENCE WITH {| oErr | Break( oErr ) }
#xcommand CATCH [<!oErr!>] => RECOVER [USING <oErr>] <-oErr->
#xcommand FINALLY => ALWAYS
Leonardo Machado
xHarbour.org + Hwgui + PostgreSql
Avatar do usuário
JoséQuintas
Administrador
Administrador
Mensagens: 20267
Registrado em: 26 Fev 2007 11:59
Localização: São Paulo-SP

Remodelar hbnfe pra aceitar NFE, CTE, MDFE, e tudo mais

Mensagem por JoséQuintas »

Só pra deixar este tópico com o resultado:
usei xhb.hbc
Resolveu o try/catch, mas não outras coisas, que foram resolvidas de outro jeito.
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/
Responder