PDA

Ver la Versión Completa : guardar un dbgrid en un archivo de texto


unreal4u
16-03-2005, 21:17:45
Hola a todos ... tengo una duda:

Resulta que dentro de mi programa, hago una consulta a una base de datos, la cual me pone los resultados dentro de un dbgrid. Todo bien hasta el momento ...

Por otro lado, tengo un botoncito, q al presionarlo, me DEBERIA guardar ese resultado a un archivo de texto. En búsquedas cortas, o sea, donde los resultados se alcanzan a mostrar en la pantalla, ningún problema, me guarda todos los resultados; PERO cuando las búsquedas abarcan más de una pantalla, viene mi problema: no guarda los resultados de la búsqueda que estén por debajo de la pantalla.

Mi pregunta es: ¿Cómo soluciono esto? La base de datos está hecha con postgres, los componentes que ocupo para conectarme a la base de datos es el zeoslib 6.1.x (no me acuerdo de la versión exacta). El dbgrid es el que viene con Delphi 6.

Muchas gracias por anticipado ...

marcoszorrilla
16-03-2005, 21:28:18
Mira esta rutina que pasa datos de una rejilla al portapapeles con unos ligeros retoques ya tienes lo que quieres.

var
i : integer;
Data : TDataSet;
begin
Data:=DBGRID1.DataSource.DataSet;
Data.First;
Clipboard.AsText := '';
while not(Data.eof) do
begin
for i := 0 to dbgrid1.Columns.Count-1
do
Clipboard.AsText:=Clipboard.AsText+
Data.FieldByName(DBGrid1.Columns[i].FieldName).asString+#9;
Clipboard.AsText:=Clipboard.AsText+#13;
Data.Next;
end;
end;


Un Saludo.

unreal4u
16-03-2005, 21:38:28
mmm ... bastante interesante ... a primera vista parece q es justo lo que necesito ... en un par de dias más te aviso, ya que primero tengo que llegar a mi pc e instalar el delphi, además de los componentes adicionales y ... ooooh, ahora me arrepiento de haber cambiado la placa madre ... OK, Gracias!!

Delfino
16-03-2005, 23:07:57
La libreria tiene 4 componentes para eportar el DBGrid, a csv, doc, ls y html, seguro q iteresaria echarles un vistazo..

unreal4u
18-03-2005, 20:08:57
mmm ... no lo sabia, gracias por el tip, lo voy a investigar... Pero todo dentro de este fin de semana jeje ...