usar a bemafi32.dll no xharbour console.

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

Moderador: Moderadores

scom
Usuário Nível 3
Usuário Nível 3
Mensagens: 133
Registrado em: 15 Nov 2004 10:49
Localização: Dourados/MS

usar a bemafi32.dll no xharbour console.

Mensagem por scom »

ola amigos

alguem pode me ajudar a usar a bemafi32.dll no xharbour console. declarar a dll e usar seus comandos.

obrigado
S COM INFORMÁTICA
CLIPPER 5.3 / FIVEWIN 2.0 / BLINKER 7
XHARBOUR/ BCC582
Avatar do usuário
sygecom
Administrador
Administrador
Mensagens: 7131
Registrado em: 21 Jul 2006 10:12
Localização: Alvorada-RS
Contato:

Re: usar a bemafi32.dll no xharbour console.

Mensagem por sygecom »

Apesar de eu não trabalhar com ECF, guardei um exemplo que parece bem bom.
Anexos
sample.rar
(543.77 KiB) Baixado 449 vezes
Leonardo Machado
xHarbour.org + Hwgui + PostgreSql
scom
Usuário Nível 3
Usuário Nível 3
Mensagens: 133
Registrado em: 15 Nov 2004 10:49
Localização: Dourados/MS

Re: usar a bemafi32.dll no xharbour console(resolvido)

Mensagem por scom »

obrigado sygecom, resolvido


public DLLBematech:=Loadlibrary("Bemafi32.dll")

LeituraX()

FUNCTION LeituraX()
DllCall(DLLBematech,32,"Bematech_FI_LeituraX")
RETURN NIL
S COM INFORMÁTICA
CLIPPER 5.3 / FIVEWIN 2.0 / BLINKER 7
XHARBOUR/ BCC582
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

Re: usar a bemafi32.dll no xharbour console.

Mensagem por marcos.gurupi »

Comandos q levam parametros ou recebem dados da impressora tb foram testados?

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

Re: usar a bemafi32.dll no xharbour console.

Mensagem por DLZ »

Sim Marcos..
Qualquer função da DLL funciona perfeitamente..
Avatar do usuário
helio
Usuário Nível 3
Usuário Nível 3
Mensagens: 175
Registrado em: 04 Ago 2004 10:36
Localização: São Bento do Una-PE
Contato:

Re: usar a bemafi32.dll no xharbour console.

Mensagem por helio »

Estou com o problema em relacao ao retorno Exemplo:

public DLLBematech:=Loadlibrary("Bemafi32.dll")

LeituraX()

FUNCTION LeituraX()
mretorno := DllCall(DLLBematech,32,"Bematech_FI_LeituraX")
RETURN NIL

mretorno retorna em branco tem alguma coisa que possa fazer ???

Helio Beltrao
helio@hrbinfo.com.br
Helio Beltrao Jr.
msn: helio@htisistemas.com
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

Re: usar a bemafi32.dll no xharbour console.

Mensagem por DLZ »

Bom dia..
eu uso a Bemafi32.dll e funciona perfeitamente sim..
Pelo q pude ver no seu código, faltou executar a função Bematech_FI_AbrePortaSerial() depois de carregar a DLL.
Porta=
Indica a porta serial de comunicação entre a impressora e o computador. Se o valor for igual a "DEFAULT", a DLL buscará a porta onde estiver a impressora, automaticamente. Se estiver sendo usada a impressora fiscal na USB, basta alterar esta chave para a palavra USB (Porta=USB). Para maiores informações sobre a instalalação da porta USB, veja o tópico "Instalando a porta USB para comunicação através da DLL"


Veja o seguinte no arquivo Bemafi32.ini
Status=
Se essa opção estiver com o valor 1, as funções da DLL irão gravar o status da impressora (ACK, ST1 e ST2) no arquivo chamado "STATUS.TXT". O valor default dessa opção é 0, com o status da impressora sendo retornado através da função Bematech_FI_RetornoImpressora.



