PDA

Ver la Versión Completa : Filtrar grilla e imprimir


lbidi
23-08-2011, 16:21:12
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:


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.