Página 1 de 5
Darumaframework.dll com xhb
Enviado: 18 Mai 2011 21:17
por marcos.gurupi
Caros, alguem estah usando a nova dll da daruma com o xhb 1.0.0 + hwgui? Eu n tenho nenhuma impressora de teste, o q falta a daruma eh um emulador. Eu preciso da nova funcao do SPED e SINTEGRA e tem somente na nova dll. Se alguem tiver um exemplo de como usar a DLL com xhb post aqui.
Marcos Roberto.
Darumaframework.dll com xhb
Enviado: 19 Mai 2011 09:08
por DLZ
Bom dia
Até onde eu sei o nome da DLL da daruma para windows é DARUMA32.DLL e não DarumaFramework.dll !
Concordo com vc no que diz respeito ao emullador.. A Daruma é a única que não possui, tem que ter a impressora para desenvolver, por outro lado, eles tem boas condições para desenvolvedores adquerirem a impressora.
é mole utilizar a Daruma32.dll, basta baixa-la no site da Daruam juntamente com o manual eletrônico e aplicar as funções..
Não tenho um exemplo com as funções expecíficas para o SPED e cia ltda, mas é tudo a mesma coisa..
vou te passar um exemplo onde estou fazendo o Download da MFD. Nesse mesmoe exemplo tb tem como abrir, registrar itens e cancelar um cupom fiscal (está em comentário no programa)
Espero ter ajudado.
Um abraço.
Darumaframework.dll com xhb
Enviado: 24 Mai 2011 21:49
por gss200610
OLA AMIGOS , VE SE AJUDA:
usando em seu fonte:
Código: Selecionar todos
function main()
local nretorno:=0
LoadDaruma()
nretorno := RGERARRELATORIO_ECF_DARUMA("SINTEGRA", "DATAM", "24/05/2011", "24/05/2011")
IF nretorno != 1 /// erro no comando
? "erro no comando"
endif
return nil
#pragma BEGINDUMP
#include "hbapi.h"
#include "windows.h"
static HMODULE hDllECF = NULL;
//Relatório PAF-ECF ON-line
typedef int ( WINAPI * _RGERARRELATORIO_ECF_DARUMA)(char* pszRelatorio, char* pszTipo, char* pszInicial, char* pszFinal);
HB_FUN( LOADDARUMA)
{
if ( !hDllECF)
{
hDllECF = LoadLibrary("Darumaframework.dll");
}
}
HB_FUNC( RGERARRELATORIO_ECF_DARUMA )
{
_RGERARRELATORIO_ECF_DARUMA pFunc = ( _RGERARRELATORIO_ECF_DARUMA ) GetProcAddress(hDllECF, "rGerarRelatorio_ECF_Daruma");
hb_retnl( (long) pFunc( (char*) hb_parc(1), (char*) hb_parc(2), (char*) hb_parc(3), (char*) hb_parc(4) ) );
}
#pragma ENDDUMP
Darumaframework.dll com xhb
Enviado: 25 Mai 2011 15:22
por marcos.gurupi
DLZ, dah uma atualizada nas informacoes pq a DARUMA jah descontinuo a daruma32.dll (informacoes do proprio suporte da daruma).
Sobre o colega q postou o exemplo muito obrigado, era isso mesmo q estava querendo. Vou continuar com a daruma32.dll por enguanto e vou chamar a darumaframework.dll somente quando for pedir o rel.do SPED. Vlw
Marcos Roberto.
Darumaframework.dll com xhb
Enviado: 27 Mai 2011 09:35
por DLZ
Bom dia.
Realmente nãoe estava sabendo dessa informação. Acabei de confirmar.
Na minha opinião, a Daruma "pisou feio na bola" com nós desenvolvedores fazendo isso. Veja bem, além de alterar o nome da Dll ainda mudaram o nome de todas as funções !! Isso significa que vou ter que mudar tudo dentro do programa que já trabalha com a Daruma32.dll !! Um trabalho que poderia ser evitado !
Fiquei muito decepcionado com a Daruma, pois entre todas as marcas, era a que mais se preocupava com nós desenvolvedores !
Abraços !
Darumaframework.dll com xhb
Enviado: 27 Mai 2011 23:00
por janio
Tbem num gostei dessa historia naum!
Darumaframework.dll com xhb
Enviado: 28 Mai 2011 19:45
por marcos.gurupi
Mas acho que eh uma opiniao de todos. Será que essa mudanca nao foi por causa daquela acao q a BEMATECH movel contra a daruma quase copiar a forma das funcoes da DLL:? Tipo aproveitaram (DARUMA) o sped e criaram essa dll de uma forma totalmente diferente.
Marcos Roberto.
Darumaframework.dll com xhb
Enviado: 31 Mai 2011 15:15
por rochinha
Amiguinhos,
Não uso as DLLs da Daruma, mas tenho pra mim que DarumaFramework usa o .NET Framework. Talvez mais uma dependencia de uso da mesma.
Darumaframework.dll com xhb
Enviado: 05 Ago 2011 17:07
por Rafael Tapia
Ola para todos, estou tenta fazer o SPED pela DarumaframeWork.DLL utilizando da seguinte maneira.
Código: Selecionar todos
NDLL:=Dllload("DarumaFrameWork.dll")
nRetorno:=DLLCALL(NDLL,32,"rGerarRelatorio_ECF_Daruma","SPED", "DATAM", "01072011", "04072011")
// ou
NDLL:=LoadLibrary("DarumaFrameWork.dll")
nRetorno:=DLLCALL(NDLL,32,"rGerarRelatorio_ECF_Daruma","SPED", "DATAM", "01072011", "04072011")
O retorno esta voltando sempre (0)-Zero, e nao tem geito de gerar o TXT com o Sped.
Alguem teria uma ideia???
Darumaframework.dll com xhb
Enviado: 05 Ago 2011 17:35
por anacatacombs
retorna sempre 0? 0 não é erro de comunicação? vc tentou enviar outro método pra ver se vai?
Darumaframework.dll com xhb
Enviado: 05 Ago 2011 17:46
por sambomb
Darumaframework.dll com xhb
Enviado: 06 Ago 2011 14:29
por marcos.gurupi
Caro este prg poderia funcionar com xhb e hwgui?
Marcos Roberto.
Darumaframework.dll com xhb
Enviado: 08 Ago 2011 08:21
por sambomb
Até onde eu sei ele é para xHarbour, sem vínculo com a biblioteca visual...
Darumaframework.dll com xhb
Enviado: 10 Ago 2011 15:18
por Rafael Tapia
Ola a todos, estou com o seguinte problema com a ( Darumaframework.dll ), hj ainda uso a ( Daruma32.Dll ) mas gostaria de gerar o SPED e preciso da ( Darumaframework ), entao ate o momente fiz da seguinte maneira:
Código: Selecionar todos
NDLL2:=DllLoad("DarumaFramework.dll")
cRetorno:=DLLCALL(NDLL2,32,"rGerarRelatorio_ECF_Daruma","SPED","DATAM","01082011","08082011")
DllUnload(NDLL2)
mas o retorno esta voltando sempre (0) zero. Notei q colocando o mesmo codigo em um ( PRG ) fora do sistema o retorno é (1) e o arquivo de SPED é gerado em TXT, mas quando coloco o comando dentro do sistema, o retorno passa a ser (0). Talvez porq a porta ja esteje aberta?
Bom no mais agora modifiquei tudo novamente modificando o arquivo ( dlldaruma.c ) onde utilizo para os comandos da Daruma32.Dll, colocando assim:
Código: Selecionar todos
typedef int (WINAPI * _DARUMA_FIMFD_ACIONARGUILHOTINA)( void );
typedef int (WINAPI * _RGERARRELATORIO_ECF_DARUMA)(char* pszRelatorio, char* pszTipo, char* pszInicial, char* pszFinal);
static HINSTANCE handle1 = NULL;
HB_FUNC(INICIADLLDARUMA)
{
handle1 = LoadLibrary("daruma32.dll");
}
HB_FUNC(TERMINADLLDARUMA)
{
FreeLibrary( handle1 );
}
HB_FUN( LOADDARUMA)
{
if ( handle1)
{
handle1 = LoadLibrary("Darumaframework.dll");
}
}
HB_FUNC( RGERARRELATORIO_ECF_DARUMA )
{
_RGERARRELATORIO_ECF_DARUMA pFunc = ( _RGERARRELATORIO_ECF_DARUMA ) GetProcAddress(handle1, "rGerarRelatorio_ECF_Daruma");
hb_retni( (long) pFunc( (char*) hb_parc(1), (char*) hb_parc(2), (char*) hb_parc(3), (char*) hb_parc(4) ) );
}
HB_FUNC( DARUMA_FI_VENDEITEM )
{
if (handle1)
{
_DARUMA_FI_VENDEITEM pFunc;
char a[ 150 ] = { 0 };
char b[ 150 ] = { 0 };
char c[ 150 ] = { 0 };
char d[ 150 ] = { 0 };
char e[ 150 ] = { 0 };
short f = 0;
char g[ 150 ] = { 0 };
char h[ 150 ] = { 0 };
char i[ 150 ] = { 0 };
pFunc = (_DARUMA_FI_VENDEITEM) GetProcAddress(handle1, "Daruma_FI_VendeItem");
strcpy(a, hb_parc( 1 ));
strcpy(b, hb_parc( 2 ));
strcpy(c, hb_parc( 3 ));
strcpy(d, hb_parc( 4 ));
strcpy(e, hb_parc( 5 ));
f = hb_parni( 6 );
strcpy(g, hb_parc( 7 ));
strcpy(h, hb_parc( 8 ));
strcpy(i, hb_parc( 9 ));
hb_retni(pFunc(a, b, c, d, e, f, g, h, i));
}
}
e no sistema coloquei assim:
Código: Selecionar todos
nretorno := rGerarRelatorio_ECF_Daruma("SPED","DATAM","01082011","08082011")
Mas quando executo o sistema e mando gerar o SPED da o erro:
SISTEMA.tal parou de funcionar
Windows etc e tal
Fechar o programa
Depurar o programa etc, e finaliza o EXE.
Será q alguem ja passou por isso e pode me dar uma orientação.
Darumaframework.dll com xhb
Enviado: 12 Ago 2011 13:32
por Rafael Tapia
Oi para todos, depois de um pouco de stress consegui resolver da seguinte maneira:
Código: Selecionar todos
if cecFiscPrt = "COM1"
cecFiscPrt := "COM2"
nRetorno := Daruma_Registry_Porta(cecFiscPrt)
endif
if cecFiscPrt = "COM2"
cecFiscPrt := "COM1"
nRetorno := Daruma_Registry_Porta(cecFiscPrt)
endif
sdDatat1 = strtran(dtoc(sdData1),"/","")
sdDatat2 = strtran(dtoc(sdData2),"/","")
hDllDaruma := LoadLibrary( "DarumaFrameWork.dll" )
cRetorno:=DLLCALL(hDllDaruma,32,"rGerarRelatorio_ECF_Daruma","SPED","DATAM",sdDatat1,sdDatat2)
if cecFiscPrt = "COM2"
cecFiscPrt := "COM1"
nRetorno := Daruma_Registry_Porta(cecFiscPrt)
endif
if cecFiscPrt = "COM1"
cecFiscPrt := "COM2"
nRetorno := Daruma_Registry_Porta(cecFiscPrt)
endif
Se a COM utilizada no sistema for a COM1 modifico para a COM2 nos registros do windows e depois do
rGerarRelatorio_ECF_Daruma volto a porta para COM1 etc e tal.
Pelo menos Funciona.