Jump to content
Fivewin Brasil

MDFe Flexdocs


Manoel Marinho

Recommended Posts

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
Link to comment
Share on other sites

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.

Link to comment
Share on other sites

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!

Link to comment
Share on other sites

Entendi de onde você pegou:
Exemplos de uso:
Visual Basic 6.0
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

Link to comment
Share on other sites

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.

Guest
Reply to this topic...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

Loading...
×
×
  • Create New...