PDA

Ver la Versión Completa : Hasar Ocx - Adodb - Error


knife_sj
06-08-2007, 00:46:01
Bueno, mi problema consiste en lo siguiente
ayer implemente en mi programa de facturacion la opcion de poder imprimir con controlador fiscal, antes se imprimia solamente con RaveReport... desde q implemente este sistema pasa lo siguiente:

ANTES de usar el controlador fiscal las consultas andan todas perfectas, el programa corre normalmente

pero DESPUES de hacer una factura e imprimirla por el controlador TODAS las consultas me dan el siguiente error cuando intento abrirlas:

Argumentos incorrectos, fuera del intervalo permitido o en conflicto con otros.ya sean consultas elaboradas como por ejemplo


'SELECT Articulos.id, Articulos.CodigoBarra, Articulos.descr, rubros.rubro, proveedores.nombre, Articulos.costo, Articulos.porcentaje, Articulos.presentacion,'+#13+#10+
' Articulos.descarga, Articulos.stock, Articulos.colchon'+#13+#10+
'FROM Articulos INNER JOIN'+#13+#10+
' rubros ON Articulos.rubro = rubros.id INNER JOIN'+#13+#10+
' proveedores ON Articulos.proveedor = proveedores.id'+#13+#10+
'WHERE (Articulos.descr LIKE '''+keyword.text+'%'') OR (Articulos.CodigoBarra = '''+keyword.Text+''')'+#13+#10+
'ORDER BY Articulos.descr'
o consultas tan sencillas como

SELECT * FROM Articulosen un momento llegue a pensar q era mi MS - SQL Server... pero antes de hacer nada hice una prueba

como el programa tiene una opcion para seleccionar que tipo de impresora vamos a usar (fiscal o comun y corriente) hice una factura con la impresora comun y corriente.. luego hice una consulta de precios, consulte facturas anteriores, pedi un inventario por pantalla... en resumen hice varias consultas y el programa andaba perfecto...

realmente no se que puedo llegar a estar haciendo mal con el tema del controlador, pero les adjunto el codigo para que lo revisen por favor


if (tipo_impresora = 0) then //si es impresora comun
Form1.RvProject1.ExecuteReport('Ticket')
else
begin

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;

HASAR1.ImprimirPago('Efectivo', StrToFloat(subtotal.Caption));
HASAR1.CerrarComprobanteFiscal;
HASAR1.Finalizar;

end;

schdamian
25-11-2010, 06:36:40
Perdon por revivir estos post viejos pero me parecio importante ya que yo por no haber leido este post me perdi un dia entero peleandome con las consultas.

Despues de perder todo el dia, me doy cuenta que despues de cerrar una factura (A ó B) usando la OCX de Hasar (fiscal051122.ocx) las consultas sql tablas etc dejan de funcionar, es como dice -knife_sj- desde consultas rebuscadas hasta un simple "select" da el error..
Argumentos incorrectos, fuera del intervalo permitido o en conflicto con otros.
incluso haciendo un Table1.Active:= True; tambien falla y da el error.

No tiene nada que ver con las consultas ya que quitando el OCX de hasar todo vuelve a funcionar 10 puntos.

Quien sabe que porqueria habran programado estos de hasar pero su ocx como su documentacion dan asco, quien sabe que otros problemas mas tendra la basura.

soyyoale
06-06-2011, 19:30:20
Hola Chicos, tengo el mismo problema que ustedes, como lo solucionaron?

adryduran
10-07-2011, 23:11:51
Hola, me pasa lo mismo, lo pudieron solucionar? Estoy pensando en bajar el anterior ocx de Hasar.

adryduran
14-07-2011, 17:00:51
Despues de mucho prueba y error descubri que si sacas esta linea
HASAR1.ImprimirPago('Efectivo', importe);
podes hacer las consultas sql sin problemas, y no es necesario para realizar la factura.
Yo estoy usando "Fiscal051122.Ocx" y hay muchos comandos que no funcionan bien, por ejemplo
HASAR1.DocumentoDeReferencia[1]:=nro_factura; // que se utiliza para realizar una nota de credito
HASAR1.AbrirDNFH(NOTA_CREDITO_B);
HASAR1.CerrarDNFH;
y otros.
Lo solucione utilizando HASAR1.Enviar(...), cualquier cosa consultame.
Slds
Adriana

lalo1981
02-05-2012, 19:18:12
tengo el mismo problema, me tirarias una linea de como lo solucionaste con el hasar1.enviar...te lo agradeceria mucho ya que me trabe con eso
gracias

LALO

ginobili20
07-06-2013, 14:45:27
Hola gente, alguien lo soluciono??? agradeceria si alguno me da una mano que quede parado con esto....

Saludos, Ariel

lalo1981
07-06-2013, 19:37:45
Si lo resolvi el tema de las notas de credito, no lo tengo presente como pero lo busco y te lo paso.

ginobili20
07-06-2013, 19:55:22
uh gracias lalo te lo agradeceria un montonazo.

Abrazo Ariel

ginobili20
22-07-2013, 21:11:40
No te olvides de mi lalo.. abrazo..

ferra
26-07-2013, 17:18:50
Hola gente
con respecto al error lo solucioné cambiando

HASAR1.CerrarComprobanteFiscal; //ESTE ES EL PROBLEMA

por

HASAR1.Enviar(CHR(69));

espero les sirva

ginobili20
28-08-2013, 17:36:15
Muchisimas gracias ferra, lo pruebo y te aviso.

ferra
03-09-2013, 22:03:02
Hola gente

también hay problemas con HASARImp.Subtotal(true);
si esta linea está después no deja consultar la base de datos entra en conflicto
espero que sea útil

xjre
11-11-2013, 21:58:42
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

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):


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


SubTotal

Tenia:
Hasar.SubTotal(True)

lo eliminé del programa, ya que no necesito saber en ningun momento cuanto voy vendiendo)

CerrarComprobanteFiscal

Tenia:

HASAR.CerrarComprobanteFiscal;

lo reemplace por:

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":



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:

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

edumdq
19-11-2013, 03:45:35
Hola, estoy con un problema, uso delphi 7, una hasar 715F, los tickets A y B los imprime bien.
Estoy intentando crear notas de crédito, me resulta imposible, me da el siguiente error: 'Función no soportada en versión de controlador fiscal seleccionada (Abrir DNFH)'. Si alguien puede pasarme un código completo para imprimir notas de crédito le agradezco.

Gracias!
Edu.

ashleyco
05-12-2013, 07:35:01
donde NumeroFacturaOrigen es un string.

FerJavRec
06-12-2013, 01:23:08
Hola gente, seria bueno poder hacer un componente para las impresoras hasar/epson y así nos desprenderíamos de los fastidiosos OCX,
saludos