Hola Gente.
Les cuento un poco. Hace bastante he trabajado con impresoras Hasar y realmente son espectaculares. Muy claros los manuales, claros las funciones del OCX y un par de consultas que hice desde la pagina, me respondieron espectacularmente a mi mail.
El tema es que tengo que hacerlo para una LX-300F de Epson. Utilizo el OCX y no paso del encabezado.
Aclaro que es un engendro, por que?, Es una aplicacion Web, que devuelve un XML en cual levanto en Delphi y mando a imprimir a la impresora fiscal.
Aca les dejo el codigo de delphi y abajo el ejemplo del XML, que por ahi es donde le estoy errando.
Código Delphi
[-]procedure TfmPrincipal.DBImprimirFAC;
var
Respuesta : Boolean;
PRECIO : WideString;
DESCRIPCION : WideString;
iVA : WideString;
CANTIDAD : WideString;
TIPO_ITEM : WideString;
TipoComprobante,
TipoSalidaHoja,
LetraDocumento,
CantidadCopias,
TipoFormulario,
TamCaracter,
IVAComprador,
NombreComp1,
NombreComp2,
DocumentoCompTipo,
DocumentoCompNro,
BienDeUso,
DomicilioComp1,
DomicilioComp2,
DomicilioComp3,
Remito1,
Remito2,
Aux,
NroComprobanteEmitido,
AuxVacio : WideString;
begin
FlagImprimir := TRUE;
if modelo = 'TM' then TipoComprobante := 'T' else TipoComprobante := 'F';
TipoSalidaHoja := 'C'; LetraDocumento := cdsEncabezadoLetra.AsString;
CantidadCopias := cdsEncabezadoCopias.AsString;
TipoFormulario := 'F'; TamCaracter := '12';
IVAComprador := cdsEncabezadoCompradorIva.AsString;
NombreComp1 := cdsEncabezadoCompradorNombre1.AsString;
NombreComp2 := #127; DocumentoCompTipo := cdsEncabezadoCompradorTipoDoc.AsString;
DocumentoCompNro := cdsEncabezadoCompradorNroDoc.AsString;
BienDeUso := 'N';
DomicilioComp1 := cdsEncabezadoCompradorDomicilio1.AsString;
DomicilioComp2 := #127; DomicilioComp3 := #127; Remito1 := #127; Remito2 := #127; Aux := 'G'; AuxVacio := #127;
respuesta := PrnFisc.OpenInvoice( TipoComprobante, TipoSalidaHoja, LetraDocumento, CantidadCopias, TipoFormulario, TamCaracter, AuxVacio, IVAComprador, NombreComp1, NombreComp2, DocumentoCompTipo, DocumentoCompNro, BienDeUso, DomicilioComp1, DomicilioComp2, DomicilioComp3, Remito1, Remito2, Aux );
Aux := '0';
if respuesta then begin cdsDetalle.First; while not cdsDetalle.Eof do begin DESCRIPCION := cdsDetalleDescripcion.AsString; PRECIO := cdsDetallePrecio.AsString; IVA := cdsDetalleIva.AsString; TIPO_ITEM := cdsDetalleTipoItem.AsString; CANTIDAD := cdsDetalleCantidad.AsString; respuesta := PrnFisc.SendInvoiceItem ( DESCRIPCION, CANTIDAD, PRECIO, IVA, TIPO_ITEM, AUX, AUX, AuxVacio, AuxVacio, AuxVacio, Aux, Aux ); if not respuesta then raise Exception.Create('ERROR AL IMPRIMIR ITEM');
cdsDetalle.Next;
end;
AUX := 'P';
DESCRIPCION := 'SUBTOTAL';
RESPUESTA := PrnFisc.GetInvoiceSubtotal(AUX,DESCRIPCION);
if not respuesta then ShowMessage('ERROR DE IMPRESION DE SUBTOTAL');
DESCRIPCION := 'DESCUENTO';
PRECIO := cdsEncabezadoDescuento.AsString;
TIPO_ITEM := 'D';
RESPUESTA := PrnFisc.SendInvoicePayment( DESCRIPCION,
PRECIO,
TIPO_ITEM);
if not respuesta then raise Exception.Create('ERROR AL IMPRIMIR DESCUENTO');
DESCRIPCION := 'PAGO';
PRECIO := cdsEncabezadoPago.AsString;
TIPO_ITEM := 'T';
RESPUESTA := PrnFisc.SendInvoicePayment( DESCRIPCION,
PRECIO,
TIPO_ITEM);
if not respuesta then raise Exception.Create('ERROR AL IMPRIMIR PAGO');
DESCRIPCION := 'TOTAL:';
respuesta := PrnFisc.CloseInvoice(TipoComprobante,LetraDocumento,DESCRIPCION);
if not respuesta then raise Exception.Create('ERROR AL CERRAR EL COMPROBANTE. EL COMPROBANTE QUEDO ABIERTO Y NO SE GUARDO. (Cancelar Todo)');
NroComprobanteEmitido := PrnFisc.AnswerField_3; GuardarFactura2(StrToInt(NroComprobanteEmitido),'FAC');
end else raise Exception.Create('VERIFIQUE EL ESTADO DE SU IMPRESORA');
FlagImprimir := FALSE;
end;
Este es el XML
<?xml version="1.0"?>
<!DOCTYPE COMPROBANTE>
<COMPROBANTE>
<TIPO>FAC</TIPO>
<LETRA>B</LETRA>
<COPIAS>1</COPIAS>
<COMPRADOR>
<IVA>R</IVA>
<NOMBRE1>Lesca Carlos</NOMBRE1>
<NOMBRE2></NOMBRE2>
<TIPODOC>CUIT</TIPODOC>
<NRODOC>23171793149</NRODOC>
<DOMICILIO1>UN DOMICILIO</DOMICILIO1>
<DOMICILIO2>OTRO DOM</DOMICILIO2>
<DOMICILIO3>EXTRA</DOMICILIO3>
</COMPRADOR>
<FACTURAS_AFECTADAS>
<FAC1></FAC1>
<FAC2></FAC2>
</FACTURAS_AFECTADAS>
<REMITOS>
<REM1></REM1>
<REM2></REM2>
</REMITOS>
<ITEMS>
<ITEM CANTIDAD="1" PRECIOUNITARIO="11" IVA="10.5" TIPO="M">DESCRIPCION 01</ITEM>
<ITEM CANTIDAD="2" PRECIOUNITARIO="12" IVA="10.5" TIPO="M">DESCRIPCION 02</ITEM>
</ITEMS>
<PAGOS>
<PAGO IMPORTE="100" TIPO="T">DESCRIPCION</PAGO>
<PAGO IMPORTE="10" TIPO="D">DESCRIPCION</PAGO>
</PAGOS>
</COMPROBANTE>
Mil Gracias a todos.