Darumaframework.dll com xhb

Projeto [x]Harbour - Compilador de código aberto compatível com o Clipper.

Moderador: Moderadores

marcos.gurupi
Usuário Nível 4
Usuário Nível 4
Mensagens: 939
Registrado em: 06 Jul 2004 11:53
Localização: Gurupi-TO

Darumaframework.dll com xhb

Mensagem 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.
Marcos Roberto
NetService Software
DLZ
Usuário Nível 3
Usuário Nível 3
Mensagens: 184
Registrado em: 09 Jun 2008 10:09
Localização: Ibirubá - RS - Brasil

Darumaframework.dll com xhb

Mensagem 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
gss200610
Usuário Nível 1
Usuário Nível 1
Mensagens: 2
Registrado em: 22 Mai 2010 15:55
Localização: CONCEICAO DO ARAGUAIA

Darumaframework.dll com xhb

Mensagem 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
Editado pela última vez por Toledo em 24 Mai 2011 22:21, em um total de 1 vez.
Razão: Mensagem editada para colocar a tag [ code ]<br>Veja como utilizar esta tag: http://www.pctoledo.com.br/forum/faq.php?mode=bbcode#f2r1
marcos.gurupi
Usuário Nível 4
Usuário Nível 4
Mensagens: 939
Registrado em: 06 Jul 2004 11:53
Localização: Gurupi-TO

Darumaframework.dll com xhb

Mensagem 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.
Marcos Roberto
NetService Software
DLZ
Usuário Nível 3
Usuário Nível 3
Mensagens: 184
Registrado em: 09 Jun 2008 10:09
Localização: Ibirubá - RS - Brasil

Darumaframework.dll com xhb

Mensagem 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 !
Avatar do usuário
janio
Colaborador
Colaborador
Mensagens: 1846
Registrado em: 06 Jul 2004 07:43
Localização: UBAJARA - CE

Darumaframework.dll com xhb

Mensagem por janio »

Tbem num gostei dessa historia naum!
fui...
e-mail:janioaguiar@yahoo.com.br
msn: janio_aguiar@hotmail.com
xHarbour1.2.1/Harbour3.2 + wvg + hwgui + Mediator + MySql
marcos.gurupi
Usuário Nível 4
Usuário Nível 4
Mensagens: 939
Registrado em: 06 Jul 2004 11:53
Localização: Gurupi-TO

Darumaframework.dll com xhb

Mensagem 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.
Marcos Roberto
NetService Software
Avatar do usuário
rochinha
Administrador
Administrador
Mensagens: 4664
Registrado em: 18 Ago 2003 20:43
Localização: São Paulo - Brasil
Contato:

Darumaframework.dll com xhb

Mensagem 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.
OPS! LINK QUEBRADO? Veja ESTE TOPICO antes e caso não encontre ENVIE seu email com link do tópico para [url=mailto://fivolution@hotmail.com]fivolution@hotmail.com[/url]. Agradecido.

@braços : ? )

A justiça divina tarda mas não falha, enquanto que a justiça dos homens falha porque tarda.
Rafael Tapia
Usuário Nível 1
Usuário Nível 1
Mensagens: 4
Registrado em: 25 Mar 2011 14:54
Localização: Florianopolis

Darumaframework.dll com xhb

Mensagem 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???
anacatacombs
Membro Master
Membro Master
Mensagens: 472
Registrado em: 12 Jul 2005 16:53
Localização: Cianorte-Paraná
Contato:

Darumaframework.dll com xhb

Mensagem por anacatacombs »

retorna sempre 0? 0 não é erro de comunicação? vc tentou enviar outro método pra ver se vai?
sambomb
Usuário Nível 3
Usuário Nível 3
Mensagens: 250
Registrado em: 24 Out 2008 17:02
Localização: Itaocara - RJ - Brasil

Darumaframework.dll com xhb

Mensagem por sambomb »

Imagem

Rca Sistemas - Itaocara - RJ
marcos.gurupi
Usuário Nível 4
Usuário Nível 4
Mensagens: 939
Registrado em: 06 Jul 2004 11:53
Localização: Gurupi-TO

Darumaframework.dll com xhb

Mensagem por marcos.gurupi »

Caro este prg poderia funcionar com xhb e hwgui?

Marcos Roberto.
Marcos Roberto
NetService Software
sambomb
Usuário Nível 3
Usuário Nível 3
Mensagens: 250
Registrado em: 24 Out 2008 17:02
Localização: Itaocara - RJ - Brasil

Darumaframework.dll com xhb

Mensagem por sambomb »

Até onde eu sei ele é para xHarbour, sem vínculo com a biblioteca visual...
Imagem

Rca Sistemas - Itaocara - RJ
Rafael Tapia
Usuário Nível 1
Usuário Nível 1
Mensagens: 4
Registrado em: 25 Mar 2011 14:54
Localização: Florianopolis

Darumaframework.dll com xhb

Mensagem 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.
Rafael Tapia
Usuário Nível 1
Usuário Nível 1
Mensagens: 4
Registrado em: 25 Mar 2011 14:54
Localização: Florianopolis

Darumaframework.dll com xhb

Mensagem 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.
Responder