La Web del Programador: Comunidad de Programadores
 
    Pregunta:  8957 - MANEJO DE VARIOS RECORDSETS EN EL DATAREPORT DE VB6
Autor:  Gabriel Pérez Plascencia
Uno de los principales problemas que he tenido con el DataReport es que solo puedo manejar un RecordSet y ha sido todo un caos porque necesito que mi reporte tome información de 13 tablas diferentes. Por otro lado, no se cómo puedo configurarar el tamaño de la hoja; yo necesito que sea en una hoja tamaño carta y horizontal, pero no he encontrado una propiedad que haga esto.

  Respuesta:  Jesús Valdivieso Mariscal
Bueno, para que puedas manejar más de un recordset en un DataReport, debes hacer lo siguiente:

Cuando crees el comando en el entorno de datos, elige 'Generador de SQL', esto te llevará a una nueva ventana donde podrás seleccionar de la 'Vista Datos', las tablas que quieres relacionar. Sólo tienes que arrastar las tablas que desees y después relacionar los campos de las tablas que actúen como relación entre ellas.

El diseñador genera el código SQL necesario para la consulta, la cual tú puedes modificar seleccionando sólo los campos que desees que se muestren en el informe.

Una vez creada la consulta, podrás desde las propiedades del comando, agrupar, crear campos calculados, etc...

Lo último que te queda es crear el DataReport, vinculando el mismo con el comando que has generado anteriormente en el entorno de datos.

La verdad, es que es un verdadero latazo, crear un informe con el DataReport, ya que es muy poco flexible y si quieres modificar después algo es muy complicado, ya que el informe has de generarlo casi de nuevo otra vez. Pero al menos, se puede distribuir libremente, cosa que con Crystal es más complicado (licencia, etc...).

El tamaño de la hoja, la puedes cambiar con la propiedad del DataReport 'ReportWidth'. Un valor de 13955 TWIPS es un A4 apaisado, y de 9030 TWIPS para A4 en vertical, aproximadamente. Estos valores eliminan la superficie donde la impresora no puede imprimir. Haz tú la conversión de TWIPS (567 TWIPS en un Centímetro) para el tamaño que buscas, seguramente tendrás que hacer algunas pruebas de impresión para comprobar que realmente la superficie de impresión entra dentro del formato de hoja a imprimir.

Bueno, espero que esto sirva de ayuda.

Saludos, Jesús .............