|
GRUPOS DE DISCUSSÃO PROFISSIONAL WINDEV, WEBDEV e WINDEV Mobile |
| | | | | |
Lendo uma estrutura XSD pelo Windev - Exemplo Nfe BR |
Iniciado por BOLLER, dez., 19 2019 6:23 PM - 5 respostas |
| |
| | | |
|
| |
Membro registado 3.655 mensagems Popularité : +175 (223 votes) |
|
Publicado em dezembro, 19 2019 - 6:23 PM |
// Summary: // Syntax: // GravarNfe () // // Parameters: // None // Return Value: // None // // For instance: // Indicate an example. // PROCEDURE GravarNfe()
//GRAVANDO A NFE
bOk1, bOk2, bOk3, bOk4, bOk5, bOk6 is boolean = False
nErros is int = 0
IF EDT_xml <> "" AND fFileExist(EDT_xml) = True IF fDirectoryExist("C:\Temp\") = False fMakeDir("C:\Temp\") END IF HTransactionStart("C:\Temp\Transaction.trs","XML_01_infNFe,XML_02_ide,XML_03_emit,XML_04_enderEmit,XML_05_dest,XML_06_enderDest,XML_07_retirada,XML_08_entrega,XML_09_det,XML_10_prod,XML_11_ICMS00,XML_12_PISAliq,XML_13_COFINSAliq,XML_14_ICMSTot,XML_15_transp,XML_16_transporta,XML_17_veicTransp,XML_18_reboque,XML_19_vol,XML_20_infAdic") = True WHEN EXCEPTION IN
Tipo is string = COMBO_Tipo..DisplayedValue BufResultado is Buffer = fLoadText(EDT_xml) VERSAO is string = "versao="+Charact(34)+"4.00"+Charact(34) RESULTADO is xmlDocument = XMLOpen(EDT_xml,fromFile) //TOTAL DE ITENS nPosIni is int = PositionOccurrence(BufResultado,"",lastRank,FromBeginning) //-4 sTOTAL_ITENS is string = Val(Replace(Middle(BufResultado,nPosIni,nPosFim-nPosIni),Charact(34),"")) nTOTAL_ITENS is int = Val(sTOTAL_ITENS) IF nTOTAL_ITENS > 0 //EDT_Result += CR+CR+"//ID"+CR+CR nCHAVE_N01, nCHAVE_N02, nCHAVE_N03, nCHAVE_N04, nCHAVE_N05 is 8-bytes int //Cabeçalho gsNfeID is string = RESULTADO.nfeProc.NFe.infNFe:Id XML_01_infNFe.Id = RESULTADO.nfeProc.NFe.infNFe:Id EDT_Nfe = RESULTADO.nfeProc.NFe.infNFe:Id XML_01_infNFe.Tipo= Tipo bAchou is boolean IF HReadSeek(XML_01_infNFe,XML_01_infNFe.Id,gsNfeID,hIdentical) = True THEN bAchou = True nCHAVE_N01 = XML_01_infNFe.CHAVE_N01 bOk1 = HModify(XML_01_infNFe) //reimportando e excluindo os itens e o total da nota HReset(XML_14_ICMSTot) IF HReadSeek(XML_14_ICMSTot,CHAVE_N01,nCHAVE_N01,hIdentical) = True THEN HDelete(XML_14_ICMSTot) END HReset(XML_13_COFINSAliq) IF HReadSeek(XML_13_COFINSAliq,CHAVE_N01,nCHAVE_N01,hIdentical) = True THEN FOR EACH XML_13_COFINSAliq IF XML_13_COFINSAliq.CHAVE_N01 = nCHAVE_N01 HDelete(XML_13_COFINSAliq) END END END HReset(XML_12_PISAliq) IF HReadSeek(XML_12_PISAliq,CHAVE_N01,nCHAVE_N01,hIdentical) = True THEN FOR EACH XML_12_PISAliq IF XML_12_PISAliq.CHAVE_N01 = nCHAVE_N01 HDelete(XML_12_PISAliq) END END END HReset(XML_11_ICMS00) IF HReadSeek(XML_11_ICMS00,CHAVE_N01,nCHAVE_N01,hIdentical) = True THEN FOR EACH XML_11_ICMS00 IF XML_11_ICMS00.CHAVE_N01 = nCHAVE_N01 HDelete(XML_11_ICMS00) END END END HReset(XML_10_prod) IF HReadSeek(XML_10_prod,gsNfeID,gsNfeID,hIdentical) = True THEN FOR EACH XML_10_prod IF XML_10_prod.gsNfeID = gsNfeID HDelete(XML_10_prod) END END END HReset(XML_09_det) IF HReadSeek(XML_09_det,CHAVE_N01,nCHAVE_N01,hIdentical) = True THEN FOR EACH XML_09_det IF XML_09_det.CHAVE_N01 = nCHAVE_N01 HDelete(XML_09_det) END END END ELSE bAchou = False XML_01_infNFe.CHAVE_N01 = GET_SEQ("XML_01_infNFe") nCHAVE_N01 = XML_01_infNFe.CHAVE_N01 bOk1 = HAdd(XML_01_infNFe) IF bOk1 = False THEN nErros+=1 Info("xml_01") END END IF bOk1 = True THEN EDT_Chave = nCHAVE_N01 //20190618T16:38:4603:00 EDT_Data_Mov = Replace(RESULTADO.nfeProc.NFe.infNFe.ide.dhSaiEnt,"-","") EDT_Data_Mov = Replace(EDT_Data_Mov,"T","") EDT_Data_Mov = Replace(EDT_Data_Mov,":","") //EDT_Result += CR+CR+"//IDE"+CR+CR XML_02_ide.CHAVE_N01= nCHAVE_N01 XML_02_ide.cUF = RESULTADO.nfeProc.NFe.infNFe.ide.cUF XML_02_ide.cNF = RESULTADO.nfeProc.NFe.infNFe.ide.cNF XML_02_ide.natOp = RESULTADO.nfeProc.NFe.infNFe.ide.natOp XML_02_ide.mod = RESULTADO.nfeProc.NFe.infNFe.ide.mod XML_02_ide.serie = RESULTADO.nfeProc.NFe.infNFe.ide.serie XML_02_ide.nNF = RESULTADO.nfeProc.NFe.infNFe.ide.nNF XML_02_ide.dEmi = RESULTADO.nfeProc.NFe.infNFe.ide.dhEmi XML_02_ide.dSaiEnt = RESULTADO.nfeProc.NFe.infNFe.ide.dhSaiEnt XML_02_ide.tpNF = RESULTADO.nfeProc.NFe.infNFe.ide.tpNF XML_02_ide.cMunFG = RESULTADO.nfeProc.NFe.infNFe.ide.cMunFG XML_02_ide.tpImp = RESULTADO.nfeProc.NFe.infNFe.ide.tpImp XML_02_ide.tpEmis = RESULTADO.nfeProc.NFe.infNFe.ide.tpEmis XML_02_ide.cDV = RESULTADO.nfeProc.NFe.infNFe.ide.cDV XML_02_ide.tpAmb = RESULTADO.nfeProc.NFe.infNFe.ide.tpAmb XML_02_ide.finNFe = RESULTADO.nfeProc.NFe.infNFe.ide.finNFe XML_02_ide.procEmi = RESULTADO.nfeProc.NFe.infNFe.ide.procEmi XML_02_ide.verProc = RESULTADO.nfeProc.NFe.infNFe.ide.verProc IF bAchou = False THEN bOk2 = HAdd(XML_02_ide) IF bOk2 = False THEN nErros+=1 Info("XML_02") END END //EDT_Result += CR+CR+"//EMITENTE"+CR+CR XML_03_emit.CHAVE_N02 = GET_SEQ("XML_03_emit") XML_03_emit.CHAVE_N01 = nCHAVE_N01 XML_03_emit.CNPJ = RESULTADO.nfeProc.NFe.infNFe.emit.CNPJ XML_03_emit.xNome = RESULTADO.nfeProc.NFe.infNFe.emit.xNome XML_03_emit.xFant = RESULTADO.nfeProc.NFe.infNFe.emit.xFant XML_03_emit.IE = RESULTADO.nfeProc.NFe.infNFe.emit.IE IF bAchou = False THEN bOk3 = HAdd(XML_03_emit) IF bOk3 = False nErros += 1 Info("xml_03") ELSE nCHAVE_N02 = XML_03_emit.CHAVE_N02 //EDT_Result += CR+CR+"//ENDERECO EMITENTE"+CR+CR XML_04_enderEmit.CHAVE_N01 = nCHAVE_N01 XML_04_enderEmit.CHAVE_N02 = nCHAVE_N02 XML_04_enderEmit.xLgr = RESULTADO.nfeProc.NFe.infNFe.emit.enderEmit.xLgr XML_04_enderEmit.nro = RESULTADO.nfeProc.NFe.infNFe.emit.enderEmit.nro XML_04_enderEmit.xCpl = RESULTADO.nfeProc.NFe.infNFe.emit.enderEmit.xCpl XML_04_enderEmit.xBairro = RESULTADO.nfeProc.NFe.infNFe.emit.enderEmit.xBairro XML_04_enderEmit.cMun = RESULTADO.nfeProc.NFe.infNFe.emit.enderEmit.cMun XML_04_enderEmit.xMun = RESULTADO.nfeProc.NFe.infNFe.emit.enderEmit.xMun XML_04_enderEmit.UF = RESULTADO.nfeProc.NFe.infNFe.emit.enderEmit.UF XML_04_enderEmit.CEP = RESULTADO.nfeProc.NFe.infNFe.emit.enderEmit.CEP XML_04_enderEmit.cPais = RESULTADO.nfeProc.NFe.infNFe.emit.enderEmit.cPais XML_04_enderEmit.xPais = RESULTADO.nfeProc.NFe.infNFe.emit.enderEmit.xPais XML_04_enderEmit.fone = RESULTADO.nfeProc.NFe.infNFe.emit.enderEmit.fone IF HAdd(XML_04_enderEmit) = False THEN nErros+=1 Info("xml_04") ELSE CadastrarFornecedor(XML_03_emit.CNPJ,XML_03_emit.xNome,XML_03_emit.IE,XML_04_enderEmit.fone) END END ELSE bOk3 = False END //EDT_Result += CR+CR+"//DESTINO"+CR+CR XML_05_dest.CHAVE_N01 = nCHAVE_N01 XML_05_dest.CHAVE_N03 = GET_SEQ("XML_05_dest") XML_05_dest.CNPJ = RESULTADO.nfeProc.NFe.infNFe.dest.CNPJ XML_05_dest.xNome = RESULTADO.nfeProc.NFe.infNFe.dest.xNome XML_05_dest.IE = RESULTADO.nfeProc.NFe.infNFe.dest.indIEDest IF bAchou = False THEN bOk4 = HAdd(XML_05_dest) IF bOk4 = False THEN nErros+=1 Info("XML_05") ELSE nCHAVE_N03 = XML_05_dest.CHAVE_N03 //EDT_Result += CR+CR+"//ENDERECO DESTINO"+CR+CR XML_06_enderDest.CHAVE_N01 = nCHAVE_N01 XML_06_enderDest.CHAVE_N03 = nCHAVE_N03 XML_06_enderDest.xLgr = RESULTADO.nfeProc.NFe.infNFe.dest.enderDest.xLgr XML_06_enderDest.nro = RESULTADO.nfeProc.NFe.infNFe.dest.enderDest.nro XML_06_enderDest.xBairro = RESULTADO.nfeProc.NFe.infNFe.dest.enderDest.xBairro XML_06_enderDest.cMun = RESULTADO.nfeProc.NFe.infNFe.dest.enderDest.cMun XML_06_enderDest.xMun = RESULTADO.nfeProc.NFe.infNFe.dest.enderDest.xMun XML_06_enderDest.UF = RESULTADO.nfeProc.NFe.infNFe.dest.enderDest.UF XML_06_enderDest.CEP = RESULTADO.nfeProc.NFe.infNFe.dest.enderDest.CEP XML_06_enderDest.cPais = RESULTADO.nfeProc.NFe.infNFe.dest.enderDest.cPais XML_06_enderDest.xPais = RESULTADO.nfeProc.NFe.infNFe.dest.enderDest.xPais XML_06_enderDest.fone = RESULTADO.nfeProc.NFe.infNFe.dest.enderDest.fone IF HAdd(XML_06_enderDest) = False THEN nErros+=1 Info("XML_06") END END END //EDT_Result += CR+CR+"//RETIRADA"+CR+CR XML_07_retirada.CHAVE_N01 = nCHAVE_N01 // XML_07_retirada.CNPJ = RESULTADO.nfeProc.NFe.infNFe.retirada.CNPJ // XML_07_retirada.xLgr = RESULTADO.nfeProc.NFe.infNFe.retirada.xLgr // XML_07_retirada.nro = RESULTADO.nfeProc.NFe.infNFe.retirada.nro // XML_07_retirada.xCpl = RESULTADO.nfeProc.NFe.infNFe.retirada.xCpl // XML_07_retirada.xBairro = RESULTADO.nfeProc.NFe.infNFe.retirada.xBairro // XML_07_retirada.cMun = RESULTADO.nfeProc.NFe.infNFe.retirada.cMun // XML_07_retirada.xMun = RESULTADO.nfeProc.NFe.infNFe.retirada.xMun // XML_07_retirada.UF = RESULTADO.nfeProc.NFe.infNFe.retirada.UF IF bAchou = False IF HAdd(XML_07_retirada) = False THEN nErros+=1 Info("XML_07") END END //EDT_Result += CR+CR+"//ENTREGA"+CR+CR XML_08_entrega.CHAVE_N01 = nCHAVE_N01 // XML_08_entrega.CNPJ = RESULTADO.nfeProc.NFe.infNFe.entrega.CNPJ // XML_08_entrega.xLgr = RESULTADO.nfeProc.NFe.infNFe.entrega.xLgr // XML_08_entrega.nro = RESULTADO.nfeProc.NFe.infNFe.entrega.nro // XML_08_entrega.xCpl = RESULTADO.nfeProc.NFe.infNFe.entrega.xCpl // XML_08_entrega.xBairro = RESULTADO.nfeProc.NFe.infNFe.entrega.xBairro // XML_08_entrega.cMun = RESULTADO.nfeProc.NFe.infNFe.entrega.cMun // XML_08_entrega.xMun = RESULTADO.nfeProc.NFe.infNFe.entrega.xMun // XML_08_entrega.UF = RESULTADO.nfeProc.NFe.infNFe.entrega.UF IF bAchou = False IF HAdd(XML_08_entrega) = False THEN nErros+=1 Info("XML_08") END END //ITENS PRODUTOS E SERVIÇOS //======================================================== //======================================================== x is int = 0 LOOP(nTOTAL_ITENS) x++ XML_09_det.nItem = RESULTADO.nfeProc.NFe.infNFe.det[x]:nItem XML_09_det.CHAVE_N01 = nCHAVE_N01 XML_09_det.CHAVE_N04 = GET_SEQ("XML_09_det") nCHAVE_N04 = XML_09_det.CHAVE_N04 bOk4 = HAdd(XML_09_det) IF bOk4 = True THEN XML_10_prod.CHAVE_N01 = nCHAVE_N01 XML_10_prod.CHAVE_N04 = nCHAVE_N04 XML_10_prod.gsNfeID = gsNfeID XML_10_prod.nItem = RESULTADO.nfeProc.NFe.infNFe.det[x]:nItem XML_10_prod.cProd = RESULTADO.nfeProc.NFe.infNFe.det[x].prod.cProd XML_10_prod.CORRELACAO_ID = 0 XML_10_prod.PROD_CODIGO_TISS = 0 XML_10_prod.cEAN = RESULTADO.nfeProc.NFe.infNFe.det[x].prod.cEAN XML_10_prod.xProd = RESULTADO.nfeProc.NFe.infNFe.det[x].prod.xProd XML_10_prod.CFOP = RESULTADO.nfeProc.NFe.infNFe.det[x].prod.CFOP XML_10_prod.uCom = RESULTADO.nfeProc.NFe.infNFe.det[x].prod.uCom XML_10_prod.qCom = RESULTADO.nfeProc.NFe.infNFe.det[x].prod.qCom XML_10_prod.vUnCom = RESULTADO.nfeProc.NFe.infNFe.det[x].prod.vUnCom XML_10_prod.vProd = RESULTADO.nfeProc.NFe.infNFe.det[x].prod.vProd XML_10_prod.cEANTrib = RESULTADO.nfeProc.NFe.infNFe.det[x].prod.cEANTrib XML_10_prod.uTrib = RESULTADO.nfeProc.NFe.infNFe.det[x].prod.uTrib XML_10_prod.qTrib = RESULTADO.nfeProc.NFe.infNFe.det[x].prod.qTrib XML_10_prod.vUnTrib = RESULTADO.nfeProc.NFe.infNFe.det[x].prod.vUnTrib IF Tipo = "E" XML_10_prod.EntradaEstoque = 1 XML_10_prod.SaidaEstoque = 0 XML_10_prod.TransfereEstoque = 0 ELSE IF Tipo = "S" XML_10_prod.EntradaEstoque = 0 XML_10_prod.SaidaEstoque = 1 XML_10_prod.TransfereEstoque = 0 ELSE IF Tipo = "T" XML_10_prod.EntradaEstoque = 0 XML_10_prod.SaidaEstoque = 0 XML_10_prod.TransfereEstoque = 1 END XML_10_prod.Processado = 0 XML_10_prod.DataProcessamento= "" XML_10_prod.AUDT_Data_Add = DateSys()+TimeSys() XML_10_prod.AUDT_User_Add = GnUserID IF HAdd(XML_10_prod) = False THEN nErros+=1 Info("xml_10") ELSE IF HReadSeek(F001_APS_PRODUTOS,F001_PROD_NOME,XML_10_prod.xProd,hIdentical) = False THEN CadastrarProduto(XML_03_emit.CNPJ,XML_10_prod.cProd,XML_10_prod.cEAN,XML_10_prod.xProd,XML_10_prod.uCom) END END //ICMS XML_11_ICMS00.CHAVE_N01 = nCHAVE_N01 XML_11_ICMS00.CHAVE_N04 = nCHAVE_N04 XML_11_ICMS00.orig = RESULTADO.nfeProc.NFe.infNFe.det[x].imposto.ICMS.ICMS00.orig XML_11_ICMS00.CST = RESULTADO.nfeProc.NFe.infNFe.det[x].imposto.ICMS.ICMS00.CST XML_11_ICMS00.modBC = RESULTADO.nfeProc.NFe.infNFe.det[x].imposto.ICMS.ICMS00.modBC XML_11_ICMS00.vBC = RESULTADO.nfeProc.NFe.infNFe.det[x].imposto.ICMS.ICMS00.vBC XML_11_ICMS00.pICMS = RESULTADO.nfeProc.NFe.infNFe.det[x].imposto.ICMS.ICMS00.pICMS XML_11_ICMS00.vICMS = RESULTADO.nfeProc.NFe.infNFe.det[x].imposto.ICMS.ICMS00.vICMS IF HAdd(XML_11_ICMS00) = False THEN nErros+=1 Info("xml_11") END //PIS XML_12_PISAliq.CHAVE_N01 = nCHAVE_N01 XML_12_PISAliq.CHAVE_N04 = nCHAVE_N04 // XML_12_PISAliq.CST = RESULTADO.nfeProc.NFe.infNFe.det[x].imposto.PIS.PISAliq.CST // XML_12_PISAliq.vBC = RESULTADO.nfeProc.NFe.infNFe.det[x].imposto.PIS.PISAliq.vBC // XML_12_PISAliq.pPIS = RESULTADO.nfeProc.NFe.infNFe.det[x].imposto.PIS.PISAliq.pPIS // XML_12_PISAliq.vPIS = RESULTADO.nfeProc.NFe.infNFe.det[x].imposto.PIS.PISAliq.vPIS IF HAdd(XML_12_PISAliq) = False THEN nErros+=1 Info("xml_12") END //COFINS XML_13_COFINSAliq.CHAVE_N01 = nCHAVE_N01 XML_13_COFINSAliq.CHAVE_N04 = nCHAVE_N04 // XML_13_COFINSAliq.CST = RESULTADO.nfeProc.NFe.infNFe.det[x].imposto.COFINS.COFINSAliq.CST // XML_13_COFINSAliq.vBC = RESULTADO.nfeProc.NFe.infNFe.det[x].imposto.COFINS.COFINSAliq.vBC // XML_13_COFINSAliq.pCOFINS = RESULTADO.nfeProc.NFe.infNFe.det[x].imposto.COFINS.COFINSAliq.pCOFINS // XML_13_COFINSAliq.vCOFINS = RESULTADO.nfeProc.NFe.infNFe.det[x].imposto.COFINS.COFINSAliq.vCOFINS IF HAdd(XML_13_COFINSAliq) = False THEN nErros+=1 Info("xml_13") END ELSE nErros+=1 Info("XML_09") END //EDT_Result += CR+CR+"//ITENS PRODUTOS E SERVIÇOS - FIM//"+CR+CR END //======================================================== //======================================================== //EDT_Result += CR+CR+"//TOTAL"+CR+CR XML_14_ICMSTot.CHAVE_N01 = nCHAVE_N01 XML_14_ICMSTot.vBC = RESULTADO.nfeProc.NFe.infNFe.total.ICMSTot.vBC XML_14_ICMSTot.vICMS = RESULTADO.nfeProc.NFe.infNFe.total.ICMSTot.vICMS XML_14_ICMSTot.vBCST = RESULTADO.nfeProc.NFe.infNFe.total.ICMSTot.vBCST XML_14_ICMSTot.vST = RESULTADO.nfeProc.NFe.infNFe.total.ICMSTot.vST XML_14_ICMSTot.vProd = RESULTADO.nfeProc.NFe.infNFe.total.ICMSTot.vProd XML_14_ICMSTot.vFrete = RESULTADO.nfeProc.NFe.infNFe.total.ICMSTot.vFrete XML_14_ICMSTot.vSeg = RESULTADO.nfeProc.NFe.infNFe.total.ICMSTot.vSeg XML_14_ICMSTot.vDesc = RESULTADO.nfeProc.NFe.infNFe.total.ICMSTot.vDesc XML_14_ICMSTot.vII = RESULTADO.nfeProc.NFe.infNFe.total.ICMSTot.vII XML_14_ICMSTot.vIPI = RESULTADO.nfeProc.NFe.infNFe.total.ICMSTot.vIPI XML_14_ICMSTot.vPIS = RESULTADO.nfeProc.NFe.infNFe.total.ICMSTot.vPIS XML_14_ICMSTot.vCOFINS = RESULTADO.nfeProc.NFe.infNFe.total.ICMSTot.vCOFINS XML_14_ICMSTot.vOutro = RESULTADO.nfeProc.NFe.infNFe.total.ICMSTot.vOutro XML_14_ICMSTot.vNF = RESULTADO.nfeProc.NFe.infNFe.total.ICMSTot.vNF IF HAdd(XML_14_ICMSTot) = False THEN nErros+=1 Info("xml_14") END //EDT_Result += CR+CR+"//TRANSPORTADORA"+CR+CR XML_15_transp.CHAVE_N01 = nCHAVE_N01 XML_15_transp.CHAVE_N05 = GET_SEQ("XML_15_transp") XML_15_transp.modFrete = RESULTADO.nfeProc.NFe.infNFe.transp.modFrete IF bAchou = False THEN bOk5 = HAdd(XML_15_transp) IF bOk5 = False nErros+=1 Info("xml_15") ELSE nCHAVE_N05 = XML_15_transp.CHAVE_N05 XML_16_transporta.CHAVE_N01 = nCHAVE_N01 XML_16_transporta.CHAVE_N05 = nCHAVE_N05 XML_16_transporta.modFrete = RESULTADO.nfeProc.NFe.infNFe.transp.modFrete // XML_16_transporta.CNPJ = RESULTADO.nfeProc.NFe.infNFe.transp.transporta.CNPJ // XML_16_transporta.xNome = RESULTADO.nfeProc.NFe.infNFe.transp.transporta.xNome // XML_16_transporta.IE = RESULTADO.nfeProc.NFe.infNFe.transp.transporta.IE // XML_16_transporta.xEnder = RESULTADO.nfeProc.NFe.infNFe.transp.transporta.xEnder // XML_16_transporta.xMun = RESULTADO.nfeProc.NFe.infNFe.transp.transporta.xMun // XML_16_transporta.UF = RESULTADO.nfeProc.NFe.infNFe.transp.transporta.UF IF bAchou = False IF HAdd(XML_16_transporta) = False THEN nErros+=1 Info("xml_16") END END //EDT_Result += CR+CR+"//VEICULO"+CR+CR XML_17_veicTransp.CHAVE_N01 = nCHAVE_N01 XML_17_veicTransp.CHAVE_N05 = nCHAVE_N05 // XML_17_veicTransp.placa = RESULTADO.nfeProc.NFe.infNFe.transp.veicTransp.placa // XML_17_veicTransp.UF = RESULTADO.nfeProc.NFe.infNFe.transp.veicTransp.UF // XML_17_veicTransp.RNTC = RESULTADO.nfeProc.NFe.infNFe.transp.veicTransp.RNTC IF bAchou = False IF HAdd(XML_17_veicTransp) = False THEN nErros+=1 Info("xml_17") END END //EDT_Result += CR+CR+"//VEICULO REBOQUE"+CR+CR XML_18_reboque.CHAVE_N01 = nCHAVE_N01 XML_18_reboque.CHAVE_N05 = nCHAVE_N05 // XML_18_reboque.placa = RESULTADO.nfeProc.NFe.infNFe.transp.reboque.placa // XML_18_reboque.UF = RESULTADO.nfeProc.NFe.infNFe.transp.reboque.UF // XML_18_reboque.RNTC = RESULTADO.nfeProc.NFe.infNFe.transp.reboque.RNTC IF bAchou = False IF HAdd(XML_18_reboque) = False THEN nErros+=1 Info("xml_18") END END //EDT_Result += CR+CR+"//VOLUMES"+CR+CR XML_19_vol.CHAVE_N01 = nCHAVE_N01 XML_19_vol.CHAVE_N05 = nCHAVE_N05 // XML_19_vol.qVol = RESULTADO.nfeProc.NFe.infNFe.transp.vol.qVol // XML_19_vol.esp = RESULTADO.nfeProc.NFe.infNFe.transp.vol.esp // XML_19_vol.marca = RESULTADO.nfeProc.NFe.infNFe.transp.vol.marca // XML_19_vol.nVol = RESULTADO.nfeProc.NFe.infNFe.transp.vol.nVol // XML_19_vol.pesoL = RESULTADO.nfeProc.NFe.infNFe.transp.vol.pesoL // XML_19_vol.pesoB = RESULTADO.nfeProc.NFe.infNFe.transp.vol.pesoB // XML_19_vol.nLacre = RESULTADO.nfeProc.NFe.infNFe.transp.vol.lacres.nLacre IF bAchou = False IF HAdd(XML_19_vol) = False THEN nErros+=1 Info("xml_19") END END END END //EDT_Result += CR+CR+"//INFORMAÇÕES ADICIONAIS"+CR+CR XML_20_infAdic.CHAVE_N01 = nCHAVE_N01 XML_20_infAdic.infAdFisco = RESULTADO.nfeProc.NFe.infNFe.infAdic.infCpl XML_20_infAdic.CERTIFICADO = RESULTADO.nfeProc.NFe.Signature.KeyInfo.X509Data.X509Certificate IF bAchou = False IF HAdd(XML_20_infAdic) = False THEN nErros += 1 Info("xml_20") END END ELSE nErros += 1 Info("erro 1") END // Validate the addition IF nErros = 0 //AND HError() = 0 IF HTransactionEnd() = True THEN ToastDisplay("Gravou com sucesso!",toastLong,vaMiddle,haCenter) ELSE HTransactionCancel() Info("Algo ocorreu de errado e a nota nao foi importada!") Info("Erro 01: "+ ErrorInfo() +" - "+HError() +" - "+ HErrorInfo()) END ELSE IF nErros > 0 //OR HError() <> 0 HTransactionCancel() Info("Algo ocorreu de errado e a nota nao foi importada!") Info("Erro 02: "+ ErrorInfo() +" - "+HError() +" - "+ HErrorInfo()) END END DO IF ErrorInfo() = 0 AND HErrorInfo() = 0 THEN IF HTransactionEnd() = True THEN Info("Erros: "+nErros) ToastDisplay("Gravou com sucesso!",toastLong,vaMiddle,haCenter) ELSE HTransactionCancel() Info("Algo ocorreu de errado e a nota nao foi importada!") Info("Erro 01: "+ ErrorInfo() +" - "+HError() +" - "+ HErrorInfo()) END ELSE // Delete the order lines HTransactionCancel() Info("Algo ocorreu de errado e a nota nao foi importada!") Info("Erro 03: "+ ErrorInfo() +" - "+HError() +" - "+ HErrorInfo()) END END ELSE HTransactionCancel() Info("Algo ocorreu de errado e a nota nao foi importada!") Info("Erro 04: "+ ErrorInfo() +" - "+HError() +" - "+ HErrorInfo()) END TableDisplay(TABLEGRID_XML_10_prod,taInit) TableDisplay(TABLEGRID_XML_10_prod,taReExecuteQuery) // // //35 //518005127 //Venda a vista //0 //55 //1 //1 //2008-05-06 //2008-05-06 //0 //3550308 //1 //1 //3 //2 //1 //0 //NF-eletronica.com // // //99999090910270 //NF-e Associacao NF-e //NF-e // //Rua Central //100 //Fundos //Distrito Industrial //3502200 //Angatuba //SP //17100171 //1058 //Brasil //1733021717 // //123456789012 // // ----------------------- //00000000000191 //DISTRIBUIDORA DE AGUAS MINERAIS // //AV DAS FONTES //1777 //10 ANDAR //PARQUE FONTES //5030801 //Sao Paulo //SP //13950000 //1058 //BRASIL //1932011234 // // //------------------------ // //99171171000194 //AV PAULISTA //12345 //TERREO //CERQUEIRA CESAR //3550308 //SAO PAULO //SP //------------------ // //99299299000194 //AV FARIA LIMA //1500 //15 ANDAR //PINHEIROS //3550308 //SAO PAULO //SP //--------------------- // // //00001 // //Agua Mineral //5101 //dz //1000000.0000 //1 //10000000.00 // //und //12000000.0000 //1 // // // // //0 //00 //0 //10000000.00 //18.00 //1800000.00 // // // // //01 //10000000.00 //0.65 //65000 // // // // //01 //10000000.00 //2.00 //200000.00 // // // // // // //00002 // //Agua Mineral //5101 //pack //5000000.0000 //2 //10000000.00 // //und //3000000.0000 //0.3333 // // // // //0 //00 //0 //10000000.00 //18.00 //1800000.00 // // // // //01 //10000000.00 //0.65 //65000 // // // // //01 //10000000.00 //2.00 //200000.00 // // // // //---------------------------- // // //20000000.00 //18.00 //0 //0 //20000000.00 //0 //0 //0 //0 //0 //130000.00 //400000.00 //0 //20000000.00 // // // //0 // //99171171000191 //Distribuidora de Bebidas Fazenda de SP Ltda. //171999999119 //Rua Central 100 - Fundos - Distrito Industrial //SAO PAULO //SP // // //BXI1717 //SP //123456789 // // //BXI1818 //SP //123456789 // // //10000 //CAIXA //LINDOYA //500 //1000000000.000 //1200000000.000 // //XYZ10231486 // // // // //Nota Fiscal de exemplo NF-eletronica.com // // // // // // // // // // // // // xhTSDMH61e9uqe04lnoHT4ZzLSY= // // // Iz5Z3PLQbzZt9jnBtr6xsmHZMOu/3plXG9xxfFjRCQYGnD1rjlhzBGrqt026Ca2VHHM/bHNepi6FuFkAi595GScKVuHREUotzifE2OIjgavvTOrMwbXG7+0LYgkwPFiPCao2S33UpZe7MneaxcmKQGKQZw1fP8fsWmaQ4cczZT8= // // //cxvkkPolDUyBa7d7xwgm // // // // ELSE Info("Não existe o arquivo ou nao informado/encontrado") END
-- Adriano José Boller ______________________________________________ Consultor e Representante Oficial da PcSoft no Brasil +55 (41) 99949 1800 adrianoboller@gmail.com skype: adrianoboller http://wxinformatica.com.br/ |
| |
| |
| | | |
|
| | |
| |
Membro registado 3.655 mensagems Popularité : +175 (223 votes) |
|
Publicado em dezembro, 19 2019 - 6:31 PM |
Bitao buscar Xml
EDT_xml = fSelect("", "", "Selecione o XML", "Xml (*.*)" + TAB + "*.xml", "*.xml")
IF EDT_xml <> "" THEN LeituraXml() UI_HabilitaCampos()
ELSE Info("Arquivo não encontrado!") END
// Summary: // Syntax: // LeituraXml () // // Parameters: // None // Return Value: // None // // For instance: // Indicate an example. // PROCEDURE LeituraXml()
//EDT_NumNota //EDT_Serie //EDT_Nfe //EDT_Emissao //EDT_Entrada //EDT_Valor_Frete //EDT_Valor_Desconto //EDT_Valor_Produtos //EDT_Valor_Total_da_Nfe
//LEITURA DE NFE IF EDT_xml <> "" AND fFileExist(EDT_xml) = True sXml_Result is string BufResultado is Buffer = fLoadText(EDT_xml) sVERSAO is string = "versao="+Charact(34)+"4.00"+Charact(34) RESULTADO is xmlDocument = XMLOpen(EDT_xml,fromFile) //TOTAL DE ITENS nPosIni is int = PositionOccurrence(BufResultado,"",lastRank,FromBeginning) //-4 sTOTAL_ITENS is string = Val(Replace(Middle(BufResultado,nPosIni,nPosFim-nPosIni),Charact(34),"")) nTOTAL_ITENS is int = Val(sTOTAL_ITENS) IF nTOTAL_ITENS > 0 codigo_id_nfe is int //CABEÇALHO DA NFE //======================================================== //======================================================== EDT_Nfe = RESULTADO.nfeProc.NFe.infNFe:Id sNversao is string = RESULTADO.nfeProc.NFe.infNFe:versao Data_Mov is string = Replace(RESULTADO.nfeProc.NFe.infNFe.ide.dhSaiEnt,"-","") Data_Mov = Replace(Data_Mov,"T","") Data_Mov = Replace(Data_Mov,":","") sXml_Result = CR+CR+"//ID"+CR+CR sXml_Result += CR+RESULTADO.nfeProc.NFe.infNFe:Id sXml_Result += CR+CR+"//IDE"+CR+CR sXml_Result += CR+RESULTADO.nfeProc.NFe.infNFe.ide.cUF sXml_Result += CR+RESULTADO.nfeProc.NFe.infNFe.ide.cNF sXml_Result += CR+RESULTADO.nfeProc.NFe.infNFe.ide.natOp sXml_Result += CR+RESULTADO.nfeProc.NFe.infNFe.ide.idDest // sXml_Result += CR+RESULTADO.nfeProc.NFe.infNFe.ide.indFinal // sXml_Result += CR+RESULTADO.nfeProc.NFe.infNFe.ide.indPres // sXml_Result += CR+RESULTADO.nfeProc.NFe.infNFe.ide.mod sXml_Result += CR+RESULTADO.nfeProc.NFe.infNFe.ide.nNF EDT_NumNota = RESULTADO.nfeProc.NFe.infNFe.ide.nNF sXml_Result += CR+RESULTADO.nfeProc.NFe.infNFe.ide.serie EDT_Serie = RESULTADO.nfeProc.NFe.infNFe.ide.serie //2019-06-18T15:50:00-03:00 sXml_Result += CR+RESULTADO.nfeProc.NFe.infNFe.ide.dhEmi Emissao is string = Middle(Replace(RESULTADO.nfeProc.NFe.infNFe.ide.dhEmi,"-",""),1,8) EDT_Emissao = Emissao //2019-06-18T15:50:00-03:00 sXml_Result += CR+RESULTADO.nfeProc.NFe.infNFe.ide.dhSaiEnt vencimento is string = Middle(Replace(RESULTADO.nfeProc.NFe.infNFe.ide.dhSaiEnt,"-",""),1,8) sXml_Result = vencimento EDT_Entrada = DateSys() sXml_Result += CR+RESULTADO.nfeProc.NFe.infNFe.ide.tpNF sXml_Result += CR+RESULTADO.nfeProc.NFe.infNFe.ide.cMunFG sXml_Result += CR+RESULTADO.nfeProc.NFe.infNFe.ide.tpImp sXml_Result += CR+RESULTADO.nfeProc.NFe.infNFe.ide.tpEmis sXml_Result += CR+RESULTADO.nfeProc.NFe.infNFe.ide.cDV sXml_Result += CR+RESULTADO.nfeProc.NFe.infNFe.ide.tpAmb sXml_Result += CR+RESULTADO.nfeProc.NFe.infNFe.ide.finNFe sXml_Result += CR+RESULTADO.nfeProc.NFe.infNFe.ide.procEmi sXml_Result += CR+RESULTADO.nfeProc.NFe.infNFe.ide.verProc sXml_Result += CR+CR+"//EMITENTE"+CR+CR sXml_Result += CR+RESULTADO.nfeProc.NFe.infNFe.emit.CNPJ sXml_Result += RESULTADO.nfeProc.NFe.infNFe.emit.CNPJ sXml_Result += CR+RESULTADO.nfeProc.NFe.infNFe.emit.xNome sXml_Result += CR+RESULTADO.nfeProc.NFe.infNFe.emit.xFant sXml_Result += RESULTADO.nfeProc.NFe.infNFe.emit.xFant sXml_Result += CR+RESULTADO.nfeProc.NFe.infNFe.emit.IE sXml_Result += CR+CR+"//ENDERECO EMITENTE"+CR+CR sXml_Result += CR+RESULTADO.nfeProc.NFe.infNFe.emit.enderEmit.xLgr sXml_Result += CR+RESULTADO.nfeProc.NFe.infNFe.emit.enderEmit.nro sXml_Result += CR+RESULTADO.nfeProc.NFe.infNFe.emit.enderEmit.xCpl sXml_Result += CR+RESULTADO.nfeProc.NFe.infNFe.emit.enderEmit.xBairro sXml_Result += CR+RESULTADO.nfeProc.NFe.infNFe.emit.enderEmit.cMun sXml_Result += CR+RESULTADO.nfeProc.NFe.infNFe.emit.enderEmit.xMun sXml_Result += CR+RESULTADO.nfeProc.NFe.infNFe.emit.enderEmit.UF sXml_Result += CR+RESULTADO.nfeProc.NFe.infNFe.emit.enderEmit.CEP sXml_Result += CR+RESULTADO.nfeProc.NFe.infNFe.emit.enderEmit.cPais sXml_Result += CR+RESULTADO.nfeProc.NFe.infNFe.emit.enderEmit.xPais sXml_Result += CR+RESULTADO.nfeProc.NFe.infNFe.emit.enderEmit.fone sXml_Result += CR+CR+"//DESTINO"+CR+CR sXml_Result += CR+RESULTADO.nfeProc.NFe.infNFe.dest.CNPJ sXml_Result += CR+RESULTADO.nfeProc.NFe.infNFe.dest.xNome sXml_Result += CR+RESULTADO.nfeProc.NFe.infNFe.dest.indIEDest sXml_Result += CR+CR+"//ENDERECO DESTINO"+CR+CR sXml_Result += CR+RESULTADO.nfeProc.NFe.infNFe.dest.enderDest.xLgr sXml_Result += CR+RESULTADO.nfeProc.NFe.infNFe.dest.enderDest.nro sXml_Result += CR+RESULTADO.nfeProc.NFe.infNFe.dest.enderDest.xBairro sXml_Result += CR+RESULTADO.nfeProc.NFe.infNFe.dest.enderDest.cMun sXml_Result += CR+RESULTADO.nfeProc.NFe.infNFe.dest.enderDest.xMun sXml_Result += CR+RESULTADO.nfeProc.NFe.infNFe.dest.enderDest.UF sXml_Result += CR+RESULTADO.nfeProc.NFe.infNFe.dest.enderDest.CEP sXml_Result += CR+RESULTADO.nfeProc.NFe.infNFe.dest.enderDest.cPais sXml_Result += CR+RESULTADO.nfeProc.NFe.infNFe.dest.enderDest.xPais sXml_Result += CR+RESULTADO.nfeProc.NFe.infNFe.dest.enderDest.fone sXml_Result += CR+CR+"//RETIRADA"+CR+CR
// IF EDT_NumNota <> "" THEN // // IF YesNo("Você não salvou a NFE " + TAB + EDT_NumNota + TAB + " , os dados desta nota serão perdidos! Deseja continuar? ") THEN // // END // END
FOR EACH F007_APS_NFE_TEMP IF F007_APS_NFE_TEMP.F007_CHAVE_NFE = EDT_Nfe THEN HDelete(F007_APS_NFE_TEMP) END END
ScreenToFile() F007_APS_NFE_TEMP.AUDT_DATA_ADD = DateSys()+TimeSys() F007_APS_NFE_TEMP.AUDT_USER_ADD = GnUserID F007_APS_NFE_TEMP.F007_ID_NFE = GET_SEQ(F007_APS_NFE_TEMP) IF HAdd(F007_APS_NFE_TEMP) = True THEN codigo_id_nfe = F007_APS_NFE_TEMP.F007_ID_NFE gnSeqNFe = codigo_id_nfe END //ITENS PRODUTOS E SERVIÇOS //======================================================== //======================================================== FOR EACH F008_APS_NFE_ITENS_TEMP IF F008_APS_NFE_ITENS_TEMP.F008_CHAVE_NFE = EDT_Nfe THEN HDelete(F008_APS_NFE_ITENS_TEMP) END END
x is int = 0 LOOP(nTOTAL_ITENS) x++ F008_APS_NFE_ITENS_TEMP.F008_ID_ITENS = GET_SEQ(F008_APS_NFE_ITENS_TEMP) F008_APS_NFE_ITENS_TEMP.F008_ID_NFE = codigo_id_nfe F008_APS_NFE_ITENS_TEMP.F008_CHAVE_NFE = EDT_Nfe F008_APS_NFE_ITENS_TEMP.F008_ID_PRODUTO = 0 F008_APS_NFE_ITENS_TEMP.F008_CODIGO_TISS = 0 F008_APS_NFE_ITENS_TEMP.F008_NOME_COMERCIAL = RESULTADO.nfeProc.NFe.infNFe.det[x].prod.xProd F008_APS_NFE_ITENS_TEMP.F008_NUMERO_LOTE = RESULTADO.nfeProc.NFe.infNFe.det[x].prod.rastro.nLote F008_APS_NFE_ITENS_TEMP.F008_VALIDADE_LOTE = RESULTADO.nfeProc.NFe.infNFe.det[x].prod.rastro.dVal F008_APS_NFE_ITENS_TEMP.F008_UND_PROD_NFE = RESULTADO.nfeProc.NFe.infNFe.det[x].prod.uCom F008_APS_NFE_ITENS_TEMP.F008_QTDE_PROD_NFE = RESULTADO.nfeProc.NFe.infNFe.det[x].prod.qCom F008_APS_NFE_ITENS_TEMP.F008_VLR_UNIT_PROD_NFE = RESULTADO.nfeProc.NFe.infNFe.det[x].prod.vUnCom F008_APS_NFE_ITENS_TEMP.F008_VLT_TOTAL_PROD_NFE = RESULTADO.nfeProc.NFe.infNFe.det[x].prod.vProd F008_APS_NFE_ITENS_TEMP.F008_UND_PROD_ESTOQUE = 42 F008_APS_NFE_ITENS_TEMP.F008_QTDE_PROD_ESTOQUE = 0 F008_APS_NFE_ITENS_TEMP.F008_VLR_UNIT_PROD_ESTOQUE = 0 F008_APS_NFE_ITENS_TEMP.F008_VLT_TOTAL_PROD_ESTOQUE = 0 F008_APS_NFE_ITENS_TEMP.F008_RATEIO_FRETE = 0 F008_APS_NFE_ITENS_TEMP.F008_RATEIO_DESCONTO = 0 F008_APS_NFE_ITENS_TEMP.F008_ID_CENTROCUSTO = 0 F008_APS_NFE_ITENS_TEMP.F008_CENTROCUSTO = 0 F008_APS_NFE_ITENS_TEMP.F008_CODIGO_BARRAS = 0 F008_APS_NFE_ITENS_TEMP.F008_MATMED = "" F008_APS_NFE_ITENS_TEMP.F008_ETIQUETA = 0 F008_APS_NFE_ITENS_TEMP.AUDT_DATA_ADD = DateSys()+TimeSys() F008_APS_NFE_ITENS_TEMP.AUDT_USER_ADD = GnUserID F008_APS_NFE_ITENS_TEMP.AUDT_EXCLUIDO = "N" HAdd(F008_APS_NFE_ITENS_TEMP) END //EDT_Valor_Frete //EDT_Valor_Desconto //EDT_Valor_Produtos //EDT_Valor_Total_da_Nfe //TOTAIS DA NFE //======================================================== //======================================================== sXml_Result += CR+CR+"//TOTAL"+CR+CR sXml_Result += CR+RESULTADO.nfeProc.NFe.infNFe.total.ICMSTot.vBC sXml_Result += CR+RESULTADO.nfeProc.NFe.infNFe.total.ICMSTot.vICMS sXml_Result += CR+RESULTADO.nfeProc.NFe.infNFe.total.ICMSTot.vBCST sXml_Result += CR+RESULTADO.nfeProc.NFe.infNFe.total.ICMSTot.vST sXml_Result += CR+RESULTADO.nfeProc.NFe.infNFe.total.ICMSTot.vProd EDT_Valor_Produtos = RESULTADO.nfeProc.NFe.infNFe.total.ICMSTot.vProd sXml_Result += CR+RESULTADO.nfeProc.NFe.infNFe.total.ICMSTot.vFrete EDT_Valor_Frete = RESULTADO.nfeProc.NFe.infNFe.total.ICMSTot.vFrete // sXml_Result += CR+RESULTADO.nfeProc.NFe.infNFe.total.ICMSTot.vSeg sXml_Result += CR+RESULTADO.nfeProc.NFe.infNFe.total.ICMSTot.vDesc EDT_Valor_Desconto = RESULTADO.nfeProc.NFe.infNFe.total.ICMSTot.vDesc sXml_Result += CR+RESULTADO.nfeProc.NFe.infNFe.total.ICMSTot.vII sXml_Result += CR+RESULTADO.nfeProc.NFe.infNFe.total.ICMSTot.vIPI sXml_Result += CR+RESULTADO.nfeProc.NFe.infNFe.total.ICMSTot.vPIS sXml_Result += CR+RESULTADO.nfeProc.NFe.infNFe.total.ICMSTot.vCOFINS sXml_Result += CR+RESULTADO.nfeProc.NFe.infNFe.total.ICMSTot.vOutro sXml_Result += CR+RESULTADO.nfeProc.NFe.infNFe.total.ICMSTot.vNF EDT_Valor_Total_da_Nfe = RESULTADO.nfeProc.NFe.infNFe.total.ICMSTot.vNF sXml_Result += CR+CR+"//TRANSPORTADORA"+CR+CR sXml_Result += CR+RESULTADO.nfeProc.NFe.infNFe.transp.modFrete // EDT_Result += CR+RESULTADO.nfeProc.NFe.infNFe.transp.transporta.CNPJ // EDT_Result += CR+RESULTADO.nfeProc.NFe.infNFe.transp.transporta.xNome // EDT_Result += CR+RESULTADO.nfeProc.NFe.infNFe.transp.transporta.IE // EDT_Result += CR+RESULTADO.nfeProc.NFe.infNFe.transp.transporta.xEnder // EDT_Result += CR+RESULTADO.nfeProc.NFe.infNFe.transp.transporta.xMun // EDT_Result += CR+RESULTADO.nfeProc.NFe.infNFe.transp.transporta.UF sXml_Result += CR+CR+"//VEICULO"+CR+CR // EDT_Result += CR+RESULTADO.nfeProc.NFe.infNFe.transp.veicTransp.placa // EDT_Result += CR+RESULTADO.nfeProc.NFe.infNFe.transp.veicTransp.UF // EDT_Result += CR+RESULTADO.nfeProc.NFe.infNFe.transp.veicTransp.RNTC sXml_Result += CR+CR+"//VEICULO REBOQUE"+CR+CR // EDT_Result += CR+RESULTADO.nfeProc.NFe.infNFe.transp.reboque.placa // EDT_Result += CR+RESULTADO.nfeProc.NFe.infNFe.transp.reboque.UF // EDT_Result += CR+RESULTADO.nfeProc.NFe.infNFe.transp.reboque.RNTC sXml_Result += CR+CR+"//VOLUMES"+CR+CR // EDT_Result += CR+RESULTADO.nfeProc.NFe.infNFe.transp.vol.qVol // EDT_Result += CR+RESULTADO.nfeProc.NFe.infNFe.transp.vol.esp // EDT_Result += CR+RESULTADO.nfeProc.NFe.infNFe.transp.vol.marca // EDT_Result += CR+RESULTADO.nfeProc.NFe.infNFe.transp.vol.nVol // EDT_Result += CR+RESULTADO.nfeProc.NFe.infNFe.transp.vol.pesoL // EDT_Result += CR+RESULTADO.nfeProc.NFe.infNFe.transp.vol.pesoB // EDT_Result += CR+RESULTADO.nfeProc.NFe.infNFe.transp.vol.lacres.nLacre sXml_Result += CR+CR+"//INFORMAÇÕES ADICIONAIS"+CR+CR sXml_Result += CR+RESULTADO.nfeProc.NFe.infNFe.infAdic.infCpl sXml_Result += CR+CR+"//CERTIFICADO"+CR+CR sXml_Result += CR+RESULTADO.nfeProc.NFe.Signature.KeyInfo.X509Data.X509Certificate TableDisplay(TABLEGRID_F008_APS_NFE_ITENS_TEMP,taInit) END ELSE Info("Não existe o arquivo ou nao informado/encontrado") END
// Summary: // Syntax: // UI_HabilitaCampos () // // Parameters: // None // Return value: // None // // For instance: // Indicate an example. // PROCEDURE UI_HabilitaCampos()
IF EDT_NumNota <> "" AND EDT_Serie <> "" AND EDT_Fornecedor_Razao_Social <> "" AND EDT_Valor_Produtos <> "" AND EDT_Valor_Total_da_Nfe <> "" AND EDT_Valor_Produtos <> 0.0000 AND EDT_Valor_Total_da_Nfe <> 0.0000 THEN GR_ItensNFE..State = Active BTN_Incluir..State = Active IF TABLEGRID_F008_APS_NFE_ITENS_TEMP > 0 THEN BTN_Alterar..State = Active END ELSE GR_ItensNFE..State = Grayed END
GR_ItensNFE..State = Grayed BTN_GravaEstoque..State = Grayed BTN_Ratear_item..State = Grayed BTN_Excluir..State = Grayed BTN_Alterar..State = Grayed BTN_Incluir..State = Grayed
-- Adriano José Boller ______________________________________________ Consultor e Representante Oficial da PcSoft no Brasil +55 (41) 99949 1800 adrianoboller@gmail.com skype: adrianoboller http://wxinformatica.com.br/Mensagem modificada, dezembro, 19 2019 - 6:35 PM |
| |
| |
| | | |
|
| | |
| |
Membro registado 3.655 mensagems Popularité : +175 (223 votes) |
|
Publicado em dezembro, 19 2019 - 6:33 PM |
Esse exemplo vai preencher o cabeçalho e os itens sozinho
-- Adriano José Boller ______________________________________________ Consultor e Representante Oficial da PcSoft no Brasil +55 (41) 99949 1800 adrianoboller@gmail.com skype: adrianoboller http://wxinformatica.com.br/Mensagem modificada, dezembro, 19 2019 - 6:34 PM |
| |
| |
| | | |
|
| | |
| |
Membro registado 3.655 mensagems Popularité : +175 (223 votes) |
|
Publicado em dezembro, 19 2019 - 6:48 PM |
-- Adriano José Boller ______________________________________________ Consultor e Representante Oficial da PcSoft no Brasil +55 (41) 99949 1800 adrianoboller@gmail.com skype: adrianoboller http://wxinformatica.com.br/ |
| |
| |
| | | |
|
| | |
| |
Membro registado 3.655 mensagems Popularité : +175 (223 votes) |
|
Publicado em dezembro, 19 2019 - 6:49 PM |
-- Adriano José Boller ______________________________________________ Consultor e Representante Oficial da PcSoft no Brasil +55 (41) 99949 1800 adrianoboller@gmail.com skype: adrianoboller http://wxinformatica.com.br/ |
| |
| |
| | | |
|
| | |
| |
Membro registado 3.655 mensagems Popularité : +175 (223 votes) |
|
Publicado em dezembro, 23 2019 - 1:27 PM |
Detalhes adicionais ###########################
Validando e Gerenciando arquivos XSD com XML
WINDEV, WINDEV Mobile e WEBDEV incluem várias funções para manipular o código XML. O código XML usado deve estar em conformidade com o padrão XML. Consulte uma documentação específica para XML para obter mais detalhes. Veja XML para mais detalhes. WINDEV, WEBDEV e WINDEV Mobile permitem importar arquivos no formato XSD. Um arquivo XSD contém a descrição do arquivo XML com o mesmo nome. Conhecer a estrutura de um documento XML permite verificar a validade deste documento. A linguagem de descrição para o conteúdo de um documento XSD também está no formato XML.
Um exemplo de arquivo XSD:
<?xml version="1.0" encoding="UTF-8"?> <xsd:schema xmlns:xsd="http://www.w3.org/2001/XMLSchema"> <xsd:element name="person"> <xsd:complexType> <xsd:sequence> <xsd:element name="lastname" type="xsd:string"/> <xsd:element name="firstname" type="xsd:string"/> <xsd:element name="dob" type="xsd:date"/> <xsd:element name="email" type="xsd:string" minOccurs="0" maxOccurs="unbounded" /> </xsd:sequence> </xsd:complexType> </xsd:element> </xsd:schema>
e aqui um Xml que deve obedecer a formatação do XSD:
<?xml version="1.0" encoding="UTF-8"?> <person xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="person.xsd"> <lastname>Johnson</lastname> <firstname>John</firstname> <dob>1967-08-13</dob> <email>test@yahoo.com</email> </person>
Importe o arquivo XSD para um projeto, para importar um arquivo XSD para um projeto faça os seguintes passos:
No painel "Explorador de projetos", selecione "Descrições XML".
Clique com o botão direito e selecione "Importar um arquivo de descrição XML".
Selecione o arquivo XSD da descrição para importar.
Validar.
O XSD é adicionado automaticamente ao explorador de projetos (na ramificação "Descrição XML").
Está pronto para uso!!!
Cuidado: Para operar em tempo de execução, o arquivo XSD não deve ser encontrado em um subdiretório do projeto ou em um subdiretório do executável.
Usando uma descrição importada para o projeto, para usar a descrição do documento XML, tudo que você precisa fazer é usar as variáveis geradas automaticamente pela importação. Declare um documento XML no formato da descrição importada. Por exemplo, se a descrição importada for denominada 'pessoa':
cMyDoc is xmlDocument <description="person">
Nota: Você pode especificar a extensão do arquivo durante a declaração. Por exemplo:
cMyDoc is xmlDocument <description="person.xsd">
Inicialize as diferentes variáveis incluídas na descrição do documento XML. Por exemplo, se o documento incluir o sobrenome e o nome de uma pessoa:
cMyDoc.person.lastname = "MOORE" cMyDoc.person.firstname = "VINCE"
Notas: Cada elemento é separado por um ponto . . Uma ajuda é proposta ao inserir os nomes das variáveis. Se o nome de um elemento contiver um caractere especial (traço, por exemplo), ele deverá ser colocado entre aspas simples:
cMyDoc.person.'id-person' = "ValueId"
Várias funções podem ser usadas para manipular o arquivo XSD para validar a descrição do arquivo XML:
XMLSave Salva um documento XML em um arquivo.
XMLValidDocument Valida um documento XML de um esquema XSD.
XMLValidNode Valida um nó XML, seus filhos e seus atributos a partir de sua descrição no esquema XSD vinculado ao documento XML.
Exemplo: criação completa de um arquivo de acordo com a descrição XSD fornecida no exemplo:
cMyDoc is xmlDocument <description="person.xsd">
cMyDoc.person.lastname = "Moore" cMyDoc.person.firstname = "Vince" cMyDoc.person.dob = "19710211" cMyDoc.person.email[1] = "vince.moore@mydomain.com" cMyDoc.person.email[2] = "vince.moore@otherdomain.com"
XMLSave(cMyDoc, fExeDir() + ["\"] + "test.xml")
// Or with an intermediate check: IF XMLValidDocument(cMyDoc) = True THEN XMLSave(cMyDoc, fExeDir() + ["\"] + "test.xml") IF ErrorOccurred = True THEN Error("Unable to save the XML document", ErrorInfo()) ELSE Info("OK", fExeDir() + ["\"] + "test.xml") END ELSE Error("The XML document is invalid", ErrorInfo()) END
LINKS
https://help.windev.com/en-US/… https://help.windev.com/en-US/…
-- Adriano José Boller ______________________________________________ Consultor e Representante Oficial da PcSoft no Brasil +55 (41) 99949 1800 adrianoboller@gmail.com skype: adrianoboller http://wxinformatica.com.br/Mensagem modificada, dezembro, 23 2019 - 1:27 PM |
| |
| |
| | | |
|
| | | | |
| | |
| | |
| |
|
|
|