Foros Club Delphi

Foros Club Delphi (https://www.clubdelphi.com/foros/index.php)
-   Varios (https://www.clubdelphi.com/foros/forumdisplay.php?f=11)
-   -   Como abrir una caja registradora desde delphi 2007 (https://www.clubdelphi.com/foros/showthread.php?t=81918)

ingabraham 03-01-2013 17:41:18

Como abrir una caja registradora desde delphi 2007.


la caja registradora tiene un cable como el del telefono, donde va conectada, al pc o a una impresora de colillitas como la de los almacenes??:confused:

es una caja registradora de punto de venta, con un cajon portamonedas.

Casimiro Notevi 03-01-2013 18:41:14

Mira los enlaces de abajo de esta página, lo mismo te pueden servir.

newtron 04-01-2013 12:33:47

Si está conectada a una impresora de tickets la tienes que abrir enviandole una secuencia de escape a esa impresora. Esa secuencia de escape depende de cada impresora pero suele funcionar este:

27 112 0 20 100

Saludos

ingabraham 04-01-2013 16:30:40

Cita:

Empezado por newtron (Mensaje 452891)
Si está conectada a una impresora de tickets la tienes que abrir enviandole una secuencia de escape a esa impresora. Esa secuencia de escape depende de cada impresora pero suele funcionar este:

27 112 0 20 100

Saludos

como los envio desde delphi? yo mando a imprimir los tickets desde mi programa.

Casimiro Notevi 04-01-2013 16:37:26

Cita:

Empezado por ingabraham (Mensaje 452897)
como los envio desde delphi? yo mando a imprimir los tickets desde mi programa.

En uno de los enlaces que te he indicado lo explica.

nlsgarcia 04-01-2013 18:44:28

ingabraham,

Cita:

Empezado por ingabraham
La caja registradora tiene un cable como el del telefono, donde va conectada, al pc o a una impresora de colillitas.

Cita:

Empezado por newtron
Esa secuencia de escape depende de cada impresora pero suele funcionar este: 27 112 0 20 100

Cita:

Empezado por ingabraham
¿Como los envio desde delphi?

Voy a asumir varias premisas:

1- Impresora de Colillitas = Impresora Fiscal
2- La Impresora Fiscal se conecta al PC vía Puerto Serial 1.
3- La Impresora funciona a 11500 Bps.
4- No Existe un Comando Específico de la Impresora Fiscal para la Apertura de la Caja Registradora, por tanto se requiere una Secuencia X.
5- La Interfaz de Conexión de la Caja Registradora con el PC es Serial.

En base a las premisas anteriores revisa este código:
Código Delphi [-]
unit Unit1;

interface

uses
  Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
  Dialogs, StdCtrls;

type
  TForm1 = class(TForm)
    Button1: TButton;
    procedure Button1Click(Sender: TObject);
  private
    { Private declarations }
  public
    { Public declarations }
  end;

var
  Form1: TForm1;

implementation

{$R *.dfm}

function OpenBox(COMSerial : Byte) : Boolean;
var
   HCom : THandle;
   Buffer : Array[0..4] of Byte;
   CommDCB : Array[0..255] of char;
   ComPort : String;
   BytesWrites : LongWord;
   PDCB : _DCB;

begin

   COMPort := '\\.\COM' + IntToStr(COMSerial);

   HCom := CreateFile(PChar(COMPort), GENERIC_READ OR GENERIC_WRITE, 0, Nil, OPEN_EXISTING, FILE_ATTRIBUTE_NORMAL, 0);

   if HCom <> INVALID_HANDLE_VALUE then
   begin

      Buffer[0] := 27;
      Buffer[1] := 112;
      Buffer[2] := 0;
      Buffer[3] := 20;
      Buffer[4] := 100;

      CommDCB := 'baud=115200 parity=n data=8 stop=1 xon=off odsr=off octs=off dtr=off rts=off idsr=off';
      BuildCommDCB(@CommDCB,PDCB);
      SetCommState(hCom,PDCB);

      if not WriteFile(HCom, Buffer, 5, BytesWrites, nil) then
      begin
         ShowMessage(SysErrorMessage(GetLastError));
         Result := False;
         Exit;
      end;

      If BytesWrites <> 5 then
      begin
         MessageDlg('Error en Transmision Serial', mtInformation, [mbOK], 0);
         Result := False;
         Exit;
      end;

   end
   else
   begin
      MessageDlg('El Puerto de Comunicacion Serial No Esta Habilitado en Windows', mtInformation, [mbOK], 0);
      Result := False;
      Exit;
   end;

   Result := True;

end;

procedure TForm1.Button1Click(Sender: TObject);
begin
   if OpenBox(1) then
   // Código 1
   else
   // Código 2
end;

end.
El código anterior envía la Secuencia de Apertura sugerida por newtron vía Puerto Serial 1. Haz la prueba en los siguientes casos:

1- Caja Registradora conectada directamente al PC.
2- Caja Registradora conectada al PC por medio de la Impresora Fiscal.

Te sugiero colocar las especificaciones de la Impresora Fiscal : Marca, Modelo, Interfaz de Comunicación, Tasa de Transferencia, Comandos de Comunicación Asociados a la Caja Registradora, Cualquier otro dato de interés para la solución del problema.

Cita:

Empezado por newtron
Yo mando a imprimir los tickets desde mi programa.

Probablemente de forma análoga al envío de comandos de impresión de Tickets a la Impresora Fiscal, sea la forma para enviar un Comando o Secuencia de Apertura a la Caja Registradora, te sugiero verificarlo.

Espero sea útil :)

Nelson.


La franja horaria es GMT +2. Ahora son las 09:44:15.

Powered by vBulletin® Version 3.6.8
Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
Traducción al castellano por el equipo de moderadores del Club Delphi