usar a bemafi32.dll no xharbour console.
Moderador: Moderadores
usar a bemafi32.dll no xharbour console.
ola amigos
alguem pode me ajudar a usar a bemafi32.dll no xharbour console. declarar a dll e usar seus comandos.
obrigado
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
CLIPPER 5.3 / FIVEWIN 2.0 / BLINKER 7
XHARBOUR/ BCC582
- sygecom
- Administrador

- Mensagens: 7131
- Registrado em: 21 Jul 2006 10:12
- Localização: Alvorada-RS
- Contato:
Re: usar a bemafi32.dll no xharbour console.
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
xHarbour.org + Hwgui + PostgreSql
Re: usar a bemafi32.dll no xharbour console(resolvido)
obrigado sygecom, resolvido
public DLLBematech:=Loadlibrary("Bemafi32.dll")
LeituraX()
FUNCTION LeituraX()
DllCall(DLLBematech,32,"Bematech_FI_LeituraX")
RETURN NIL
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
CLIPPER 5.3 / FIVEWIN 2.0 / BLINKER 7
XHARBOUR/ BCC582
-
marcos.gurupi
- 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.
Comandos q levam parametros ou recebem dados da impressora tb foram testados?
Marcos Roberto
Marcos Roberto
Marcos Roberto
NetService Software
NetService Software
-
DLZ
- 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.
Sim Marcos..
Qualquer função da DLL funciona perfeitamente..
Qualquer função da DLL funciona perfeitamente..
- helio
- 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.
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
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
msn: helio@htisistemas.com
-
DLZ
- 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.
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
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
-
Edson_Alves
- 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.
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
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

- Mensagens: 939
- Registrado em: 06 Jul 2004 11:53
- Localização: Gurupi-TO
usar a bemafi32.dll no xharbour console.
Pode ser q sua ECF esteja com alguma reducao z pendente ou cupom aberto.
Pegue o retorno estendido
Pegue o retorno estendido
Marcos Roberto
NetService Software
NetService Software
-
Kapiaba
- Colaborador

- Mensagens: 1908
- Registrado em: 07 Dez 2012 16:14
- Localização: São Paulo
- Contato:
usar a bemafi32.dll no xharbour console.
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