Jump to content


Photo

Como imprimir varias filas de un dbgrid (multiselect) con FastReport

dbgrid multiselect fastreport

Best Answer JoAnCa , 29 April 2019 - 11:16 AM

Ya encontre la respuesta

 


delphi
  1. if dbgListaSolic.SelectedRows.Count > 1 then
  2. begin
  3. for i:=0 to dbgListaSolic.SelectedRows.Count - 1 do
  4. begin
  5. ModuloBD.fdtRegSolicitud.BookMark:=dbgListaSolic.SelectedRows[i];
  6. if Filtro = '' then
  7. Filtro:='IdSolicitud = ' + IntToStr(ModuloBD.fdtRegSolicitudIdSolicitud.Value)
  8. else
  9. Filtro:=Filtro + ' or IdSolicitud = ' + IntToStr(ModuloBD.fdtRegSolicitudIdSolicitud.Value);
  10. end;
  11. FiltraTabla(ModuloBD.fdtRegSolicitud, Filtro);
  12. end
  13. else
  14. FiltraTabla(ModuloBD.fdtRegSolicitud, 'IdSolicitud = '+ IntToStr(ModuloBD.fdtRegSolicitudIdSolicitud.Value));

Go to the full post


  • Please log in to reply
2 replies to this topic

#1 JoAnCa

JoAnCa

    Advanced Member

  • Miembro Platino
  • PipPipPip
  • 775 posts
  • LocationPinar del Río, Cuba

Posted 29 April 2019 - 09:53 AM

Hola a todos

Pues necesito imprimir un informe de un listado de solicitudes, que puede ser una o varias en dependencia de las filas que seleccione el usuario en un dbgrid

Buscando en los foros he visto como manipular las filas de un dbgrid con multiselect, pera la mayoria son para copiar de un dbgrid a otro

Mi idea es segun las filas seleccionadas, crear un filtro para la tabla en la que se basa el reporte, pero parece que me estoy poniendo algo bruto, pues no se me ocurre como hacerlo

Se como recorrer el multiselect del dbgrid, pero no se como conformar el filtro

Alguna idea de como hacerlo?

Edited by JoAnCa, 29 April 2019 - 09:55 AM.

  • 0

#2 JoAnCa

JoAnCa

    Advanced Member

  • Miembro Platino
  • PipPipPip
  • 775 posts
  • LocationPinar del Río, Cuba

Posted 29 April 2019 - 11:16 AM   Best Answer

Ya encontre la respuesta

 


delphi
  1. if dbgListaSolic.SelectedRows.Count > 1 then
  2. begin
  3. for i:=0 to dbgListaSolic.SelectedRows.Count - 1 do
  4. begin
  5. ModuloBD.fdtRegSolicitud.BookMark:=dbgListaSolic.SelectedRows[i];
  6. if Filtro = '' then
  7. Filtro:='IdSolicitud = ' + IntToStr(ModuloBD.fdtRegSolicitudIdSolicitud.Value)
  8. else
  9. Filtro:=Filtro + ' or IdSolicitud = ' + IntToStr(ModuloBD.fdtRegSolicitudIdSolicitud.Value);
  10. end;
  11. FiltraTabla(ModuloBD.fdtRegSolicitud, Filtro);
  12. end
  13. else
  14. FiltraTabla(ModuloBD.fdtRegSolicitud, 'IdSolicitud = '+ IntToStr(ModuloBD.fdtRegSolicitudIdSolicitud.Value));


  • 1

#3 JoAnCa

JoAnCa

    Advanced Member

  • Miembro Platino
  • PipPipPip
  • 775 posts
  • LocationPinar del Río, Cuba

Posted 29 April 2019 - 11:24 AM

A pesar de funcionar bien, pues me imprime las filas seleccionadas, noto algo raro

Cuando cierro el reporte que regresa al formulario principal, el dbgrid me aparece con todas las filas seleccionadas.
Es esto normal?

Como hacer para que se queden seleccionadas solo las que habian anteriormente o si no, una sola?
Tambien serviria, sin ninguna seleccionada

Pues no quisiera que estuvieran todas seleccionadas, pues luce muy feo

PD: Rectifico, es un JvDBGrid

Edited by JoAnCa, 29 April 2019 - 11:31 AM.

  • 0





Also tagged with one or more of these keywords: dbgrid, multiselect, fastreport

IP.Board spam blocked by CleanTalk.