Jump to content
Fivewin Brasil

Abertura de Gaveta de Dinheiro Impressoras Não fiscal Bematech e ControlID, NFC-E (Parcialmente Resolvido)


marcioe

Recommended Posts

Olá amigos, boa noite
Temos em nosso sistema a emissão de NFC-e dai estão usando impressoras não fiscal, dai estão usando as gavetas antigas da BEMATECH, 
Até ai tudo blz,

Porem preciso abrir a gaveta ao Transmitir a nfc-e

Pesquisei aqui no forum, mas não consegui fazer funcionar. Porem se abro o comando dela no windows(propriedades) e coloca para abrir caixa apos a impressão e envio uma pagina de teste, funciona 

Sem_t%C3%ADtulo.png?1586297279

Conforme está ai ao imprimir a pagina de testes ele abre a gaveta da BEMATECH

 

Liguei na control Id e peguei os comandos de abertura de gaveta, vejam a resposta

Conforme solicitado pelo Sr., segue comandos ESC/POS para abertura da gaveta da impressora Print iD.

O comando que utilizamos é:

<ESC> p m t1 t2

Descrição: 

m = Número do pino/atuador da gaveta.
t1 = Tempo do pulso onde o pino ficará ligado.
t2 = Tempo do pulso onde o pino ficará desligado.

Limites: 

m = 0, 1, 48, 49
t1 = 0 – 255
t2 = 0 – 255

Exemplos caso a gaveta esteja ligada eletricamente no pino 0: 

ESC p 0 150 200

Em delphi, usando a função Chr ficaria: Chr(27)+Chr(112)+Chr(0)+Chr(150)+Chr(200)

Exemplos caso a gaveta esteja ligada eletricamente no pino 1: 

ESC p 1 150 200

Em delphi, usando a função Chr ficaria: Chr(27)+Chr(112)+Chr(1)+Chr(150)+Chr(200)

Observação: A nossa impressora, a Print iD, ela é 100% compatível com os comandos de envio da Epson, ou seja, o Sr. pode utilizar os mesmos comandos para configuração da impressora.

Imagem da Impressora

idprint1.png

 

Link to comment
Share on other sites

Já futuquei demais, 

Amanhá tento novamnete fiz assim conforme abaixo

 

STATIC FUNCTION ABREGAV()

 
		*-------------------------------------------------------------------------
	   EXTERNAL ISPRINTER
	   IF ISPRINTER()
	      cTextoAbreGaveta := "Chr(27)+Chr(112)+Chr(0)+Chr(150)+Chr(200)"
		   ALERT(cTextoAbreGaveta)
	      oPrn := TDosPrn():New("lpt1") // para ir para impressora em definitivo
	      oPrn:StartPage()
	      oPrn:Say( 0,0 ,    alltrim(cTextoAbreGaveta) )
		   oPrn:End()     
		ENDIF
		*-------------------------------------------------------------------------
	   EXTERNAL ISPRINTER
	   IF ISPRINTER()
	      cTextoAbreGaveta := "Chr(27)+Chr(112)+Chr(1)+Chr(150)+Chr(200)"
		   ALERT(cTextoAbreGaveta)
	      oPrn := TDosPrn():New("lpt1") // para ir para impressora em definitivo
	      oPrn:StartPage()
	      oPrn:Say( 0,0 ,    alltrim(cTextoAbreGaveta) )
		   oPrn:End()     
		ENDIF
      */
		*-------------------------------------------------------------------------
	   EXTERNAL ISPRINTER
	   IF ISPRINTER()
	      cTextoAbreGaveta := "Chr(27)+Chr(112)+Chr(2)+Chr(150)+Chr(200)"
		   ALERT(cTextoAbreGaveta)
	      oPrn := TDosPrn():New("lpt1") // para ir para impressora em definitivo
	      oPrn:StartPage()
	      oPrn:Say( 0,0 ,    alltrim(cTextoAbreGaveta) )
		   oPrn:End()     
		ENDIF
		
	*else
	*endif
RETURN nil

 

Link to comment
Share on other sites

Amigos Provisoriamente Resolvi assim 
Estou Imprimindo uma linha sem nada com o arquivo .FR3
Vejam a Imagem como Ficou
 

