La Web del Programador: Comunidad de Programadores
 
    Pregunta:  3264 - IMPRIMIR UNA CONSULTA SQL CON EL CRISTAL REPORTS
Autor:  Superwill
Tengo un control Data y un DataGrid enlazado. Sobre el control Data hago una consulta SQL y los resultados se me muestran en el dataGrid. Mi pregunta es, como puedo imprimir los resultados de esa consulta?
He probado con el Cristal Reports, cambiarle la propiedad SQLQuery por la consulta, pero no lo consigo.

  Respuesta:  Daniel Morin
Hola, No te quiebres tanto la cabesa crystal reports es algo complicado, si lo que quieres es imprimir lso resultados de tu data grid, tengo una DLL que te puede ayudar ya que imprime el data grid tal cual en la impresora, solo le añades titulo al reporte, pie de pagina y lo mejor de todo es que sale tal como lo tienes en pantalla sin necesidad de imprimir el objeto, otra solución es que utilizes el DATAREPORT de visual, existe una forma de enviar una SQL a un DATAREPORT sin usar el DATAENVIRONMENT, lo mejor de esto es que lo haces con solo dos lineas de codigo dentro de tu formulario.

MAndame un mail y te mando la DLL y un ejemplo de ambos

  Respuesta:  Santiago Tomas
Utiliza el metodo printer.print: es más laborioso pero te dará un completo control sobre lo impreso.

Respecto Cristal reports, creo que cada informe queda guardado con la consulta, los campos y sus posiciones en el informe, pudiendo ademas pasar parametros a la consulta desde el cliente VB, pero dudo que puedas modificar la consulta en sí, pues si cambian los campos a imprimir te aparecerán referencias perdidas y errores (en principio) en el report.

  Respuesta:  Gustavo Gerbaud
Deberías armar la consulta en una string y pasársela a la propiedad selectionformula de control crystal.
Pej.: CrystalReport1.SelectionFormula= "{Id de Cliente} = " & Text1.Text
Probalo

  Respuesta:  Luis Alberto
Estimado Colega:

Si has desarrollado tu aplicación en Visual Basic 6 por lo que veo es así ya que mencionas que usas el control DATAGRID me parece que deberías usar DATAREPORT para los reportes cómo?

Primero insertas una DATAENVIRONMENT (Para indicarle la base a usar)
Luego Un Command (En ella se podría insertar la consulta directamente,actualizando mediante los parámetros por ejemplo desde una caja de texto).

Chau