Retorno=
Se essa opção estiver com o valor 1, as Funções de Informações* da DLL irão gravar o retorno no arquivo chamado "RETORNO.TXT ". O valor default dessa opção é 0, com as informações sendo retornadas através das variáveis passadas como parâmetro nas funções.



StatusFuncao=
Esta chave configura a DLL para retornar o valor –27 nas funções, quando o status da impressora (ACK, ST1, ST2) for diferente de 6,0,0. Com essa configuração a função Bematech_FI_RetornoImpressora poderá ser executada somente quando o retorno for –27. O valor um "1" habilita e o valor zero "0" desabilita essa configuração. O valor default é zero "0".


Sempre lembrando que os arquivos Bemafi32.dll e Bemafi32.ini deverão estar na pasta da sua aplicação ou na pasta c:\windows\system32
Procure estar sempre com a versão mais atualizada da DLL, verificando seguidamente no site da Bematech.
Da uma lida no manual da DLL, vai esclarecer bastante coisa.

Segue anexo um pequeno exemplo que fiz para executar algumas funções da dll
Um abraço
bema.prg
(1.04 KiB) Baixado 287 vezes
Edson_Alves
Usuário Nível 1
Usuário Nível 1
Mensagens: 1
Registrado em: 01 Mai 2015 18:07
Localização: Florianópolis/SC

usar a bemafi32.dll no xharbour console.

Mensagem por Edson_Alves »

Olá Pessoal,

Estou utilizando a bemafi32.dll para comunicar com a impressora bematech MP-2100 TH FI no xharbour, consegui no fórum algumas explicações, criei a rotina abaixo, ela dá como retorno o número 1 (siginifica que esta OK) mas não imprime a redução X. Alguém pode ajudar ?

Function main
Public DLLBematech:=Loadlibrary("BEMAFI32.DLL")
LeituraX()
return nil

Function LeituraX
Ret:=DllCall(DLLBematech,32,"Bematech_FI_LeituraX")
? Ret
DllCall(DLLBematech,32,"Bematech_FI_LeituraX")
return nil

OBS: Porque retorna 1 (OK) e não manda para a impressora ?

Grato
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

usar a bemafi32.dll no xharbour console.

Mensagem por marcos.gurupi »

Pode ser q sua ECF esteja com alguma reducao z pendente ou cupom aberto.
Pegue o retorno estendido
Marcos Roberto
NetService Software
Kapiaba
Colaborador
Colaborador
Mensagens: 1908
Registrado em: 07 Dez 2012 16:14
Localização: São Paulo
Contato:

usar a bemafi32.dll no xharbour console.

Mensagem por Kapiaba »

Código: Selecionar todos

//---------------------------------------------------------------------------//

// Declaracoes da BEMATECH de 32 bits -> BEMAFI32.DLL

//Ler total do cupom
DLL32 FUNCTION BmSubTotal( SubTotal AS LPSTR ) AS LONG PASCAL ;
      FROM "Bematech_FI_SubTotal" LIB XDLL_BEMATECH

//Ler número d0o caixa
DLL32 FUNCTION BmNumeroCx( NumeroCaixa AS LPSTR ) AS LONG PASCAL ;
      FROM "Bematech_FI_NumeroCaixa" LIB XDLL_BEMATECH

//Ler configuração arredondamento/truncamento
DLL32 FUNCTION BmVerArred( Arredonda AS LPSTR ) AS LONG PASCAL ;
      FROM "Bematech_FI_VerificaTruncamento" LIB XDLL_BEMATECH

//Ativa arredondamento
DLL32 FUNCTION BmLigArred( ) AS LONG PASCAL ;
      FROM "Bematech_FI_ProgramaArredondamento" LIB XDLL_BEMATECH

//Ler data do movimento
DLL32 FUNCTION BmDtMovto ( DtMovto AS LPSTR ) AS LONG PASCAL ;
      FROM "Bematech_FI_DataMovimento" LIB XDLL_BEMATECH