STATIC FUNCTION ABREGAV()
	RepDir 				:= CurDrive() +":\"+ CurDir() + '\RELS\'
	TITULO 				:= 'Abertura de Gaveta pela USB'
	Cursor("SQL")
	RELATORIO_FAST := 'gaveta.fr3'
	*----------------------------------------------------------------------------
	IF FILE( (CurDrive() +":\"+ CurDir() + '\RELS\'+RELATORIO_FAST))
		*=========================================================================
		oFrPrn := frReportManager():new()
		oFrPrn:SetIcon(1)                                     									//ícone da janela do FRH
		oFrPrn:SetTitle( 'Relatorio ' + TITULO )        											//título da janela do FRH
		oFrPrn:LoadLangRes( (CurDrive() +":\"+ CurDir() + '\RELS\' + 'brazil.xml' ))     //arquivo de idioma
		oFrPrn:LoadFromFile(RepDir+(RELATORIO_FAST))                     						// para leitura direta de arquivo FR3
		oFrPrn:PreviewOptions:SetAllowEdit( .F. )  
		IF M->RELATORIO_DESINER = (.T.)     															// inibe o botão de edição do relatório pelo usuário (RELATORIO_DESINER)
			oFrPrn:DesignReport()                        											// aqui para "desenhar" o relatório
			oFrPrn:PreviewOptions:SetZoomMode(2)
			oFrPrn:ShowReport()                       												// aqui para gerar o preview do relatório.
			oFrPrn:DestroyFR()
		ELSE
			cPrinter:=GetDefaultPrinter()                                     				// Seleciona a Impressora Padrão
			oFrPrn:PrintOptions:SetPrinter(cPrinter)                          				// Envia a Impressora
			oFrPrn:PrintOptions:SetShowDialog(.F.)
			oFrPrn:PrepareReport()
			oFrPrn:Print(.T.)
			oFrPrn:SetProperty("Report", "ShowProgress", .F.)
			oFrPrn:DestroyFR()			
   	ENDIF
	ELSE
		MSG_ERRO_ABRIR_FAST_REPORT(RELATORIO_FAST)
	ENDIF
return .t.

 

Link to comment
Share on other sites

  • 2 weeks later...

Bom dia 

Amigos bom dia 
Preciso de alguma forma abrir a gaveta de dinheiro com impressora não fiscal
Hoje até abro usando uma 'gambiarra" que é imprimir uma linha com p fast-report, dai está "funcionando", mas toda hora emite uma "tirinha de papel" e claro alguns clientes reclamam.

A impressora é uma BEMATECH/Control_id nao fiscal. 

Se alguem puder ajudar.

 

Ficaria grato se alguem puder postar algo

a impressora é essa ai mp-4200-th   

USB QUE ESTÁ LIGADA

1610457681_1GG.jpg

idprint1.png

 

Link to comment
Share on other sites

Olá

Assim funcionou

T_PORTA_GAVETA := (Exemplos   COM2, COM3, COM4, ETC...)

T_COMANDO_GAVETA := 'Chr(27)+Chr(112)+Chr(1)+Chr(150)+Chr(200)'

 

Testei com esse dois modelos

Prot ID
Chr(27)+Chr(112)+Chr(1)+Chr(150)+Chr(200)

Epson
chr(027)+chr(112)+chr(000)+chr(010)+chr(100)
 

*-------------------------------------------------------------------------------
* Abertura de Gaveta de Dinheiro
*-------------------------------------------------------------------------------
STATIC FUNCTION ABREGAV()
	IF EMPTY(T_PORTA_GAVETA)
		MsgStop('Porta para Abertura de Gaveta Não Informado !',SISTEMA)
		RETURN .F.
	ENDIF
	IF EMPTY(T_COMANDO_GAVETA)
		MsgStop('Comando para Abertura de Gaveta Não Informado !',SISTEMA)
		RETURN .F.
	ENDIF
	s_comando = fcreate( ALLTRIM(T_PORTA_GAVETA),0 )
	fwrite( s_comando, &(ALLTRIM(T_COMANDO_GAVETA)) )
	fclose( s_comando )
RETURN( Nil )

 

Link to comment
Share on other sites

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.

Guest
Reply to this topic...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

Loading...
×
×
  • Create New...