Ver Mensaje Individual
  #14  
Antiguo 11-11-2013
xjre xjre is offline
Miembro
 
Registrado: feb 2008
Posts: 13
Reputación: 0
xjre Va por buen camino
Post

Pudieron resolver esto?

Lo que note debugueando el sistema es que el error se da en los "Open" y todo lo que sea ExecSQL y ExecProc funciona bien. Y solo pasa con ADO (dbGO), no con BDE. Faltaria probar si es con ADO + ODBC o ya solo con usar ADO alcanza.

Despues de mil intentos le encontré la vuelta, en parte mezclando lo que dicen algunos por aca.

Revivo este post porque es el unico que aparece en google junto a otro mas que remite a este, por lo que mas de uno va a terminar aca.

Los comandos de la OCX que dan el "error" (que no se que será), son los siguientes:

ImprimirPago

Código:
HASAR.ImprimirPago(Descripcion, Importe)
lo reemplazo con (muy importante lo del formatfloat para poner todos los ceros, sino, al menos a mi, no me andaba):

Código:
HASAR.Enviar
(
 Chr(68)
+ Chr(28) + Descripcion
+ Chr(28) + StringReplace(FormatFloat('000000000.00', Importe), ',', '.', [rfReplaceAll])
+ Chr(28) + 'T'
+ Chr(28) + '0'
);
SubTotal

Tenia:
Código:
Hasar.SubTotal(True)
lo eliminé del programa, ya que no necesito saber en ningun momento cuanto voy vendiendo)

CerrarComprobanteFiscal

Tenia:

Código:
HASAR.CerrarComprobanteFiscal;
lo reemplace por:

Código:
HASAR.Enviar(Chr(69));
No quiero poner mi rutina porque es muy larga, asique a modo de ejemplo, tomo lo que puso knife_sj y lo corrijo a como deberia "andar":

Código:
   with HASAR1 do
   begin
        Puerto := 1;
        Transporte := PUERTO_SERIE;
        PrecioBase := False;
        Modelo := modelo_fiscal;
        DescripcionesLargas := True;
        Reintentos := 3;
        TiempoDeEspera := 2000;
   end;

   HASAR1.Comenzar;
   HASAR1.TratarDeCancelarTodo;
   HASAR1.AbrirComprobanteFiscal(TICKET_C);
 
   while not Rep_Detalle.Eof do
   begin

     HASAR1.ImprimirItem(
           Rep_Detalle.FieldValues['descr'],
           Rep_Detalle.FieldValues['CANT'],
           Rep_Detalle.FieldValues['PRECIO'],
            21, 0);

    Rep_Detalle.Next;

  end;

  HASAR.Enviar
  (
      Chr(68)
      + Chr(28) + QPagoTipoPago.Value
      + Chr(28) + StringReplace(FormatFloat('000000000.00', StrToFloat(subtotal.Caption)), ',', '.', [rfReplaceAll])
      + Chr(28) + 'T'
      + Chr(28) + '0'
  );  // Esto es el imprimirpago
  
  HASAR.Enviar(Chr(69)); // Esto es el HASAR1.CerrarComprobanteFiscal;
  HASAR1.Finalizar;
Aprovecho y tambien les comento que el comando "Documento de Referecia" para imprimir el numero relacionado a la Nota de Credito, tampoco funciona, y hay que enviar lo siguiente:

Código:
HASAR.Enviar(Chr(147) + Chr(28) + '1' + Chr(28) + NumeroFacturaOrigen);
donde NumeroFacturaOrigen es un string.

Tengo la OCX funcional andando en varios sistemas (estacion de servicio, funeraria, kiosco). Es bastante hosca, no funciona bien del todo. Era mas robusta la winfis32.dll. Si alguno necesita alguna rutina en especial, chifle por MP.

Saludos
Responder Con Cita