PDA

Ver la Versión Completa : No me sale el reporte completo


magnu9
11-07-2007, 23:30:01
Estoy intentando tirar un reporte de cliente... bueno he logrado definirlo, como pueden ver a mi manera, pero me surge un problemita que no logro despojar y que cuando me sale el reporte solo me consulta el primer cliente los de mas no salen... a pesar de poner desde 1 hasta 7.

var m: integer;
begin
m:= ListBox2.Items.Count;
try
FicCliente:=TFicCliente.Create(self);
if Ordenar.ItemIndex = 0 then begin
FicCliente.querCliente.SQL.Add(' Select codcli as codigo,nomcli as NOMBRE, dircli, telcli,cedcli, estado, codciu From cliente ');
FicCliente.querCliente.SQL.Add(' WHERE cliente.codcli >='''+(edCodigo1.Text)+''' AND cliente.codcli <= '''+(edCodigo2.Text)+'''');
FicCliente.querCliente.SQL.Add('or (cliente.nomcli >='''+edNombre1.text+'%'' AND cliente.nomcli <= '''+edNombre2.text+'%'')');

IF m=0 THEN
FicCliente.querCliente.SQL.Add(' ORDER BY CODCLI ASC')
else IF m=1 THEN
FicCliente.querCliente.SQL.Add(' ORDER BY '+ListBox2.Items[0]+'')
else IF m=2 THEN
FicCliente.querCliente.SQL.Add(' ORDER BY '+ListBox2.Items[0]+','+ListBox2.Items[1]+'')
else IF m=3 THEN
FicCliente.querCliente.SQL.Add(' ORDER BY '+ListBox2.Items[0]+','+ListBox2.Items[1]+','+ListBox2.Items[2]+'')
else IF m=4 THEN
FicCliente.querCliente.SQL.Add(' ORDER BY '+ListBox2.Items[0]+','+ListBox2.Items[1]+','+ListBox2.Items[2]+','+ListBox2.Items[3]+'');
end
else begin
FicCliente.querCliente.SQL.Add(' Select codcli,nomcli, dircli, telcli,cedcli, estado, codciu From cliente ');
FicCliente.querCliente.SQL.Add(' WHERE cliente.codcli >='''+(edCodigo1.Text)+''' AND cliente.codcli <= '''+(edCodigo2.Text)+'''');
FicCliente.querCliente.SQL.Add('OR cliente.nomcli='''+edNombre1.Text+''' and cliente.nomcli='''+edNombre2.Text+'''');
IF ListBox2.ItemIndex=1 THEN
FicCliente.querCliente.SQL.Add(' ORDER BY '+ListBox2.Items[0]+', '+ListBox2.Items[1]+'');
end;

// Showmessage(FicCliente.querCliente.SQL.text);
FicCliente.querCliente.Open;
FicCliente.Titulo.text := 'Reporte de Cliente';
If Salida.ItemIndex = 0 then FicCliente.QuickRep1.Preview
else if Salida.ItemIndex= 1 then FicCliente.QuickRep1.Print;
finally
FicCliente.Free;
end;
end;

Caro
12-07-2007, 00:36:47
Hola debes enlazar tu query al dataset de tu reporte antes de hacer el preview.


.............
FicCliente.querCliente.Open;
FicCliente.Titulo.text := 'Reporte de Cliente';

FicCliente.QuickRep1.DataSet:=FicCliente.querCliente;

If Salida.ItemIndex = 0 then FicCliente.QuickRep1.Preview
else if Salida.ItemIndex= 1 then FicCliente.QuickRep1.Print;
.............

magnu9
12-07-2007, 20:03:32
Un millón de Gracias Caro, ;) con tu respuesta todo se me resolvio.