Foros Club Delphi

Foros Club Delphi (https://www.clubdelphi.com/foros/index.php)
-   Conexión con bases de datos (https://www.clubdelphi.com/foros/forumdisplay.php?f=2)
-   -   Guardar filas seleccionadas en un DbGrid (https://www.clubdelphi.com/foros/showthread.php?t=28101)

Nbull 09-12-2005 11:05:06

Guardar las filas seleccionadas en un DbGrid en un archivo de texto
 
Hola de nuevo, despues de bastante tiempo desconectado de estos foros vuelvo a la carga con mis dudas.

En primer lugar un saludo a todos los foreros y a los moderadores por su gran labor desinteresada de ayuda a esta comunidad.No tengo palabras para agradeceros la ayuda que siempre nos prestais a los novatillos como yo.;)

Bueno dicho esto, os lanzo mi pregunta:

Estoy haciendo una aplicación en Delphi 7 con una base de datos en Access, Estoy usando componentes Ado para comunicarme con la base de datos.Mi consulta es que quiero que cuando el usuario pinche en el dbgrid varios registros, que tenga la posibilidadad de guardar los registros en un archivo de texto o imprimirlos en un informe Qreport.

Lo de que pueda seleccionar varios registros lo he solucionado con dgmultiselect=true,pero, lo que no se hacer es coger los registros seleccionados y pasarmelos a un archivo de texto.

Mi segunda consulta es que cuando quiero seleccionar varios registros con la tecla Shift+Click no me deja solo me deja hacerlo con Control+Click, no se por que me pasa esto por que he leido por el foro que si que se puede hacer.

Gracias por toda vuestra ayuda y un Saludo.

Caro 09-12-2005 14:36:02

Hola, esto te muestra los valores de campos de las filas seleccionadas lo demas lo haces tu como dices pasarlo a un archivo a un reporte aqui el codigo

Código Delphi [-]
var
   i,j:Integer;
   cadena:String;
begin
 if grid.SelectedRows.Count>0 then
 begin
   for i:=0 to grid.SelectedRows.Count-1 DO
   begin
       query.GotoBookmark(pointer(grid.SelectedRows.Items[i]));
       for j := 0 to query.FieldCount-1 do
       begin
          if (j>0) then cadena:=cadena+', ';
          cadena:=cadena+query.Fields[j].AsString;
       end;
       cadena:= cadena+#13;
   end;
   showmessage(cadena);
 end;
end;

espero te sirva

Nbull 12-12-2005 09:07:12

Hola Caro, si que me ha servido era justo lo que necesitaba.

Ahora ya puedo guardar en un archivo, lo que el usuario selecciona en el dbgrid.

Un saludo y muchisimas gracias por tu ayuda.;)

Nbull 12-12-2005 11:23:59

Perdonar que os moleste otra vez, ahora lo que quiero es copiar los registros seleccionados de mi dBgrid a otra tabla donde el usuario pueda ver todo loo que ha seleccionado para asi poder modificar su seleccion antes de imprimir o guardar en un archivo.


He pensado en un Stringrid pero no se como pegar los datos que he copiado en el stringgrid y que me quede igual que estaba en el dbgrid, es decir, los datos de los registros que queden en sus campos correctamente no cada uno donde quiera.

Gracias y un saludo.

jachguate 12-12-2005 18:26:19

Francamente creo que el problema que se te está dando es por solamente haber copiado y pegado el código ya publicado por Caro sin entenderlo.

Con un rato que dediques a comprender su funcionamiento, estoy seguro que podrás adaptarlo para lo que ahora se te ha ocurrido.

Saludos.

;)


La franja horaria es GMT +2. Ahora son las 10:23:54.

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