Hola gente:
Estoy programando la impresión de tickets en una impresora Hasar de segunda genereración. Trabajo con Delphi 5.
En Hasar hay ejemplos en VB y he visto los pasos de conversión que puso el usuario DeG en otro hilo
Ya instalé el OCX que me mandaron de Hasar y cree el objeto mediante:
Código:
HASARNG := CreateComObject(CLASS_ImpresoraFiscalRG3561) as _ImpresoraFiscalRG3561;
Puedo acceder a algunos métodos de la clase. He logrado avanzar papel y hacer cierre Z por ejemplo.
Pero no puedo imprimir un TicketFacturaB completo, imprime los datos del cliente, el item y me tira un error, solamente puedo seguir haciendo pruebas cancelando el ticket con el método correspondiente. La impresora está en modo entrenamiento.
Luego de imprimir el item me da el error:
"Proyecy Proyect1.exe raised exception class EOleException whit message 'Type mismatch'. Procces stopped. Use step o run to continued."
Parece ser algún error de tipo, pero he revisado mil veces los pdf de Hasar y los tipos de los parámetros del método ImprimirItem, pero no encuentro el error.
Código:
procedure TForm1.BitBtn2Click(Sender: TObject);
var
destino: widestring;
puerto: integer;
tiempo: OleVariant;
HASARNG: Variant;
begin
try
HASARNG := CreateComObject(CLASS_ImpresoraFiscalRG3561) as _ImpresoraFiscalRG3561;
destino := '192.168.1.5'; puerto := 0; tiempo := 5000;
HASARNG.Conectar(destino,puerto,tiempo,tiempo);
Showmessage('CONECTADO'); //OKKKKKKKKKKKK
HASARNG.CargarDatosCliente('Razón Social Cliente...', '99999999995', Monotributo, TipoCUIT, 'Domicilio Cliente...', '', '', '');
Showmessage('DATOS CLIENTES CARGADOS'); //OKKKKKKKKKKKK
HASARNG.AbrirDocumento(TiqueFacturaB);
Showmessage('DOCUMENTO ABIERTO'); //OKKKKKKKKKKKK
HASARNG.ImprimirItem ('Producto 2', 2, 50, Gravado, 21.00,
ModoSumaMonto, IIVariablePorcentual, 0, DisplayNo,
ModoPrecioTotal, 1, '7790001001054', '2000', Unidad);
Showmessage('ITEM IMPRESO'); //NO LLEGA ACAAAAAAAAAAA
HASARNG.ImprimirDescuentoItem('Oferta', 10, DisplayNo, ModoPrecioTotal);
HASARNG.ImprimirPago('Efectivo...', 90, Pagar, DisplayNo, '', Efectivo, 0, '');
HASARNG.CerrarDocumento(0, 'hasarventas@hasar.com');
except
on E: Exception do
Showmessage('ERROR: '+ (E.Message));
end;
end;
¿Alguno programó éstas impresoras?¿me pueden dar una mano? Hace 1 mes que estoy trabado.