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.
daruma.prg
(2.59 KiB) Baixado 490 vezes

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.