Ir al contenido



Foto

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

dbgrid multiselect fastreport

Mejor respuesta JoAnCa , 29 abril 2019 - 11:16

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));

Ir al mensaje completo


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

#1 JoAnCa

JoAnCa

    Advanced Member

  • Miembro Platino
  • PipPipPip
  • 730 mensajes
  • LocationPinar del Río, Cuba

Escrito 29 abril 2019 - 09:53

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?

Editado por JoAnCa, 29 abril 2019 - 09:55 .

  • 0

#2 JoAnCa

JoAnCa

    Advanced Member

  • Miembro Platino
  • PipPipPip
  • 730 mensajes
  • LocationPinar del Río, Cuba

Escrito 29 abril 2019 - 11:16   Mejor respuesta

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
  • 730 mensajes
  • LocationPinar del Río, Cuba

Escrito 29 abril 2019 - 11:24

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

Editado por JoAnCa, 29 abril 2019 - 11:31 .

  • 0





Etiquetado también con una o más de estas palabras: dbgrid, multiselect, fastreport