Página 1 de 1

usar a bemafi32.dll no xharbour console.

Enviado: 22 Jan 2009 21:06
por scom
ola amigos

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

obrigado

Re: usar a bemafi32.dll no xharbour console.

Enviado: 22 Jan 2009 23:48
por sygecom
Apesar de eu não trabalhar com ECF, guardei um exemplo que parece bem bom.

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

Enviado: 23 Jan 2009 00:39
por scom
obrigado sygecom, resolvido


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

LeituraX()

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

Re: usar a bemafi32.dll no xharbour console.

Enviado: 26 Jan 2009 22:30
por marcos.gurupi
Comandos q levam parametros ou recebem dados da impressora tb foram testados?

Marcos Roberto

Re: usar a bemafi32.dll no xharbour console.

Enviado: 27 Jan 2009 11:15
por DLZ
Sim Marcos..
Qualquer função da DLL funciona perfeitamente..

Re: usar a bemafi32.dll no xharbour console.

Enviado: 24 Ago 2010 14:55
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

Re: usar a bemafi32.dll no xharbour console.

Enviado: 25 Ago 2010 08:29
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 288 vezes

usar a bemafi32.dll no xharbour console.

Enviado: 01 Mai 2015 18:29
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

usar a bemafi32.dll no xharbour console.

Enviado: 04 Mai 2015 12:39
por marcos.gurupi
Pode ser q sua ECF esteja com alguma reducao z pendente ou cupom aberto.
Pegue o retorno estendido

usar a bemafi32.dll no xharbour console.

Enviado: 04 Mai 2015 14:39
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.