syspel Posted March 10, 2014 Report Share Posted March 10, 2014 ola pessoal eu tenho uma classe do gilmer que busca a chave da nota fiscal eletronica da sefaz do xml ate algums dias atras estava funciononado normal agora da este erro pplication=========== Path and name: C:\fatto\Fiscal.exe (32 bits) Size: 6,791,168 bytes Time from start: 0 hours 3 mins 6 secs Error occurred at: 10/03/2014, 16:39:48 Error description: Error BASE/1004 Class: 'NIL' has no exported method: INNERHTML Args: [ 1] = U Stack Calls=========== Called from: => INNERHTML(0) Called from: voconsefaz.prg => TVOCONSULTASEFAZ:TOTALDUPLICATAS(356) Called from: voconsefaz.prg => TVOCONSULTASEFAZ:DOWNLOADHTML2XML(101) Called from: sefaz3.prg => NFESSS(96) Called from: sefaz3.prg => (b)SEFAZ102(63) Called from: btnbmp.prg => TBTNBMP:CLICK(464) Called from: btnbmp.prg => TBTNBMP:LBUTTONUP(660) Called from: => TWINDOW:HANDLEEVENT(0) Called from: .\source\classes\CONTROL.PRG => TCONTROL:HANDLEEVENT(1469) Called from: btnbmp.prg => TBTNBMP:HANDLEEVENT(1417) Called from: window.prg => _FWH(3353) Called from: => DIALOGBOXINDIRECT(0) Called from: dialog.prg => TDIALOG:ACTIVATE(253) Called from: sefaz3.prg => SEFAZ102(77) Called from: fiscal.prg => (b)BUILDMENU(495) Called from: .\source\classes\MENU.PRG => TMENU:COMMAND(437) Called from: window.prg => TWINDOW:COMMAND(1017) Called from: => TWINDOW:HANDLEEVENT(0) Called from: window.prg => _FWH(3353) Called from: => WINRUN(0) Called from: window.prg => TWINDOW:ACTIVATE(966) Called from: fiscal.prg => FISCAL(203) alguem sabe deste ja obrigado Carlos FWH XHARBOUR 1.21 DBF Quote Link to comment Share on other sites More sharing options...
ecmsoft Posted March 11, 2014 Report Share Posted March 11, 2014 Houve uma mudança no HTML da página do portal nacional. Eu tive que fazer uma alteração na classe do Gilmer para funcionar com o novo HTML. Quote Link to comment Share on other sites More sharing options...
crisvam Posted March 12, 2014 Report Share Posted March 12, 2014 ecmsoft, Você poderia postar a modificação, no forum? se não for possível, como posso ter acesso a elas. Eu tenho a Classe também, mas estou mais perdido que cego em tiroteio. Desde já agradeço. Quote Link to comment Share on other sites More sharing options...
ecmsoft Posted March 12, 2014 Report Share Posted March 12, 2014 As mudanças que eu fiz na classe, são substanciais. Não posso publicar a classe, pois não é gratuita. Além, do mais, não sei se a versão da classe que tenho é a única, ou tem alguma mais nova. Se o Gilmer autorizar, eu posso publicar aqui no fórum. Quote Link to comment Share on other sites More sharing options...
crisvam Posted March 12, 2014 Report Share Posted March 12, 2014 Olô Gilmer, Você fez as modificações da classe Tvoconsultasefaz, para nova mudança do html? Se não, e se não vai mais dar suporte, poderia autorizar ao ecmsoft publicar as modificaçãos que ele fez para a classe continuar funcionando? Aguardamos seu posicionamento, porque, no meu caso isto se tornou uma necessidade premente, visto que facilita em muito a vida dos clientes . Grato pela atenção. Quote Link to comment Share on other sites More sharing options...
syspel Posted March 12, 2014 Author Report Share Posted March 12, 2014 eu tenho a classe do gilmer eu preciso saber aonde que mudou para eu fazer as alteração no endereco falei com o gilmer ele disse que esta meio esroscado para me falar aonde tem que mudar alguém pode me arrudar obrigado carlos Quote Link to comment Share on other sites More sharing options...
sistem Posted March 17, 2014 Report Share Posted March 17, 2014 syspel começei a alterar voconsefaz.prg e ta 90% alterado amanha devo concluir, vc sabe se eh possivel publicar aqui as alteracoes? caso o gilmer permitir eu coloco as alteraçoes aqui, []'s Quote Link to comment Share on other sites More sharing options...
syspel Posted March 18, 2014 Author Report Share Posted March 18, 2014 obrigado carlos da syspel Quote Link to comment Share on other sites More sharing options...
sistem Posted March 18, 2014 Report Share Posted March 18, 2014 irei pôr o codigo onde foi alterado: em primeiro lugar faça uma copia do seu PRG depois alterar as ID (subistituir) ContentPlaceHolder1_tcnConsultaCompleta_tpnNFe <PARA> tabelaSuperior ContentPlaceHolder1_tcnConsultaCompleta_tpnTotais <PARA> Totais Depois subistituir o codigo: for f:=1 to nTotalProd oItem := TVoNFeProd() WITH OBJECT oItem ---- --- -- POR ESTE: cHtmlProd := Alltrim(::cBoDyHtml) nLinhaLidas := LinhaLidas("prod-serv-descricao", cHtmlProd) nLinhaTam := Len(cHtmlProd) nSizeCont := nLinhaTam-nLinhaLidas cHtmlProd := Right(cHtmlProd, nSizeCont) Do While .t. nLinhaLidas := LinhaLidas("prod-serv-descricao", cHtmlProd) If nLinhaLidas > 0 oItem := TVoNFeProd() WITH OBJECT oItem :cProd := CapProd("Código do Produto</LABEL><SPAN class=linha>", cHtmlProd) :cEAN := CapProd("Código EAN Comercial</LABEL><SPAN class=linha>", cHtmlProd) :xProd := CapProd("prod-serv-descricao><SPAN class=multiline>", cHtmlProd) :NCM := CapProd("Código NCM</LABEL><SPAN class=linha>", cHtmlProd) :CFOP := CapProd("CFOP</LABEL><SPAN class=linha>", cHtmlProd) :uCom := CapProd("Unidade Comercial</LABEL><SPAN class=linha>", cHtmlProd) :qCom := CapProd("Quantidade Comercial</LABEL><SPAN class=linha>", cHtmlProd) :vUnCom := CapProd("Valor unitário de comercialização</LABEL><SPAN class=linha>", cHtmlProd) :vProd := CapProd("prod-serv-vb><SPAN>", cHtmlProd) :cEANTrib := CapProd("Código EAN Tributável</LABEL><SPAN class=linha>", cHtmlProd) :uTrib := CapProd("Unidade Tributável</LABEL><SPAN class=linha>", cHtmlProd) :qTrib := CapProd("Quantidade Tributável</LABEL><SPAN class=linha>", cHtmlProd) :vUnTrib := CapProd("Valor unitário de tributação</LABEL><SPAN class=linha>", cHtmlProd) --- --- --- // VEJA QUE ESTA INCOMPLETO FALTAS ALGUNS DADOS DO ITENS, vc pode configurar o restante com o arquivo LOG.TXT .. END ::oNFe:AddItem( oItem ) nLinhaLidas := LinhaLidas("Modalidade Definição da BC ICMS NORMAL</LABEL><SPAN class=linha>", cHtmlProd) nLinhaTam := Len(cHtmlProd) nSizeCont := nLinhaTam-nLinhaLidas cHtmlProd := Right(cHtmlProd, nSizeCont) Else Exit Endif Enddo ADD AS FUNCOES: //------------------------------------------------------ Static Function CapProd(cCont, cHtmlProd) Local nPosIni := At(cCont, cHtmlProd), nPosFim:=0, x1:=0, cRet nPosIni := nPosIni+Len(cCont) Do while .t. x1++ If Substr(cHtmlProd, nPosIni+x1, 1) == "<" nPosFim := nPosIni+x1 nPosFim := nPosFim - nPosIni exit Endif Enddo If nPosIni==0 .or. nPosFim==0 Return nil Endif Return Subs(cHtmlProd, nPosIni, nPosFim) //------------------------------------------------------ Static Function LinhaLidas(cCont, cHtmlProd) If At(cCont, cHtmlProd) = 0 nRet:=0 Else nRet := At(cCont, cHtmlProd)+Len(cCont) Endif Return nRet //----------------------------- COLOCAR a variavel lDebug para TRUE para abilitar o log.txt para que vc possa continuar o desenvolvimento do itens do produto, pois estou com pouco tempo... Data lDebug INIT .t. qualquer duvida. Quote Link to comment Share on other sites More sharing options...
crisvam Posted March 19, 2014 Report Share Posted March 19, 2014 Sistem,, Testei as substituições que vc postou, beleza, leu o xml e mostra a nota, mas ela vem sem alguns dados, por exemplo: ao nº da nota, a data de emissão... Descobri també que se ao inves de tabelaSuperior, usar NFE, dar o mesmo resultado. Vamos ver aonde consigo chegar. Grato pela atenção. Quote Link to comment Share on other sites More sharing options...
sistem Posted March 20, 2014 Report Share Posted March 20, 2014 ::oNFe:SetValue("ide" , 'serie' , ::GetInfHtml("N",,"Série",, ::oIE:document:getElementById("NFe"):InnerHTML) ) ::oNFe:SetValue("ide" , 'nNF' , ::GetInfHtml("N",,"Número",,::oIE:document:getElementById("NFe"):InnerHTML) ) ::oNFe:SetValue("ide" , 'dEmi' , ::GetInfHtml("D",,"Data de emissão",, ::oIE:document:getElementById("NFe"):InnerHTML) ) .. ... .... ... cHtmlProd := Alltrim(::cBoDyHtml) cHtmlProdDup := Alltrim(::cBoDyHtml) nLinhaLidas := LinhaLidas("prod-serv-descricao", cHtmlProd) nLinhaTam := Len(cHtmlProd) nSizeCont := nLinhaTam-nLinhaLidas cHtmlProd := Right(cHtmlProd, nSizeCont) Do While .t. nLinhaLidas := LinhaLidas("prod-serv-descricao", cHtmlProd) If nLinhaLidas > 0 oItem := TVoNFeProd() WITH OBJECT oItem :cProd := CapProd("Código do Produto</LABEL><SPAN class=linha>", cHtmlProd) :cEAN := CapProd("Código EAN Comercial</LABEL><SPAN class=linha>", cHtmlProd) :xProd := CapProd("prod-serv-descricao><SPAN class=multiline>", cHtmlProd) :NCM := CapProd("Código NCM</LABEL><SPAN class=linha>", cHtmlProd) :CFOP := CapProd("CFOP</LABEL><SPAN class=linha>", cHtmlProd) :uCom := CapProd("Unidade Comercial</LABEL><SPAN class=linha>", cHtmlProd) :qCom := CapProd("Quantidade Comercial</LABEL><SPAN class=linha>", cHtmlProd) :vUnCom := CapProd("Valor unitário de comercialização</LABEL><SPAN class=linha>", cHtmlProd) :vProd := CapProd("prod-serv-vb><SPAN>", cHtmlProd) :cEANTrib := CapProd("Código EAN Tributável</LABEL><SPAN class=linha>", cHtmlProd) // :EXTIPI := CapProd("Código EX da TIPI</LABEL><SPAN class=linha>") // :genero := CapProd("Gênero</LABEL><SPAN class=linha>") // :vOutro := CapProd("Outras Despesas Acessórias</LABEL><SPAN class=linha>") :uTrib := CapProd("Unidade Tributável</LABEL><SPAN class=linha>", cHtmlProd) :qTrib := CapProd("Quantidade Tributável</LABEL><SPAN class=linha>", cHtmlProd) :vUnTrib := CapProd("Valor unitário de tributação</LABEL><SPAN class=linha>", cHtmlProd) :vFrete := CapProd("Valor Total do Frete</LABEL><SPAN class=linha>", cHtmlProd) :vSeg := CapProd("Valor do Seguro</LABEL><SPAN class=linha>", cHtmlProd) :vDesc := CapProd("Valor do Desconto</LABEL><SPAN class=linha>", cHtmlProd) :indTot := Left(CapProd("Indicador de Composição do Valor Total da NF-e </LABEL><SPAN class=linha>", cHtmlProd),1) // :csosn := // :pCredSN := // :vCredICMSSN := // :cST_IPI := // :vBcIPI := // :pIPI := // :vIPI := :orig := Left(CapProd("Origem da Mercadoria</LABEL><SPAN class=linha>", cHtmlProd),1) :cCST := Left(CapProd("Tributação do ICMS</LABEL><SPAN class=multiline>", cHtmlProd),2) :ModBC := Left(CapProd("Modalidade Definição da BC ICMS NORMAL</LABEL><SPAN class=linha>", cHtmlProd),1) :vBC := CapProd("Base de Cálculo do ICMS Normal</LABEL><SPAN class=linha>", cHtmlProd) :pIcms := CapProd("Alíquota do ICMS Normal</LABEL><SPAN class=linha>", cHtmlProd) :vIcms := CapProd("Valor do ICMS Normal</LABEL><SPAN class=linha>", cHtmlProd) :CST_Pis := Left(CapProd("CST</LABEL><SPAN class=multiline>", cHtmlProd),2) :vBC_Pis := CapProd("Base de Cálculo</LABEL><SPAN class=linha>", cHtmlProd) :pPIS := CapProd("Alíquota</LABEL><SPAN class=linha>", cHtmlProd) :vPIS := CapProd("Valor</LABEL><SPAN class=linha>", cHtmlProd) nLinhaLidas:=LinhaLidas("COFINS</LEGEND>", cHtmlProd); nLinhaTam:=Len(cHtmlProd); nSizeCont:=nLinhaTam-nLinhaLidas; cHtmlProd:=Right(cHtmlProd, nSizeCont) :CST_Cofins := Left(CapProd("CST</LABEL><SPAN class=multiline>", cHtmlProd), 2) :vBC_Cofins := CapProd("Base de Cálculo</LABEL><SPAN class=linha>", cHtmlProd) :pCofins := CapProd("Alíquota</LABEL><SPAN class=linha>", cHtmlProd) :vCofins := CapProd("Valor</LABEL><SPAN class=linha>", cHtmlProd) END ::oNFe:AddItem( oItem ) nLinhaLidas := LinhaLidas("COFINS</LEGEND>", cHtmlProd); nLinhaTam:=Len(cHtmlProd); nSizeCont:=nLinhaTam-nLinhaLidas; cHtmlProd := Right(cHtmlProd, nSizeCont) Else Exit Endif Enddo cHtml:=::cBodyDuplicatas nLinhaLidas := LinhaLidas("Duplicatas", cHtmlProdDup); nLinhaTam:=Len(cHtmlProdDup); nSizeCont:=nLinhaTam-nLinhaLidas; cHtmlProdDup := Right(cHtmlProdDup, nSizeCont) cHtmlProdDup := Left(cHtmlProdDup, LinhaLidas("id=Inf", cHtmlProdDup)) Do While .t. nLinhaLidas := LinhaLidas("linha>", cHtmlProdDup) If nLinhaLidas > 0 oItem := TVoNFeDupl() WITH OBJECT oItem :nDup := CapProd("linha>", cHtmlProdDup) nLinhaLidas := LinhaLidas("</SPAN>", cHtmlProdDup) cHtmlProdDup := Right(cHtmlProdDup, nLinhaLidas) :dVenc := CapProd("linha>", cHtmlProdDup) nLinhaLidas := LinhaLidas("</SPAN>", cHtmlProdDup) cHtmlProdDup := Right(cHtmlProdDup, nLinhaLidas) :vDup := CapProd("linha>", cHtmlProdDup) // nLinhaLidas := LinhaLidas("</SPAN>", cHtmlProdDup) // cHtmlProdDup := Right(cHtmlProdDup, nLinhaLidas+len("</SPAN>")) END ::oNFe:AddItem( oItem ) Else Exit Endif Enddo adicionado as duplicatas falta alguns campo do itens do produto se alguem tiver uma chave que tenha esses dados seria bom (linhas comentadas) chave que tenha 2 ou mais duplicatas seria bom Quote Link to comment Share on other sites More sharing options...
syspel Posted April 3, 2014 Author Report Share Posted April 3, 2014 gostaria de saber se a classe que modificou funcionou pois o gilmer ainda esta escoscado e eu estou precisando da classe já modificada carlos syspel fwh 1402 bcc582, dbf mysql Quote Link to comment Share on other sites More sharing options...
Recommended Posts
Join the conversation
You can post now and register later. If you have an account, sign in now to post with your account.