Ir al contenido


Foto

No mostrar página si consulta llega vacía. FastReport


  • Por favor identifícate para responder
5 respuestas en este tema

#1 santiago14

santiago14

    Advanced Member

  • Miembros
  • PipPipPip
  • 336 mensajes
  • LocationCerrillos - Salta - Argentina

Escrito 07 enero 2016 - 07:35

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.


  • 0

#2 egostar

egostar

    missing my father, I love my mother.

  • Administrador
  • 14.474 mensajes
  • LocationMéxico

Escrito 07 enero 2016 - 11:24

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.

 

 

Asumo que en la segunda página debería venir el resultado del dataset, me pregunto si estarás mandando a imprimir algunos encabezados fijos ????

 

Saludos


  • 0

#3 santiago14

santiago14

    Advanced Member

  • Miembros
  • PipPipPip
  • 336 mensajes
  • LocationCerrillos - Salta - Argentina

Escrito 07 enero 2016 - 11:34

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

 

Primero, unas funciones...


delphi
  1. function ObtenerDataSet(nombre:string):TFrxDataSet;
  2. var
  3. q:TfrxDataset;
  4. begin
  5. q:=Report.GetDataSet(nombre);
  6. q.first;
  7. Result:=q;
  8. end;
  9.  
  10. {Pone visible o no una página, según haya datos para ponerle desde la consulta SQL}
  11. procedure InvisibilizarPagina(NombreDataSet:string; Pagina:TFrxReportPage);
  12. begin
  13. if not ObtenerDataSet(NombreDataSet).eof then
  14. begin
  15. Pagina.Visible:=True;
  16. end
  17. else
  18. begin
  19. Pagina.Visible:=False;
  20. end;
  21. end;

Ahora un ejemplo de como se llama esto dentro de PascalScript.


delphi
  1. procedure AvisosSeccionJudicialOnBeforePrint(Sender: TfrxComponent);
  2. begin
  3. InvisibilizarPagina('SeccJudicialPaginado', TFrxReportPage(Sender));
  4. 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.

 

Santiago.


  • 1

#4 egostar

egostar

    missing my father, I love my mother.

  • Administrador
  • 14.474 mensajes
  • LocationMéxico

Escrito 07 enero 2016 - 12:15

Hola amigo Santiago

 

Se agradece el aporte (y)

 

Solo un comentario, yo utilizaría la función "isEmpty" del dataset para determinar si hay datos o no en lugar de la propiedad EoF. :)

 

Saludos


  • 0

#5 santiago14

santiago14

    Advanced Member

  • Miembros
  • PipPipPip
  • 336 mensajes
  • LocationCerrillos - Salta - Argentina

Escrito 07 enero 2016 - 04:28

Ahhhh. Si. Lo voy a probar cómo me dices.
Tienes razón


Enviado desde mi iPhone utilizando Tapatalk
  • 0

#6 santiago14

santiago14

    Advanced Member

  • Miembros
  • PipPipPip
  • 336 mensajes
  • LocationCerrillos - Salta - Argentina

Escrito 08 enero 2016 - 08:53

Estuve probando con "IsEmpty", no funciona. Al parecer, TFrxDataSet  no tiene esa funcionalidad incorporada.

Con Eof va bien.

 

Santiago. Gracias.


  • 1




IP.Board spam blocked by CleanTalk.