//Ler flag fiscal da impressora
DLL32 FUNCTION BmFlagFiscal( @FlagFiscal AS PTR ) AS LONG PASCAL ;
      FROM "Bematech_FI_FlagsFiscais" LIB XDLL_BEMATECH

//Emite leitura X
DLL32 FUNCTION BmLeituraX( ) AS LONG PASCAL ;
      FROM "Bematech_FI_LeituraX" LIB XDLL_BEMATECH

//Emite redução Z
DLL32 FUNCTION BmReducaoZ( Dt AS LPSTR, Hs AS LPSTR ) AS LONG PASCAL ;
      FROM "Bematech_FI_ReducaoZ" LIB XDLL_BEMATECH

//Ler data e hora da impressora
DLL32 FUNCTION BmDtHora ( Dt AS LPSTR, Hs AS LPSTR ) AS LONG PASCAL ;
      FROM "Bematech_FI_DataHoraImpressora" LIB XDLL_BEMATECH

//Faz abertura do dia
DLL32 FUNCTION BmAbreDia ( Vl AS LPSTR, Fr AS LPSTR ) AS LONG PASCAL ;
      FROM "Bematech_FI_AberturaDoDia" LIB XDLL_BEMATECH

//Abre cupom fiscal
DLL32 FUNCTION BmAbreCup ( Cgc AS LPSTR ) AS LONG PASCAL ;
      FROM "Bematech_FI_AbreCupom" LIB XDLL_BEMATECH

//Verifica se tem papel
DLL32 FUNCTION BmVerPapel( @Linhas AS PTR ) AS LONG PASCAL ;
      FROM "Bematech_FI_MonitoramentoPapel" LIB XDLL_BEMATECH

//Verifica se tem impressora ligada
DLL32 FUNCTION BmPrintLig( ) AS LONG PASCAL ;
      FROM "Bematech_FI_VerificaImpressoraLigada" LIB XDLL_BEMATECH

//Cancela cupom fiscal
DLL32 FUNCTION BmCanCupom( ) AS LONG PASCAL ;
      FROM "Bematech_FI_CancelaCupom" LIB XDLL_BEMATECH

//Cancela último ítem do cupom
DLL32 FUNCTION BmCancItem( ) AS LONG PASCAL ;
      FROM "Bematech_FI_CancelaItemAnterior" LIB XDLL_BEMATECH

//Abre a gaveta
DLL32 FUNCTION BmAbreGav ( ) AS LONG PASCAL ;
      FROM "Bematech_FI_AcionaGaveta" LIB XDLL_BEMATECH

//Ler número do cupom
DLL32 FUNCTION BmNumCupom( Cupom AS LPSTR ) AS LONG PASCAL ;
      FROM "Bematech_FI_NumeroCupom" LIB XDLL_BEMATECH

//Emite leitura da memória fiscal por data
DLL32 FUNCTION BmMemFiscD( In AS LPSTR, Fi AS LPSTR ) AS LONG PASCAL ;
      FROM "Bematech_FI_LeituraMemoriaFiscalData" LIB XDLL_BEMATECH

//Emite leitura da memória fiscal por reduções
DLL32 FUNCTION BmMemFiscR( In AS LPSTR, Fi AS LPSTR ) AS LONG PASCAL ;
      FROM "Bematech_FI_LeituraMemoriaFiscalReducao" LIB XDLL_BEMATECH

//Emite cupom gerencial 618 CARACTERES NO MAXIMO POR COMANDO
DLL32 FUNCTION BmCpGerAbr( Texto AS STRING ) AS LONG PASCAL ;
      FROM "Bematech_FI_RelatorioGerencial" LIB XDLL_BEMATECH

//Fecha cupom gerencial
DLL32 FUNCTION BmCpGerFec( ) AS LONG PASCAL ;
      FROM "Bematech_FI_FechaRelatorioGerencial" LIB XDLL_BEMATECH

