Foros Club Delphi

Foros Club Delphi (https://www.clubdelphi.com/foros/index.php)
-   Impresión (https://www.clubdelphi.com/foros/forumdisplay.php?f=4)
-   -   Filtrar grilla e imprimir (https://www.clubdelphi.com/foros/showthread.php?t=75439)

lbidi 23-08-2011 16:21:12

Filtrar grilla e imprimir
 
Estimados foristas.

Resulta que tengo un grid ( SMDBGrid ), la cual contiene varios registros y los puedo seleccionar con multi select.

Esta grilla la tengo linkeada a un datasource el cual esta asociado a un reporte de fast report.

Mi problema es como puedo "filtrar" solamente aquellos registros que tengo seleccionados para imprimir.

Una idea que me surgio es filtrar la tabla por los registros seleccionados, y luego mandarla a imprimir.

La otra seria en el evento beforeprint del reporte, solo tomar en cuenta los registros seleccionados, pero tampoco he podido hacerlo.

Se agradece cualquier sugerencia.

Saludos

Adrianmex 23-08-2011 19:04:58

Hola.

No soy experto, pero algo de idea te servirá. Yo lo hice de la siguiente manera con tablas de Absolute Database:

Código:

var b:integer; s,m:string;
begin
if SMDBGrid.SelectedRows.Count<>0 then //Si se han seleccionado registros
begin
for b :=0 to SMDBGrid.SelectedRows.Count-1 do // Para hacer un barrido de los registros seleccionados
  begin
  TuTabla.GotoBookmark(Pointer(SMDBGrid.SelectedRows.Items[b]));//se va posicionando en cada registro seleccionado
  s:='Tucampo='+quotedstr(Tutabla.fieldByName('Tucampo').AsString); //aquí obtenemos el valor del campo a filtrar
  if b<>SMDBGrid.SelectedRows.Count-1 then //si no es el último/único registro
  m:=m+s+' or ' //con "m" se van guardando los datos a filtrar
  else
  m:=m+s;
  end;
TuTabla.Filter:=m;
TuTabla.Filtered:=True;
end else
Showmessage('No se seleccionaron registros');
end;

Tal vez alguien más experimentado te pueda dar otra idea y con otro tipo de bases de datos.

Suerte.

lbidi 24-08-2011 13:53:16

Gracias AdrianMex por tu respuesta. Este codigo lo habia probado y funciona barbaro. El asunto ( que no mencione antes x cierto :( ) , es que tengo 2 tablas en una relacion maestro-detalle, y tengo que imprimir ambas en el mismo reporte.

O sea, lo que necesito es imprimir ciertos registros de la tabla maestro con sus correspodientes registros de la tabla detalle en el mismo reporte.

Gracias nuevamente.

Saludos.


La franja horaria es GMT +2. Ahora son las 04:51:06.

Powered by vBulletin® Version 3.6.8
Copyright ©2000 - 2026, Jelsoft Enterprises Ltd.
Traducción al castellano por el equipo de moderadores del Club Delphi