Manoel Marinho Posted March 5, 2015 Report Share Posted March 5, 2015 Estou tentando compilar um PRG (abaixo) que utiliza a DLL MDFE_UTIL da FLEXDOCS. No arquivo WMDFE.c gerado pelo xHarbour, aparece a instru玢o #include "OBJMDFEUTIL.xns", que gera o erro de compila玢o abaixo: obj\WMDFE.c(19): fatal error: Could not find include file "OBJMDFEUTIL.xns". Alguém sabe o que é isso ? // MDF-e #include "FiveWin.ch" #include "hbxml.ch" #include "FileIO.ch" function MDFe() MDFe_Ide() return NIL function MDFe_Ide() local objMDFeUtil TRY objMDFeUtil := GetActiveObject("MDFe_Util.Util") CATCH TRY objMDFeUtil := CreateObject("MDFe_Util.Util") CATCH msgstop("Erro iniciando objeto MDFe_Util.Util","Atenção") return NIL END END ide_cUF := 35 // código da UF - tabela do IBGE: 35 - SP, 43 - RS, etc ide_tpAmb := 2 // informar tipo de ambiente: 1 - Produção 2 - Homologação. ide_tpEmit := 1 // informar tipo do emitente: 1 - Prestador de serviço de transporte 2 - Transporte de Carga Própria. [20-03-13] // OBS: Deve ser preenchido com 2 por Emitentes de NF-e e pelas Transportadoras quando estiverem fazendo transporte de carga própria NT 2013/001 ide_mod := 58 // informar o código do Modelo do Documento Fiscal, código 58 para a MDF-e. ide_serie := 0 // informar a série do Documento Fiscal, informar 0 (zero) para série única. ide_nMDF := 111111111 // informar o Número do MDF-e." ide_cMDF := 12345678 // informar o código numérico que compõe a Chave de Acesso. Número aleatório gerado pelo emitente para cada MDF-e para evitar acessos indevidos ao documento. ide_cDV := 1 // informar o Dígito Verificador da chave de acesso do MDF-e. ide_modal := "1" // informar o Modal:" // 1 - Rodoviário; // 2 - Aéreo; // 3 - Aquaviário; // 4 - Ferroviário. ide_dhEmi := Transf(DtoS(Date()),"@R 9999-99-99")+"T"+Time()+alltrim(str(TimeZone())) // informar a data e hora de emissão do Documento Fiscal.Utilizar o tipo data/hora do ambiente programação utilizado. // VB: identificador_dhEmi := #10/8/2011 5:22:45 PM# / identificador_dhEmi := Now ide_tpEmis := 1 // Forma de emissão do MDF-e: // 1 - Normal; // 2 - Contingência. ide_procEmi := 0 // informar o código de identificação do processo de emissão do MDF-e: // 0 - emissão de MDF-e com aplicativo do contribuinte; // 3 - emissão MDF-e pelo contribuinte com aplicativo fornecido pelo Fisco. ide_verProc := "1.1" // informar a versão do processo de emissão do MDF-e utilizado (aplicativo emissor de MDF-e). ide_UFIni := "SP" // informar a sigla da UF de Carregamento. Informar //EX// para operações com o exterior. ide_UFFim := "SP" // informar a sigla da UF de Desarregamento. Informar //EX// para operações com o exterior. ide_infMunCarrega_Grupo := "<infMunCarrega><cMunCarrega>3550308</cMunCarrega><xMunCarrega>Sao Paulo</xMunCarrega></infMunCarrega>" // grupo XML das informações dos municípios de carregamento, informar os municípios da UF de início do percurso onde houver carregamento da carga. ide_infPercurso_Grupo_Opc := "" //grupo XML das informações das UF do percurso, serve para informar as UF intermediárias que são percorridas pelo veículo no percurso, não é necessário //informar quando não houverem UF intermediárias no percurso. // // gera a chave de acesso da MDF-e // // utilizar a função criaChaveDFe para gerar a chave de acesso, código da MDF-e e DV // CNPJ := "00000000000191" cUF := Trim(Str(ide_cUF)) //ano := Format(ide_dhEmi, "YY") ano := right(dtoc(date()),2) //mes := Format(ide_dhEmi, "mm") mes := strzero(month(date()),2,0) modelo := AllTrim(Str(ide_mod)) serie := AllTrim(Str(ide_serie)) numero := AllTrim(Str(ide_nMDF)) tpemis := AllTrim(Str(ide_tpEmis)) msgResultado := "" codigoseguranca := "segredo" // informar uma expressão para garantir o sigilo da forma de cálculo do cDFe cDFe := "" cDV := "" chave := "" resultado := 0 resultado := objMDFeUtil.CriaChaveDFe(cUF, ano, mes, CNPJ, modelo, serie, numero, tpemis, codigoseguranca, msgResultado, cDFe, cDV, chave) If resultado <> 5601 MsgStop( "Ocorreu um erro ao gerar a chave de acesso " + msgResultado, "Resultado" ) else alert( resultado ) EndIf ide_cDV := Val(cDV) // utilizar o que foi gerado no criachaveDFe ide_cMDF := Val(cDFe) // utilizar o que foi gerado no criachaveDFe ide := objMDFeUtil.ide(ide_cUF, ide_tpAmb, ide_tpEmit, ide_mod, ide_serie, ide_nMDF, ide_cMDF, ide_cDV, ide_modal, ide_dhEmi, ide_tpEmis, ide_procEmi, ide_verProc, ide_UFIni, ide_UFFim, ide_infMunCarrega_Grupo, ide_infPercurso_Grupo_Opc) MsgInfo( ide, "Informação" ) return NIL Quote Link to comment Share on other sites More sharing options...
kapiaba Posted March 6, 2015 Report Share Posted March 6, 2015 A DLL MDFe_Util.Util.DLL está no mesmo local do aplicativo? Não existe referencia a este erro na flexdocs, o melhor é voce abrir um ticket na flexdocs. http://pctoledo.com.br/forum/viewtopic.php?f=4&t=15808 http://fivewin.com.br/index.php?/topic/21803-manifesto-eletronico-de-documentos-fiscais-mdf-e/ abs. Quote Link to comment Share on other sites More sharing options...
marcioe Posted March 6, 2015 Report Share Posted March 6, 2015 ESTOU USANDO A UNINFE DA EMRESA UNIMAKE, QUE SERVE TANTO PARA NFE, MDFE, CTE, NFCE, NFS-E. TUDO EM UM SÓ É UMA ALTERNATIVA A MAIS PARA OS AMIGOS. Quote Link to comment Share on other sites More sharing options...
Manoel Marinho Posted March 6, 2015 Author Report Share Posted March 6, 2015 A DLL MDFe_Util.Util.DLL está no mesmo local do aplicativo? Não existe referencia a este erro na flexdocs, o melhor é voce abrir um ticket na flexdocs. http://pctoledo.com.br/forum/viewtopic.php?f=4&t=15808 http://fivewin.com.br/index.php?/topic/21803-manifesto-eletronico-de-documentos-fiscais-mdf-e/ abs. Eu já enviei um ticket e eles responderam que não podem ajudar porque não é erro na DLL e sim na compilação do meu aplicativo. Quote Link to comment Share on other sites More sharing options...
kapiaba Posted March 6, 2015 Report Share Posted March 6, 2015 Tente agora, e veja se acha o ERRO? O erro era seu mesmo... Desaprendeu? kkkkkkkkkkkkkkkkkkkkkkkkkkkk #Include "Directry.ch" #IFNDEF __DOS__ #include "FiveWin.ch" #ELSE #include "hbclass.ch" #ENDIF #include "hbxml.ch" #include "fileio.ch" function MDFe() MDFe_Ide() return NIL function MDFe_Ide() local objMDFeUtil #IFDEF __XHARBOUR__ TRY objMDFeUtil := GetActiveObject("MDFe_Util.Util") CATCH TRY objMDFeUtil := CreateObject("MDFe_Util.Util") CATCH #IFDEF __DOS__ Alert( "ERRO! " ) #ELSE msgstop("Erro iniciando objeto MDFe_Util.Util","Atenção") return NIL #ENDIF END TRY END TRY #ELSE objMDFeUtil := TOleAuto():New("MDFe_Util.Util") IF objMDFeUtil:hObj == 0 #IFDEF __DOS__ Alert( "ERRO! " ) #ELSE MsgStop( "ERROR! ", "Atencao") #ENDIF ENDIF #ENDIF ide_cUF := 35 // código da UF - tabela do IBGE: 35 - SP, 43 - RS, etc ide_tpAmb := 2 // informar tipo de ambiente: 1 - Produção 2 - Homologação. ide_tpEmit := 1 // informar tipo do emitente: 1 - Prestador de serviço de transporte 2 - Transporte de Carga Própria. [20-03-13] // OBS: Deve ser preenchido com 2 por Emitentes de NF-e e pelas Transportadoras quando estiverem fazendo transporte de carga própria NT 2013/001 ide_mod := 58 // informar o código do Modelo do Documento Fiscal, código 58 para a MDF-e. ide_serie := 0 // informar a série do Documento Fiscal, informar 0 (zero) para série única. ide_nMDF := 111111111 // informar o Número do MDF-e." ide_cMDF := 12345678 // informar o código numérico que compõe a Chave de Acesso. Número aleatório gerado pelo emitente para cada MDF-e para evitar acessos indevidos ao documento. ide_cDV := 1 // informar o Dígito Verificador da chave de acesso do MDF-e. ide_modal := "1" // informar o Modal:" // 1 - Rodoviário; // 2 - Aéreo; // 3 - Aquaviário; // 4 - Ferroviário. ide_dhEmi := Transf(DtoS(Date()),"@R 9999-99-99")+"T"+Time()+alltrim(str(TimeZone())) // informar a data e hora de emissão do Documento Fiscal.Utilizar o tipo data/hora do ambiente programação utilizado. // VB: identificador_dhEmi := #10/8/2011 5:22:45 PM# / identificador_dhEmi := Now ide_tpEmis := 1 // Forma de emissão do MDF-e: // 1 - Normal; // 2 - Contingência. ide_procEmi := 0 // informar o código de identificação do processo de emissão do MDF-e: // 0 - emissão de MDF-e com aplicativo do contribuinte; // 3 - emissão MDF-e pelo contribuinte com aplicativo fornecido pelo Fisco. ide_verProc := "1.1" // informar a versão do processo de emissão do MDF-e utilizado (aplicativo emissor de MDF-e). ide_UFIni := "SP" // informar a sigla da UF de Carregamento. Informar //EX// para operações com o exterior. ide_UFFim := "SP" // informar a sigla da UF de Desarregamento. Informar //EX// para operações com o exterior. ide_infMunCarrega_Grupo := "<infMunCarrega><cMunCarrega>3550308</cMunCarrega><xMunCarrega>Sao Paulo</xMunCarrega></infMunCarrega>" // grupo XML das informações dos municípios de carregamento, informar os municípios da UF de início do percurso onde houver carregamento da carga. ide_infPercurso_Grupo_Opc := "" //grupo XML das informações das UF do percurso, serve para informar as UF intermediárias que são percorridas pelo veículo no percurso, não é necessário //informar quando não houverem UF intermediárias no percurso. // // gera a chave de acesso da MDF-e // // utilizar a função criaChaveDFe para gerar a chave de acesso, código da MDF-e e DV // CNPJ := "00000000000191" cUF := Trim(Str(ide_cUF)) //ano := Format(ide_dhEmi, "YY") ano := right(dtoc(date()),2) //mes := Format(ide_dhEmi, "mm") mes := strzero(month(date()),2,0) modelo := AllTrim(Str(ide_mod)) serie := AllTrim(Str(ide_serie)) numero := AllTrim(Str(ide_nMDF)) tpemis := AllTrim(Str(ide_tpEmis)) msgResultado := "" codigoseguranca := "segredo" // informar uma expressão para garantir o sigilo da forma de cálculo do cDFe cDFe := "" cDV := "" chave := "" resultado := 0 // erro aqui, voce colocou . ( ponto) correto : (dois pontos) resultado := objMDFeUtil:CriaChaveDFe(cUF, ano, mes, CNPJ, modelo, serie, numero, tpemis, codigoseguranca, msgResultado, cDFe, cDV, chave) If resultado <> 5601 MsgStop( "Ocorreu um erro ao gerar a chave de acesso " + msgResultado, "Resultado" ) else alert( resultado ) EndIf ide_cDV := Val(cDV) // utilizar o que foi gerado no criachaveDFe ide_cMDF := Val(cDFe) // utilizar o que foi gerado no criachaveDFe // erro aqui, voce colocou . ( ponto) correto : (dois pontos) ide := objMDFeUtil:ide(ide_cUF, ide_tpAmb, ide_tpEmit, ide_mod, ide_serie, ide_nMDF, ide_cMDF, ide_cDV, ide_modal, ide_dhEmi, ide_tpEmis, ide_procEmi, ide_verProc, ide_UFIni, ide_UFFim, ide_infMunCarrega_Grupo, ide_infPercurso_Grupo_Opc) MsgInfo( ide, "Informação" ) return NIL Abraços fera! Quote Link to comment Share on other sites More sharing options...
kapiaba Posted March 6, 2015 Report Share Posted March 6, 2015 Entendi de onde você pegou: Exemplos de uso: Visual Basic 6.0 http://www.flexdocs.com.br/guiamdfe/gerarMDFe.ide.html xharbour não é assim. Quote Link to comment Share on other sites More sharing options...
Manoel Marinho Posted March 6, 2015 Author Report Share Posted March 6, 2015 Entendi de onde você pegou: Exemplos de uso: Visual Basic 6.0 http://www.flexdocs.com.br/guiamdfe/gerarMDFe.ide.html xharbour não é assim. Acertou em cheio !!! Agora compilou, está dando erro na execução: Application =========== Path and name: C:\FONTES\WFAT\WFAT.EXE (32 bits) Size: 5,156,864 bytes Time from start: 0 hours 0 mins 12 secs Error occurred at: 06/03/2015, 13:58:16 Error description: Error MDFe_Util.Util/3 DISP_E_MEMBERNOTFOUND: IDE Args: [ 1] = N 35 [ 2] = N 2 [ 3] = N 1 [ 4] = N 58 [ 5] = N 0 [ 6] = N 111111111 [ 7] = N 0 [ 8] = N 0 [ 9] = C 1 [ 10] = C 2015-03-06T13:58:09-3 [ 11] = N 1 [ 12] = N 0 [ 13] = C 1.1 [ 14] = C SP [ 15] = C SP [ 16] = C <infMunCarrega><cMunCarrega>3550308</cMunCarrega><xMunCarrega>Sao Paulo</xMunCarrega></infMunCarrega> [ 17] = C Stack Calls =========== Called from: C:\xHarbour\source\rtl\win32ole.prg => TOLEAUTO:IDE(0) Called from: WMDFE.PRG => MDFE_IDE(90) Called from: WMDFE.PRG => MDFE(9) Called from: WFAT.PRG => MAIN(1831) System ====== CPU type: Intel® Core2 Duo CPU E7500 @ 2.93GHz 2933 Mhz Hardware memory: 2048 megs Free System resources: 90 % GDI resources: 90 % User resources: 90 % Compiler version: xHarbour build 1.2.1 Intl. (SimpLex) (Rev. 6633) Windows version: 6.1, Build 7601 Service Pack 1 Windows total applications running: 0 Variables in use ================ Procedure Type Value ========================== TOLEAUTO:IDE Param 1: N 35 Param 2: N 2 Param 3: N 1 Param 4: N 58 Param 5: N 0 Param 6: N 111111111 Param 7: N 0 Param 8: N 0 Param 9: C "1" Param 10: C "2015-03-06T13:58:09-3" Param 11: N 1 Param 12: N 0 Param 13: C "1.1" Param 14: C "SP" Param 15: C "SP" Param 16: C "<infMunCarrega><cMunCarrega>3550308</cMunCarrega><xMunCarrega>Sao Paulo</xMunCarrega></infMunCarrega>" Param 17: C "" Local 1: U Local 2: C "MDFe_Util.Util" MDFE_IDE Local 1: O Class: TOLEAUTO Local 2: U MDFE MAIN Local 1: C "" Linked RDDs =========== DBF DBFFPT DBFCDX DBFNTX DBFBLOB ADS ADT ADSCDX ADSNTX DataBases in use ================ Classes in use: =============== 1 ERROR 2 HASHENTRY 3 HBCLASS 4 HBOBJECT 5 TWINDOW 6 TBRUSH 7 TCONTROL 8 TWBROWSE 9 TBITMAP 10 TFOLDER 11 TTABS 12 TDIALOG 13 TMETER 14 TMETAFILE 15 TCOMBOBOX 16 TFONT 17 TICON 18 TCURSOR 19 TMENU 20 TMENUITEM 21 TTIMER 22 TMSGBAR 23 TRECT 24 TMSGITEM 25 TBAR 26 TBTNBMP 27 TOLEAUTO 28 TREG32 29 TSTRUCT Memory Analysis =============== 218 Static variables Dynamic memory consume: Actual Value: 0 bytes Highest Value: 0 bytes Quote Link to comment Share on other sites More sharing options...
kapiaba Posted March 6, 2015 Report Share Posted March 6, 2015 O que tem nesta linha: WMDFE.PRG => MDFE_IDE(90) ?? Quote Link to comment Share on other sites More sharing options...
Manoel Marinho Posted March 6, 2015 Author Report Share Posted March 6, 2015 O que tem nesta linha: WMDFE.PRG => MDFE_IDE(90) ?? ide := objMDFeUtil:ide(ide_cUF, ide_tpAmb, ide_tpEmit, ide_mod, ide_serie, ide_nMDF, ide_cMDF, ide_cDV, ide_modal, ide_dhEmi, ide_tpEmis, ide_procEmi, ide_verProc, ide_UFIni, ide_UFFim, ide_infMunCarrega_Grupo, ide_infPercurso_Grupo_Opc) kapiaba 1 Quote Link to comment Share on other sites More sharing options...
kapiaba Posted March 6, 2015 Report Share Posted March 6, 2015 Os parametros, estão corretos? Quote Link to comment Share on other sites More sharing options...
Manoel Marinho Posted March 6, 2015 Author Report Share Posted March 6, 2015 Os parametros, estão corretos? Não sei, vou colocar uns alerts para me mostrar os parâmetros antes de chamar o método. Por enquanto, muito obrigado pelas respostas. Quote Link to comment Share on other sites More sharing options...
Manoel Marinho Posted March 6, 2015 Author Report Share Posted March 6, 2015 Os parametros, estão corretos? O parâmetro dhEmi estava errado, eu estava passando no formato AAAA-MM-DDTHH:MM:SS mas tem que passar AAAA-MM-DD HH:MM:SS (com espaço no lugar do T). kapiaba 1 Quote Link to comment Share on other sites More sharing options...
kapiaba Posted March 6, 2015 Report Share Posted March 6, 2015 Ai muleke!! 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.