marcioe Posted April 7, 2020 Report Share Posted April 7, 2020 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 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 Quote Link to comment Share on other sites More sharing options...
evertonlb Posted April 8, 2020 Report Share Posted April 8, 2020 Já testou todos os pinos?? Quote Link to comment Share on other sites More sharing options...
marcioe Posted April 8, 2020 Author Report Share Posted April 8, 2020 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 Quote Link to comment Share on other sites More sharing options...
marcioe Posted April 8, 2020 Author Report Share Posted April 8, 2020 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. Quote Link to comment Share on other sites More sharing options...
marcioe Posted April 20, 2020 Author Report Share Posted April 20, 2020 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 Quote Link to comment Share on other sites More sharing options...
marcioe Posted April 20, 2020 Author Report Share Posted April 20, 2020 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 ) Quote Link to comment Share on other sites More sharing options...
Recommended Posts
Join the conversation
You can post now and register later. If you have an account, sign in now to post with your account.