PDA

Ver la Versión Completa : Imprimir columnas seleccionadas de un DBGrid


jdangosto
07-10-2004, 09:00:20
Buenas, estoy intentado imprimir las columnas seleccionadas de un dbgrid. Lo he intentado con un módulo que me baje llamada queryprint, pero lo imprime entero. También lo he intentado con el PrintDialog implementando el siguiente código:

printdialog1.Execute;
printdialog1.Assign(dbgrid1.SelectedField);

Al compilarlo no me da error, pero cuando lo intento ejecutar me devuelve el siguiente error: Cannot assign a TstringField to a PrintDialog.

¿Cómo puedo solucionar esto?

Desde ya gracias.

Neftali [Germán.Estévez]
07-10-2004, 12:20:12
...También lo he intentado con el PrintDialog implementando el siguiente código...
printdialog1.Execute;
printdialog1.Assign(dbgrid1.SelectedField);
....PrintDialog tiene que ver con impresión y SelectedField tiene que ver con la columna seleccionada, pero ésto que has hecho es como:
"...Para freir un huevo se necesita una sarten y un huevo;... sarten, huevo, sarten, huevo,... Pongo la sarten en el suelo, pongo el huevo al lado y a ver si se frie.... MORALEJA: Tienes el huevo y la sartén, pero no se frie sólo, o lo que es lo mismo, tienes PrintDialog y SelectedField, pero no se va a imprimir sólo...."

...estoy intentado imprimir las columnas seleccionadas de un dbgrid....
¿Qué tipo de Generador de Reports estás utilizando?
¿Quieres exportarlo?
¿Cómo has creado el report? ¿Un report diferente para cada columna?

Lo que haría yo sería lo siguiente:

(1) Montar una consulta nueva (TQuery) utilizando la misma tabla que tienes en el Grid, pero sólo con una columna; La columna te la dará SelectedField; Algio así:


Str := SELECT ' + DBGridRAL1.SelectedField.FieldName + ' FROM Tabla


Ésto te dará una consulta sobre la tabla, pero sólo con el campo seleccionado; Ésto es lo que debes utilizar para generar el listado con el generador que estés utilizando.
Tal vez no uses ningun Generador de Reports, ahora se me ocurre que en ese caso puedes grabar la salida a un fichero y luego mandarlo a imprimir; Recorre la consulta anterior, vuelca el resultado a un TStrings, luego lo grabas a disco con SaveToFile y luego lo imprimes (con ShellExecute, por ejemplo).


Pero es que sin más información... ...difícil...