PDA

Ver la Versión Completa : Factura, no muestra detalle - QReport


BlueSteel
27-09-2006, 23:16:38
Holas...

tengo una pana, que no se como solucionarla....

tengo un Factura echa en QReport, para ello utilizo 3 bandas,Title, Detail y Summary......

El reporte lo llamo de un Formulario donde me muestra un listado de facturas.... y cuando presiono el boton para la factura, la primera vez que muestra la factura muestra todo, excepto los items que estan en la banda detail.. pero si salgo y entro nuevamente si los muestra.... (esto pasa tanto cuando hago el Preview como el Print )

Alguien sabe por que puede pasar esto

marcoszorrilla
28-09-2006, 07:12:14
Por qué no pones algo del código que estás utilizando, porque me parece muy extraño, se supone que tienes unida la banda detalle al datasource que corresponde con los datos de las líneas de la factura y que la relación está establecida y el datasource conectado antes de lanzar la vista previa y ambas tablas están abiertas.

Un Saludo.

BlueSteel
28-09-2006, 21:54:00
Este es el código que tengo... y se ejecuta en el Evento BeforePrint de la Banda Title

Utilizo 2 IBQuery y 2 IBTrasaction...

IBQ_Factura e IBT_Factura, con la que hago referencia a la factura propiamente tal e imprimo los datos correspondientes a cliente y totales...

IBQ_Items e IBT_Items, con la que hago el filtro correspondiente a los items de la factura (detalle)

lo más raro es que cuando veo la factura por primera vez no lo muestra :confused: , salgo de la vista previa y vuelvo a ingresar y ahí si los muestra:eek: :eek: :eek: ...(solo sucede 1 vez,, despues muestra todo bien.. independiente de la factura que se haya seleccionado )


IBQ_Factura.SQL.Clear;
IBQ_Factura.SQL.Add('Select * From "Factura","Cliente"');
IBQ_Factura.SQL.Add('Where "Factura"."Cli_Rut"="Cliente"."Cli_Rut"');
IBQ_Factura.SQL.Add('And "Fac_Numero"=:Var1');
IBQ_Factura.Params[0].AsString := NumFactura;
IBQ_Factura.Open;

sRaz.Caption := IBQ_Factura['Cli_Razon'];
sRut.Caption := IBQ_Factura['Cli_Rut'];
sDir.Caption := Concat(IBQ_Factura['Cli_Direccion'],' ',IBQ_Factura['Cli_Poblacion']);
sCiu.Caption := IBQ_Factura['Cli_Comuna'];
sFon.Caption := IBQ_Factura['Cli_Fono'];
sGir.Caption := IBQ_Factura['Cli_Giro'];
sNum.Caption := Concat('FACT. Nº ',FormatFloat('000000#',IBQ_Factura['Fac_Numero']));
sDia.Caption := FormatDateTime('dd', IBQ_Factura['Fac_Fecha_Emision']);
sMes.Caption := FormatDateTime('mmmm', IBQ_Factura['Fac_Fecha_Emision']);
sAno.Caption := FormatDateTime('y', IBQ_Factura['Fac_Fecha_Emision']);
sGui.Caption := IBQ_Factura['Fac_Guia_Despacho'];
sOrd.Caption := IBQ_Factura['Fac_Orden_Compra'];
sPag.Caption := IBQ_Factura['Fac_Forma_Pago'];
sNeto.Caption := FormatFloat('#,',IBQ_Factura['Fac_Neto']);
sIVa.Caption := FormatFloat('0,',IBQ_Factura['Fac_Iva']);
sTotal.Caption := FormatFloat('#,',IBQ_Factura['Fac_Total']);
sMon.Caption := Concat('Son: ',NumeroPala(IBQ_Factura['Fac_Total']));

IBQ_Items.SQL.Clear;
IBQ_Items.SQL.Add('Select * From "DFactura","Producto"');
IBQ_Items.SQL.Add('Where "DFactura"."Pro_Codigo"="Producto"."Pro_Codigo"');
IBQ_Items.SQL.Add('And "Fac_Numero"=:Var1');
IBQ_Items.Params[0].AsString := NumFactura;
IBQ_Items.Open;
IBQ_Items.First;

marcoszorrilla
28-09-2006, 22:19:58
Prueba a montar el SQl en el botón de vista previa e imprimir y no en el vento OnPrint.

Puedes crear un Procedimiento que lance el SQL y luego llamarlo desde ambos botones.

Y deja para el evento OnPrint solamente la actualización de las etiquetas.

Un Saludo.

BlueSteel
29-09-2006, 00:31:29
Gracias.. funcionó a la perfección.... :D :p