Ver Mensaje Individual
  #7  
Antiguo 12-02-2019
softarg softarg is offline
Miembro
 
Registrado: may 2018
Posts: 16
Reputación: 0
softarg Va por buen camino
HASARArgentina.OCX

Cita:
Empezado por mattaldi Ver Mensaje
Hola, yo instale lo instale en Delphi 5 y me muestra lo muestra en la paleta Active X "ImpresoraFiscalRG35611", pero en Delphi 10 accedo mediante código (no aparece en la paleta).
Me he conectado a la impresora, pero lo único que logré es hacer avanzar el papel. No he podido emitir ningún comprobante. Si vos lo lográs te pido que lo compartas.
Saludos
Hola Mattaldi.

Por alguna razon, aunque puedas importar el OCX en Delphi, tenes que trabajar creando el objeto COM. (Cosas hechas para Visual)

Yo pude poner en marcha la impresora fiscal, y mandarle algunos comandos, cierre y Z abrir ticket, vender y totalizar.

Lo que todavía no entiendo es como ver en que estado se encuentra la fiscal antes de mandarle los comandos, para evitar errores de operación.

Adjunto fragmento del programa.

Todo lo siguiente es de la unit principal.

En el
Código Delphi [-]
uses
  HasarArgentina_TLB


En type

Código Delphi [-]
type
    ImpresoraFiscalRG35611: TImpresoraFiscalRG3561;


Antes de Implementación

Código Delphi [-]
 HASAR2 : _ImpresoraFiscalRG3561;

implementation


Antes de mandar cualquier comando, hay que CONECTAR a la impresora

Código Delphi [-]
procedure TFhas2.BconectClick(Sender: TObject);
var unaip:widestring;
    unpuerto : integer;
    resperr : RespuestaConsultarUltimoError;
   // RespEstado : RespuestaConsultarEstado;
begin

HASAR2 := CreateComObject(CLASS_ImpresoraFiscalRG3561) as _ImpresoraFiscalRG3561;

//Aca se crea el objeto

//RespEstado:= hasar2.ConsultarEstado;

try
     unaip:= DBedit1.text;   //Tabla que guarda la IP de la fiscal
     unpuerto:= strtoint(DBedit2.text);  //Tabla que guarda el puerto de la fiscal

     HASAR2.Conectar(unaip,unpuerto,5000,5000);  //Conectar se debe mandar al iniciar la aplicación 

     HASAR2.ArchivoRegistro('C:\Supermercados\Hasar.LOG',15000);  //graba un log

except


resperr := HASAR2.ConsultarUltimoError;  // Captura si hubo error de conexión.

Showmessage(
'ID error = ' + resperr.UltimoError  + chr(13) +
'Parámetro = ' + resperr.NombreParametro + chr(13) +
'Mensaje  = ' + resperr.Descripcion   + chr(13) +
'Contexto = ' + resperr.Contexto );



Ejemplo apertura de ticket

Código Delphi [-]
procedure TFhas2.BticketClick(Sender: TObject);  /// BticketClick = BitBtn
 var resperr : RespuestaConsultarUltimoError;

begin
     try
      Hasar2.AbrirDocumento(Tique);
      HASAR2.ArchivoRegistro('C:\Supermercados\Hasar.LOG',15000);
     except

  resperr := HASAR2.ConsultarUltimoError;

 Showmessage(
'ID error  = ' + resperr.UltimoError  + chr(13) +
'Parámetro = ' + resperr.NombreParametro + chr(13) +
'Mensaje   = ' + resperr.Descripcion   + chr(13) +
'Contexto  = ' + resperr.Contexto );


Vender un producto

Código Delphi [-]
procedure TFhas2.BvenderItemClick(Sender: TObject);
 var
 nombreit,  imint, CODIGOf ,IDARTI: widestring;
 Cantidad, precio, iva: real;
 resperr : RespuestaConsultarUltimoError;
begin
  nombreit   := TitemsDESCRIPCION.Value;
  cantidad    :=  TitemsCANTIDAD.Value;
  precio        := TitemsPRECIO.Value;
  iva            := TitemsALICUOTA.value;
  imint         := '0';
  CODIGOf   :=  TitemsBARCODE.Value;
  IDARTI      :=   TitemsIDART.Value;


   try
    Hasar2.ImprimirItem(nombreit, cantidad, precio, Gravado, iva, ModoSumaMonto, IIVariablePorcentual, 0.00000001, DisplayNo,  ModoPrecioTotal, 1, CODIGOf , IDARTI , Unidad);

    HASAR2.ArchivoRegistro('C:\Supermercados\Hasar.LOG',15000);


Pago con monto exacto

Código Delphi [-]
procedure TFhas2.BpagaClick(Sender: TObject);
 var resperr : RespuestaConsultarUltimoError;
begin
 try
     Hasar2.CerrarDocumento(1, '');
     HASAR2.ArchivoRegistro('C:\Supermercados\Hasar.LOG',15000);
  Except


Bueno espero que les sirva, yo lo tengo en un cliente, con la HASAR SMH/PT-1000F y anda bien.

Saludos Softarg
Responder Con Cita