//Verifica status da gaveta
DLL32 FUNCTION BmStGaveta( @nStatus AS PTR ) AS LONG PASCAL ;
      FROM "Bematech_FI_VerificaEstadoGaveta" LIB XDLL_BEMATECH

//Abre cupom adicional
DLL32 FUNCTION BmCupAdAbr( FormaPgto AS STRING,;
      Valor AS STRING,;
      Cupom AS STRING ) AS LONG PASCAL ;
      FROM "Bematech_FI_AbreComprovanteNaoFiscalVinculado" LIB XDLL_BEMATECH

//Imprime cupom não fiscal vinculado
DLL32 FUNCTION BmCupAdUsa( Texto AS STRING ) AS LONG PASCAL ;
      FROM "Bematech_FI_UsaComprovanteNaoFiscalVinculado" LIB XDLL_BEMATECH

//Fecha cupom não fiscal
DLL32 FUNCTION BmCupAdFec( ) AS LONG PASCAL ;
      FROM "Bematech_FI_FechaComprovanteNaoFiscalVinculado" LIB XDLL_BEMATECH

//Vende ítem
DLL32 FUNCTION BmVendItem( Codigo AS STRING,;
      Descricao AS STRING,;
      Aliquota AS STRING,;
      TpQte AS STRING,;
      Quantid AS STRING,;
      Decimal AS 7 ,;
      ValUnit AS STRING,;
      TpDesc AS STRING,;
      ValDesc AS STRING ) AS LONG PASCAL ;
      FROM "Bematech_FI_VendeItem" LIB XDLL_BEMATECH


//Efetua Formas de Pagamento
DLL32 FUNCTION BmFormasPag( FormaPgto AS STRING,;
      ValorPago AS STRING ) AS LONG PASCAL ;
      FROM "Bematech_FI_EfetuaFormaPagamento" LIB XDLL_BEMATECH

//Inicia Fechamento cupom
DLL32 FUNCTION BmIniFecCup( Acrescimo AS STRING,;
      TipoAcresc AS STRING,;
      ValorAcresc AS STRING ) AS LONG PASCAL ;
      FROM "Bematech_FI_IniciaFechamentoCupom" LIB XDLL_BEMATECH

//Termina Fechamento cupom 
DLL32 FUNCTION BmTerFecCup( Mensagem AS STRING ) AS LONG PASCAL ;
      FROM "Bematech_FI_TerminaFechamentoCupom" LIB XDLL_BEMATECH

//Fecha cupom com uma forma de pagamento somente 
DLL32 FUNCTION BmFechaCup( FormaPgto AS STRING,;
      Acrescimo AS STRING,;
      TipoAcresc AS STRING,;
      ValorAcresc AS STRING,;
      ValorPago AS STRING,;
      Mensagem AS STRING ) AS LONG PASCAL ;
      FROM "Bematech_FI_FechaCupom" LIB XDLL_BEMATECH

//Verifica status do gerenciador padrão
DLL32 FUNCTION BmTfStatus( Operacao AS LPSTR ) AS LONG PASCAL ;
      FROM "Bematech_FITEF_Status" LIB XDLL_BEMATECH

DLL32 FUNCTION BmFormaPg( cNomeDocto   AS STRING ,;
                          cValorDocto  AS STRING ) AS LONG PASCAL;
      FROM "Bematech_FI_EfetuaFormaPagamento" LIB XDLL_BEMATECH

DLL32 FUNCTION BmIniciaFecha( cAcreDesc     AS STRING ,;
                              cTipoAcreDes  AS STRING ,;
                              cValorParc    AS STRING ) AS LONG PASCAL ;
      FROM "Bematech_FI_IniciaFechamentoCupom" LIB XDLL_BEMATECH

DLL32 FUNCTION BmCancGen( NumeroItem AS LPSTR       ) AS LONG PASCAL ;
      FROM "Bematech_FI_CancelaItemGenerico"      LIB XDLL_BEMATECH
abs.
Responder