Guía para la creación de un informe mediante el objeto CrystalReportViewer (Práctica 12) Aspecto del formulario principal crystalReportViewer1 Aspecto de diseño de archivo de informe utilizado para el objeto CrystalReportViewer Aparte del espacio de nombre para el acceso a los datos, se deben incluir los dos siguientes using CrystalDecisions.Shared; using CrystalDecisions.CrystalReports.Engine; Variable global necesaria /// Nota: Debemos establecer una variable para definir el entorno de registro a /// la base de datos a la que estará ligado el reporte. private TableLogOnInfo infoEntrada = new TableLogOnInfo(); Se debe definir la siguiente función después de la definición de la función Main() en el formulario principal /// <summary> /// La siguiente función configura los datos de acceso a la tabla que tendrá /// el informe creado con crystal reports /// </summary> private void confInfEntrada() { try { infoEntrada.ConnectionInfo.ServerName="IBMVICTOR"; infoEntrada.ConnectionInfo.UserID="sa"; infoEntrada.ConnectionInfo.Password="sysadmin"; infoEntrada.ConnectionInfo.DatabaseName="pracsFIME"; } catch(Exception ex) { MessageBox.Show(ex.Message); } } Código para el evento Load del formulario principal // Se hace la instancia al objeto reporte. informeCrystalR listaReportes = new informeCrystalR(); // Como los reportes de crystal reports se acceden con el modelo de documento de // .net, se crea una instancia de la clase documento. ReportDocument docReporte = new ReportDocument(); SqlConnection conexion = new SqlConnection(); conexion.ConnectionString = "Data Source=IBMVICTOR;user id=sa;pwd=sysadmin;Initial Catalog=pracsFIME"; // se relaciona el objeto documento con el archivo de informe crystal reports. docReporte.Load(@"C:\DocsVic\ProyVisualStudioNET\PrácticasFIME\Practica12\informe Crystal\informeCrystalR.rpt"); // se carga la función para registro en la tabla de datos (verificar el acceso a // la información que contendrá el informe. docReporte.Database.Tables[0].ApplyLogOnInfo(infoEntrada); // se crea una tabla de datos (datos de una tabla de base de datos, pero en // memoria) para ligarla al reporte, estos datos se asignarán a los campos // que contiene el archivo de informe de crystal reports. DataTable tablaDatos = new DataTable(); // se intenta realizar una conexión para llenar la tabla recién creada mediante // un adaptador de datos. try { string cadComando=" "; cadComando = "SELECT * FROM alumno"; conexion.Open(); SqlDataAdapter adapDatos=new SqlDataAdapter(cadComando,conexion); tablaDatos.Clear(); adapDatos.Fill(tablaDatos); } catch(Exception ex) { MessageBox.Show(ex.Message); } finally { conexion.Close(); } // se asocia el reporte con la tabla de datos ligada al documento. listaReportes.Database.Tables[0].SetDataSource(tablaDatos); // se asocia el archivo de informe con el documento. crystalReportViewer1.ReportSource = docReporte; // se despliega el informe en pantalla. crystalReportViewer1.Zoom(1);