Ver la Versión Completa : QuickReport
elturu15
18-05-2011, 20:22:21
Hola Necesito Ayuda!.. tengo que mostrar un listado en QuickReport y no se como hacer.
Lo unico que se hacer es Mostrar un Campo solo con QRDBText1, pero si quiero mostrar varios campos o varios registros..comolos hago? con que codigo?
Gracias
oscarac
18-05-2011, 20:38:02
hola como esdtas
lo primero una visita a la guia de estilo (http://www.clubdelphi.com/foros/guiaestilo.php)
lo segundo... asi como muestras un campo puedes mostrar los que desees, solo debes asociar en el datasource del quickreport el datasource de la tabla o query donde tienes los datos y listo
busca en el foro se ha tratado muchas veces este tema
saludos
Hola elturu15, para varios campos necesitas mas QRDBText enlazados a cada campo, para mostrar varios registros, debes utilizar una banda de tipo rbDetail y dentro los QRDBText.
Saluditos
elturu15
19-05-2011, 03:36:56
Entiendo lo que me decis pero yo quiero mostrar el campo NumCli y quieromostrar todos los NumCLi que tengo en la base de access- si uso lo que me decis me muestra un solo regiosto...y como hago para mostrar varios registros?
Capas que me exprese mal en la primera consulta ja perdon
oscarac
19-05-2011, 04:16:17
como te dije antes asocia el datasource del quickreport al datasouce de la tabla o query
ElKurgan
19-05-2011, 07:40:06
Si quieres un tutorial completo y muy explicado lo puedes encontrar en DelphiAlLímite; en concreto, abarcaba estos enlaces
http://delphiallimite.blogspot.com/2009/01/creacin-de-informes-con-quickreport-i.html
http://delphiallimite.blogspot.com/2009/01/creacin-de-informes-con-quickreport-ii.html
http://delphiallimite.blogspot.com/2009/01/creacin-de-informes-con-quickreport-iii.html
http://delphiallimite.blogspot.com/2009/01/creacin-de-informes-con-quickreport-iv.html
http://delphiallimite.blogspot.com/2009/01/creacin-de-informes-con-quickreport-v.html
Un pdf con el contenido completo del sitio web lo puedes encontrar en ClubDelphi, concretamente aqui (http://www.clubdelphi.com/trucos/index.php?id=585)
Espero que te sirva.
Saludos
elturu15
19-05-2011, 23:28:21
Gracias por la info pero el problema que tengo ahora es este.
cuando ejecuto la prueba delistar se me cualge. El codigo que uso es este y esta en un button
begin
ADOQuery1.Close;
ADOQuery1.SQL.Clear;
ADOQuery1.SQL.Text:='SELECT * FROM Ciudades';
ADOQuery1.Open;
While not ADOQuery1.EOF do
QRDBText1.DataField:= ADOQuery1.Fields[1].AsString;
end;
Si no pongo el While me lista el primer reg y si lo pongo se me cuelga,
YO QUIERO LISTAR TODA LA TABLE...AUXULIO!
ElKurgan
20-05-2011, 07:24:24
... cuando ejecuto la prueba delistar se me cualge. El codigo que uso es este y esta en un button
Código Delphi [-] (http://www.clubdelphi.com/foros/#)begin
ADOQuery1.Close;
ADOQuery1.SQL.Clear;
ADOQuery1.SQL.Text:='SELECT * FROM Ciudades';
ADOQuery1.Open;
While not ADOQuery1.EOF do
QRDBText1.DataField:= ADOQuery1.Fields[1].AsString;
end;
Si no pongo el While me lista el primer reg y si lo pongo se me cuelga,
YO QUIERO LISTAR TODA LA TABLE...AUXULIO!
Se cuelga porque dentro del bucle while no le dices que pase al siguiente registro con
ADOQuery1.Next;
Por lo demás, en QR no hace falta asignar nada en ejecución para que te muestr todos los registros: Basta con que en el informe le pongas su propiedad "Dataset" apuntando al "ADOQuery1" y la propiedad "DataField" de QRDBText1 al campo que deseas mostrar. ¿Como estás llamando al informe? ¿Está el formulario que lo contiene en modo "Autocreate" o lo creas cuando sea necesario? A lo mejor necesitas asignar los campos en algún evento antes de mostrar el QR, como BeforePrint o alguno parecido
Un saludo
elturu15
20-05-2011, 14:16:03
HOla GRacias por las ayudas...pero puse el ADOQuery1.Next y sigue sin listar.
el DataSet del QuickReport Apunta al Query1 y el DataSet del QRDBText1 tambien apunta al Query1 y no se como es eso de que el Formulario este en AutoCreate. Yo lo que quiero es apretar un botoncito (button) y que me aparesca el QuickReport con todos los regiostros de la Tabla Provincias, osea, que me aparesca esto:
La Pampa
Buenos Aires
Cordoba
Mendoza
Santa Fe
y No se como Asiganar los reguistros al QuickReport....nose si esta bien lo de DataSet.
Necesito Su Ayuda!
Pedro-Juan
20-05-2011, 20:27:42
Hola.
Tienes que asignar el DataSet A QuickRep (en las propiedades del QuickRep hay una que se llama DataSet), le tienes que poner el Query o la Table que uses.
Luego poner una QRBand en el QuickRep.
Y sobre la QRBand, poner el QRDBText (o los que necesites), con el campo del Query o la Table asignado en la propiedad DataField del QRDBText.
No necesitas el while, sólo algo así:
QuickRep.Print
Espero haberte ayudado. Un saludo
elturu15
20-05-2011, 21:19:23
Hola!! muchas gracias por la ayuda que me estan dando pero no consigo hacer que esto funcione.
te digo lo que tengo
en un Form1 pongo un QuickRep1, dentro de ese QuickRep Pongo una DetailBand y despues sobre el DetailBand pongo un QRDBText y hay, en el QRDBText buelco los datos que tengo en la tabla...voy bien?
y despues tengo un ADOQuery COnectado a un ADOConection. Les TEngo que decir que a la Propiedad Data Set del QuickReport y del QRDBText le asigono ADOQuery1. Y por ultimo tengo un Button en donde pongo este codigo :
procedure TForm1.Button1Click(Sender: TObject);
begin
QuickRep1.DataSet:=ADOQuery1;
ADOQuery1.SQL.Clear;
ADOQuery1.SQL.Text:= 'SELECT * FROM provincias order by nombre';
ADOQuery1.Open;
ADOQuery1.First;
While not ADOQuery1.Eof do
Begin
QRDBText1.DataField:=ADOQuery1.Fields[0].AsString;
ADOQuery1.Next;
End;
end;
Todo esto es lo que tengo en mi FORM1.
Y cuando COmplico y apreto el Button para que me genere todo el listado de mi tabla Provincias, SOlo me aparese el Primer Registro y Por ultimo, cuando lo Pre-Visualiso no me aparese ni siquiera el PRimer Registro, todo en blanco..
QUAL ES MI ERRORRRRRRRRRRRR!!!!!
ESPERO SER CALRO Y MUCHAS GRACIAS
oscarac
20-05-2011, 21:27:26
Colocar en quirckreport dent del form?
porque mejor no creas una unidad donde este solito el quickreport
esto..
Procedure TForm1.Button1Click(Sender: TObject);
begin
QuickRep1.DataSet:=ADOQuery1;
ADOQuery1.SQL.Clear;
ADOQuery1.SQL.Text:= 'SELECT * FROM provincias order by nombre';
ADOQuery1.Open;
ADOQuery1.First;
While not ADOQuery1.Eof do
Begin
QRDBText1.DataField:=ADOQuery1.Fields[0].AsString;
ADOQuery1.Next;
End;
end;
lo reemplazas por esto
procedure TForm1.Button1Click(Sender: TObject);
begin
QuickRep1.DataSet:=ADOQuery1;
ADOQuery1.SQL.Clear;
ADOQuery1.SQL.Text:= 'SELECT * FROM provincias order by nombre';
ADOQuery1.Open;
quickRep1.Preview
end;
elturu15
21-05-2011, 14:23:04
Hola!! muchas gracias por ayudarme pero pongo el codigo que me dijiste en el Button1 y no pasa nada, se me abre la vista previa sin singuna dato...
No se que mas puedo hacer,,la verdad que no entiendo...De que otra manera se puede hacer? o que estoy haciendo mal?
vBulletin v3.6.8, Derechos ©2000-2013, Jelsoft Enterprises Ltd.