Foros Club Delphi

Foros Club Delphi (https://www.clubdelphi.com/foros/index.php)
-   Impresión (https://www.clubdelphi.com/foros/forumdisplay.php?f=4)
-   -   No mostrar página si consulta llega vacía. FastReport (https://www.clubdelphi.com/foros/showthread.php?t=89652)

santiago14 07-01-2016 14:36:32

No mostrar página si consulta llega vacía. FastReport
 
Buenas, feliz 2.016 y que todos estemos mejor en este nuevo año que comienza.
Mi consulta es la siguiente:

Tengo un FastReport con varias páginas, le envío la consulta sql a través del TFrxDBDataSet como siempre.
En algunos casos, la consulta llega vacía, y eso está bien, puesto que no se encontró el dato que se necesitaba imprimir. En ese caso, la segunda página de mi FastReport no debería imprimirse.
No estoy pudiendo hacer eso, actualmente me sale la segunda página vacía.
Espero haber sido claro.

Gracias.
Santiago.

nicolas77 08-01-2016 13:24:47

no te sirve hace un recordcount?
si esta en cero, no abris el reporte.

santiago14 09-01-2016 13:07:59

Me respondo a mí mismo. Esto decide si mostramos o no una página de FastReport según el DataSet.

Primero, unas funciones...
Código Delphi [-]
function ObtenerDataSet(nombre:string):TFrxDataSet;
var
  q:TfrxDataset;  
begin
  q:=Report.GetDataSet(nombre);
  q.first;
  Result:=q;                        
end;          

{Pone visible o no una página, según haya datos para ponerle desde la consulta SQL}    
procedure InvisibilizarPagina(NombreDataSet:string; Pagina:TFrxReportPage);
begin
  if not ObtenerDataSet(NombreDataSet).eof then
  begin
    Pagina.Visible:=True;
  end
  else
  begin
    Pagina.Visible:=False;
  end;                  
end;
Ahora un ejemplo de como se llama esto dentro de PascalScript.
Código Delphi [-]
procedure AvisosSeccionJudicialOnBeforePrint(Sender: TfrxComponent);
begin
  InvisibilizarPagina('SeccJudicialPaginado', TFrxReportPage(Sender));  
end;
En este caso, la Sección Judicial se podría mostrar, o no, si viene la SQL (SeccJudicialPaginado) vacía.

Espero que le sirva de ayuda al foro.


La franja horaria es GMT +2. Ahora son las 20:16:25.

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