El siguiente contenido es el código del programa:
Antes de estudiar Crystal Reports en VS.Net, mi amigo y yo teníamos mucha curiosidad sobre cómo agregar estas cosas complicadas a nuestra aplicación web. Una semana después, después de leer muchos documentos "COMO", agregamos con éxito algunos informes simples a nuestro programa Asp.net y obtuvimos algunos consejos.
Este artículo le enseña cómo utilizar Crystal Reports en aplicaciones web .Net y también puede ayudarle a evitar desvíos en el proceso de aprendizaje. Para obtener los mejores resultados, los lectores deben tener algunos conocimientos básicos sobre el acceso a la base de datos Asp.Net y experiencia en desarrollo utilizando VS.Net.
Introducción
Crystal Reports se puede obtener de muchas maneras, una de las cuales es usar VS.Net para crearlo, que proporciona un modelo muy rico que nos permite operar propiedades y métodos en tiempo de ejecución. Si está utilizando VS.Net para desarrollar programas .Net, no necesita instalar otro software porque ya está integrado en VS.Net.
ventaja:
VS.Net Crystal Reports tiene las siguientes ventajas principales:
Desarrollo rápido de informes
Capacidad de exportar a gráficos interactivos complejos
Se puede utilizar en WebForm con otros controles.
Capaz de exportar informes dinámicamente a .pdf, .doc, xls, html, rtf y otros formatos.
estructura:
Algunos componentes conforman la estructura de dos niveles de Crystal Reports. Las aplicaciones web requeridas son:
Cliente:
El cliente sólo necesita un navegador que pueda acceder al informe incrustado en la página aspx.
servidor:
- Motor de informes Crystal (CREngine.dll)
Puede completar algunas tareas, como fusionar datos en archivos de informes, convertir informes a otros formatos, etc. Es precisamente gracias al motor de informes que Crystal Reports en Asp.Net se puede convertir al formato HTML normal.
- Diseñador de informes Crystal (CRDesigner.dll)
Crystal Reports se crean en el diseñador, donde puedes diseñar títulos, insertar datos, fórmulas, gráficos, subinformes, etc.
- Archivo de informe .rpt
El primer paso para ejecutar un informe es crearlo en la interfaz de Crystal Report Designer. Microsoft ha proporcionado algunos ejemplos .rpt listos para usar en la instalación predeterminada.
- Fuente de datos
El método para obtener la base de datos del archivo .rpt depende del método que elija. Puede optar por dejar que Crystal Reports seleccione los datos sin utilizar ningún código o puede optar por ensamblar manualmente el conjunto de datos y luego transferirlo al archivo de informe. .
- Control de formulario web Crystal Report Viewer (CRWebFormViewer.dll)
El control de vista de Crystal Report es un control WebForm, que puede considerarse como un contenedor que almacena informes en una página .aspx. Nota: En algunas operaciones complejas, es posible que el servidor de informes y el servidor web no estén en el mismo host físico y el servidor web transmite la solicitud HTTP al servidor de informes. Crystal Reports también se puede ejecutar como un servicio web.
La recuperación de datos de Crystal Reports en modo de ejecución se puede lograr mediante los siguientes métodos:
- Modo de tracción:
Cuando se solicita, Crystal Reports se conecta directamente a la base de datos según el controlador especificado y reúne los datos.
- Modo de empuje:
En este momento, la tabla de desarrollo tiene que escribir su propio código para conectar los datos y ensamblar el DataSet, y al mismo tiempo transferirlo al informe. En estos casos, puede maximizar el rendimiento de los informes utilizando la conexión compartida y limitando el tamaño de la colección de registros.
Tipo de informe:
Crystal Report Designer puede incluir informes directamente en el proyecto o utilizar objetos de informe independientes.
- Informes fuertemente tipados:
Cuando agrega un archivo de informe a un proyecto, se convierte en un informe "fuertemente tipificado". En estos casos, tendrá el poder de crear el objeto de informe directamente, lo que reducirá parte del código y puede proporcionar cierto rendimiento.
- Informe sin escribir:
Los informes aquí no están incluidos directamente en el proyecto y, por lo tanto, se denominan informes "sin escribir". En este caso, hay que crear una instancia utilizando el objeto "ReportDocuemt" de Crystal Reports y utilizar el informe "manualmente".
Otras cosas a tener en cuenta
- Aunque Crystal Report Viewer tiene algunas características interesantes como zoom, navegación de páginas, etc. Pero no proporciona una función de impresión, debe llamar a la función de impresión del navegador.
- Si Crystal Report en VS.Net no está registrado, solo se puede usar 30 veces. Después de 30 veces, la función "guardar" ya no se puede usar. Para evitar esto, no debe registrar este producto aquí en http://www.crystaldecisions.com/ . (Este no parece ser el caso. Parece poder usarlo durante mucho tiempo sin registrarse, pero no se puede brindar soporte)
- La instalación predeterminada de Crystal Reports solo admite 5 usuarios. Para admitir más usuarios, debe comprar una licencia en http://www.crystaldecisions.com/ .
Vamos a sentirlo: usando un archivo Crystal Report listo para usar en Asp.net 1) Arrastre el control Crystal Report Viewer (Crystal Report Viewer) desde la barra de herramientas de WebForm a la página .aspx.
2) Abra la ventana de propiedades del control Crystal Report Viewer
3) Haga clic en el botón [...] para ver la propiedad "Enlace de datos" y aparecerá la ventana Enlace de datos.
4) Seleccione "Fuente del informe" en el área "Propiedades vinculables" a la izquierda.
5) Seleccione el botón de opción "Expresión de enlace personalizada" y especifique el nombre del archivo y la ruta del archivo .rpt en la ventana inferior a la derecha, por ejemplo: "C:\Archivos de programa\Microsoft Visual Studio.NET\ Crystal Reports\Samples\Reports\General Business\World Sales Report.rpt" y luego "Aceptar"
Nota: El archivo "World Sales Report.rpt" se crea durante la instalación de VS.Net. Si especificó otro directorio durante el proceso de instalación, será mejor que confirme la exactitud de la ruta en este momento.
Los pasos anteriores en realidad insertan el siguiente código en el archivo Asp.Net:
así como también:
id="CrystalReportViewer1"
runat="servidor" Ancho="350px" Alto="50px"
Fuente del informe=''>
Nota: El estilo generado por ReportSource en el código generado automáticamente en mi versión oficial de VS.Net no es así, es:
Fuente del informe=""
Esto es incorrecto y aparecerá un mensaje de error. Hay dos errores:
Debe modificarse manualmente de acuerdo con el formato introducido en este artículo. Esto puede considerarse como un error de VS.Net.
6) Llame al método DataBind en el método Page_Load. (El código es VB.Net)
Subpágina privada_carga (remitente ByVal como System.Object, ByVal y como System.EventArgs)
Enlace de datos()
Subtítulo final
7) Guarde y compile su página. Ahora tiene una página WebForm con Crystal Reports incrustado en su interior.
Nota: En el desarrollo real, habrá un error de que no se puede acceder al directorio inetsrv al principio. La solución es cambiar los atributos de seguridad del directorio para que el usuario tenga permisos de escritura. Flying Knife Descubrí que las soluciones proporcionadas por el sistema .Net son inútiles y puede deberse a que estoy usando el sistema operativo Windows.Net.
Uso de Crystal Reports en Asp.Net (Parte 2)
www.dotnet8.com 2002-9-6 DotNet Bar
El siguiente contenido es el código del programa:
Usando el modo Pull Usaremos los siguientes pasos para ejecutar Crystal Reports a través del modo Pull
1. Primero cree el archivo rpt y utilice la interfaz de diseño de Crystal Report para configurar algunas conexiones de datos necesarias.
2. Arrastre y suelte un control CrystalReportViewer en la página aspx, establezca sus propiedades para especificar el archivo .rpt que creamos en el paso anterior.
3. Llame al método DataBind en el código.
Crear archivo .rpt:
1) Haga clic derecho en "Explorador de soluciones" y seleccione "Agregar"--"Agregar nuevo elemento"-->"Crystal Report" en el menú emergente
2) Seleccione el botón de opción "Como informe en blanco" en "Crystal Report Library" y finalmente haga clic en "Aceptar".
3) El Crystal Report Designer aparecerá aquí.
4) Haga clic derecho en el "Área de detalles" en el informe y seleccione "Base de datos" -> "Agregar/eliminar base de datos..."
5) En la ventana emergente "Experto en bases de datos", expanda la opción "OLE DB(ADO)" y aparecerá otra ventana "OLE DB(ADO)".
6) En la ventana emergente "OLE DB (ADO)", seleccione "Proveedor Microsoft OLE DB para SQL Server" y luego "Siguiente".
7) Especifique el servidor de información al que conectarse: ASPCN (escriba el nombre de su máquina)
ID de usuario: sa
contraseña:
Base de datos: Pubs
8) Haga clic en "Siguiente" y finalmente haga clic en el botón "Finalizar".
9) En este momento puede ver la base de datos que seleccionamos en la ventana "Experto en bases de datos".
10) Expanda la base de datos "Pubs", expanda la "Tabla", seleccione la tabla "Tiendas" y agréguela al área "Tablas seleccionadas", haga clic en el botón "Aceptar".
11) Ahora, en el "Explorador de recursos de campo", la tabla que seleccionó y los campos de la tabla se mostrarán en el área "Campo de base de datos" a la izquierda.
12) Arrastre y suelte los campos obligatorios en el área "Detalles" del informe. Los nombres de los campos aparecerán automáticamente en el área "Encabezado". Si desea modificar el texto del encabezado, puede hacer clic derecho en el texto en el área "Encabezado", seleccionar la opción "Editar objeto de texto" y editarlo.
13) Guarde para que tengamos un archivo Crystal Report.
Crear el control CrystalReportViewer
14) Regrese al formulario web anterior, arrastre y suelte un control Crystal Report Viewer en la página.
15) Abra la ventana de propiedades del control Crystal Report Viewer, seleccione el área "DataBindings" y haga clic en [...]
16) En la "Ventana de enlace de datos de Crystal Report Viewer", seleccione "ReportSource" en las "Propiedades enlazables" a la derecha y seleccione la "Expresión de enlace personalizada" en la esquina inferior derecha para especificar la ruta del archivo .rpt.
17) En este punto puede ver una vista previa del archivo de informe compuesto por algunos datos virtuales del control Crystal Report Viewer.
Nota: En el ejemplo anterior, CrystalReportViewer puede llamar directamente a los datos reales en tiempo de diseño porque los datos se guardaron en este momento. En este caso, cuando los datos no se guardan en tiempo de diseño, no se pueden mostrar. En su lugar, se muestran algunos datos ficticios y los datos reales se seleccionan sólo en el momento de la ejecución.
Código detrás de la programación
18) Llame al método DataBind en el método Page_Load.
ejecuta tu programa
19) ¡Crea y ejecuta tu programa!
Ahora puede utilizar algunas funciones integradas de Crystal Reports directamente en la página web, como navegación de página, zoom, etc.
Uso de Crystal Reports en Asp.Net (Parte 2)
www.dotnet8.com 2002-9-6 DotNet
[HTML] Usamos los siguientes pasos para ejecutar Crystal Reports usando el modo Push:
1. Diseñar un conjunto de datos
2. Cree un archivo .rpt y asígnelo al DataSet creado en el paso anterior.
3. Arrastre y suelte un control CrystalReportViewer en la página aspx y conéctelo con el archivo rpt anterior.
4. Acceda a la base de datos en código y almacene los datos en el DataSet.
5. Llame al método DataBind.
Diseñar un conjunto de datos
1) Haga clic derecho en "Explorador de soluciones" y seleccione "Agregar" - "Agregar nuevo elemento" --> "Conjunto de datos"
2) Arrastre y suelte la tabla "Tiendas" (ubicada en la base de datos PUBS) desde "SQL Server" en "Server Explorer".
3) En este momento, habrá un diagrama estructural de la tabla Tiendas en el conjunto de datos.
- El archivo .xsd solo contiene un diagrama de estructura, pero no contiene datos.
Crear archivo .rpt:
4) Cree este archivo utilizando el método presentado anteriormente. La única diferencia es utilizar un conjunto de datos en lugar de los datos de conexión directa anteriores.
5) Después de crear el archivo .rpt, haga clic derecho en "Detalles" --> "Agregar/Eliminar base de datos"
6) En la ventana "Experto en bases de datos", expanda "Datos del proyecto" (reemplazando el OleDb anterior), expanda "Conjunto de datos ADO.Net" - "DataSet1" y seleccione la tabla "Almacenamiento".
7) Agregue la tabla "Tiendas" a las "Tablas seleccionadas" y haga clic en "Aceptar".
8) Utilice el método en modo PULL para crear un formulario web
Crear un control Visor de informes de Crystal
9) Cree un control Crystal Report Viewer y establezca sus propiedades. Esto es coherente con el modo PULL.
Código detrás del código:
10) Utilice la siguiente subfunción en el método Page_Load:
Código VB.Net:
SubenlaceInforme()
Atenuar myConnection como nuevo SqlClient.SqlConnection()
myConnection.ConnectionString= "servidor= (local)NetSDK;database=pubs;Trusted_Connection=yes"
Atenuar MyCommand como nuevo SqlClient.SqlCommand()
MiComando.Conexión = miConexión
MyCommand.CommandText = "Seleccionar * de Tiendas"
MyCommand.CommandType = CommandType.Texto
Atenuar MyDA como nuevo SqlClient.SqlDataAdapter()
MyDA.SelectCommand = MiComando
Atenuar myDS como nuevo conjunto de datos1()
'Este es el conjunto de datos que utilizamos en el modo de diseño.
MyDA.Fill(myDS, "Tiendas")
'Tienes que usar el mismo nombre que tu DataSet anterior.
Atenuar oRpt como nuevo CrystalReport1()
'Encuadernación del informe Crystal
oRpt.SetDataSource(miDS)
'Establecer el origen del informe de Crystal Report
CrystalReportViewer1.ReportSource = oRpt
Subtítulo final
Código C#:
BindReport vacío privado()
{
string strProvider = "Servidor=(local);DataBase=pubs;UID=sa;PWD=";
CrystalReport1 oCR = nuevo CrystalReport1();
Conjunto de datos1 ds = nuevo Conjunto de datos1();
SqlConnection MyConn = nueva SqlConnection(strProvider);
MiConn.Open();
string strSel = "Seleccionar * de Tiendas";
SqlDataAdapter MyAdapter = nuevo SqlDataAdapter(strSel,MyConn);
MyAdapter.Fill(ds,"tiendas");
oCR.SetDataSource(ds);
this.CrystalReportViewer1.ReportSource = oCR;
}
Nota: En el código anterior, debe tener en cuenta que oRpt es un archivo de informe "fuertemente escrito". Si necesita utilizar informes "sin tipo", debe utilizar el objeto ReportDocument y luego llamar al archivo de informe.
Ejecute su programa.
11) Ejecute su programa
Exportar archivos de informes a otros formatos
Puede exportar archivos de informes a los siguientes formatos:
1. PDF (formato de documento portátil)
1. 2. DOC (Documento MS Word)
2. 3. XLS (hoja de cálculo de MS Excel)
3. 4. HTML (lenguaje de marcado de hipertexto, compatible con 3.2 o 4.0)
4. 5. RTF (formato de texto enriquecido)
utiliza el modo Pull para exportar informes. Al exportar archivos creados usando el modo Pull, Crystal Reports abre con precisión los datos requeridos. El siguiente es el código para realizar la función de exportación.
Código C#:
Código VB.Net:
Subbotón privado1_Click (remitente ByVal como System.Object, ByVal y como System.EventArgs) maneja Button1.Click
Atenuar myReport como CrystalReport1 = Nuevo CrystalReport1()
'Nota: Aquí creamos una instancia de Crystal Report con tipo fuerte.
Dim DiskOpts As CrystalDecisions.Shared.DiskFileDestinationOptions = Nuevo CrystalDecisions.Shared.DiskFileDestinationOptions()
myReport.ExportOptions.ExportDestinationType = CrystalDecisions.[Shared].ExportDestinationType.DiskFile
' Esta opción también es necesaria al exportar a otros archivos
' Como Microsoft Exchange, MAPI, etc.
myReport.ExportOptions.ExportFormatType = CrystalDecisions.[Shared].ExportFormatType.PortableDocFormat
'Aquí lo exportamos a un archivo en formato .pdf, también puedes elegir otros tipos de archivos arriba
DiskOpts.DiskFileName = "c:Output.pdf"
'Si no especifica el directorio exacto, el archivo se guardará en el directorio [Windows]System32.
myReport.ExportOptions.DestinationOptions = DiskOpts
'Los archivos Crystal Report no contienen una propiedad FileName directa, por lo que no puede especificar directamente el nombre del archivo guardado
'Así que tienes que usar el objeto DiskFileDestinationOptions y establecer su propiedad DiskFileName
'Para la ruta que desea, finalmente especifique la propiedad DestinationsOptions de Crystal Reports como DiskFileDestinationOption arriba
miReporte.Exportar()
'El código anterior hará el trabajo de exportación.
Subtítulo final
Exportar Crystal Reports usando el modo PUSH Cuando el informe exportado se crea mediante el modo PUSH, el primer paso es establecer una conexión y ensamblar el conjunto de datos mediante programación y establecer la propiedad SetDataSource del informe. Los siguientes pasos son los mismos que en el modo Pull.
[/HTML]
Resumen del uso de Crystal Reports en el entorno .NET
. Crystal Reports es una excelente herramienta de desarrollo de informes Cuando estaba desarrollando un sistema de gestión general, todos los informes usaban Crystal Reports. Su simplicidad, facilidad de uso y potentes funciones me encantaron. Más ahora, los Crystal Reports se presentarán a todos mediante notas.
1. Cuando utilice el Crystal Report integrado, regístrese; de lo contrario, solo podrá utilizar
el Crystal Report 30 veces. Número de registro: 6707437608.
Contraseña:AAP5GKS0000GDE100DS
2. Utilice CrystalReportViewer para obtener una vista previa.
El control CrystalReportViewer le permite ver Crystal Report en la aplicación. La propiedad ReportSource establece qué informe ver. Una vez establecida esta propiedad, el informe se muestra en el visor. El origen del informe puede ser un ReportDocument, la ruta del archivo del informe o un informe fuertemente tipado.
1. Abra la "Caja de herramientas" y arrastre un CrystalReportViewer al formulario, al que llamaremos rptVew.
2. Utilice arrastrar y soltar para cambiar el tamaño del Visor de Windows Forms al tamaño deseado y moverlo a la posición deseada.
3. Cuando ejecute la aplicación, el informe se mostrará en el visor.
3. Cree un nuevo informe
1. Seleccione "Agregar" y haga clic en "Agregar nuevo elemento".
2. En el cuadro de diálogo "Agregar nuevo elemento", seleccione Crystal Report en el área "Plantilla", asigne al informe el nombre rptClient y haga clic en "Abrir".
3. En la galería de Crystal Report, seleccione una de las siguientes opciones:
· Usar Report Expert: lo guía a través del proceso de creación de informes y agrega sus selecciones a Crystal Report Designer.
· Como informe en blanco: abre Crystal Report Designer.
· A partir de un informe existente: crea un nuevo informe con el mismo diseño que otro informe que especifique.
Nota La biblioteca Crystal Report contiene expertos que pueden guiarlo a través de la creación de varios tipos específicos de informes. Es posible que desee utilizar un experto para crear su informe inicial y determinar qué método de construcción de informes se adapta a sus necesidades.
4. Haga clic en el botón Aceptar.
Si elige utilizar Report Expert, aparece el cuadro de diálogo Report Expert con el Explorador de datos. Seleccione los datos requeridos para cada carpeta, complete las operaciones en la interfaz de la pestaña Report Expert y luego haga clic en Finalizar para acceder a Crystal Report Designer y su informe.
4. ¿Necesita configurar la fuente de datos dinámicamente?
Crystal Reports se conecta a la base de datos a través de un controlador de base de datos. Cada controlador está escrito para manejar un tipo de base de datos específico o una tecnología de acceso a la base de datos.
Modelos de extracción y inserción Para proporcionar a los desarrolladores los métodos de acceso a datos más flexibles, el controlador de base de datos de Crystal Reports está diseñado para proporcionar modelos de acceso a datos tanto de extracción como de inserción.
tirar del modelo
En el modelo de extracción, el controlador se conectará a la base de datos y "extraerá" datos según sea necesario. Al utilizar este modelo, tanto la conexión a la base de datos como los comandos SQL ejecutados para obtener los datos son manejados por el propio Crystal Reports, sin necesidad de que los desarrolladores escriban código. Utilice el modelo pull si no necesita escribir ningún código especial en tiempo de ejecución.
modelo de empuje
Por el contrario, el modelo push requiere que los desarrolladores escriban código para conectarse a la base de datos, ejecuten comandos SQL para crear un conjunto de registros o un conjunto de datos que coincida con los campos del informe y pasen el objeto al informe. Este método le permite compartir la conexión en su aplicación y filtrar los datos antes de que Crystal Reports los reciba.
4. Cree informes a partir de conjuntos de datos ADO.NET y
cree objetos de conjuntos de datos a partir de la base de datos.
1. Cree un nuevo archivo de esquema en el proyecto:
a. En el explorador de soluciones, haga clic con el botón derecho en el nombre del proyecto, seleccione "Agregar" y. luego haga clic en "Agregar nuevo elemento".
b. En el área Categorías del cuadro de diálogo Agregar nuevo elemento, expanda la carpeta y luego seleccione Datos.
c. Seleccione Conjunto de datos en el área Plantilla.
d. Acepte el nombre predeterminado Dataset1.xsd.
Esto crea un nuevo archivo de esquema (Dataset1.xsd) que se utilizará más adelante para generar un conjunto de datos fuertemente tipado. El archivo de esquema aparecerá en ADO.NET Dataset Designer.
2. Especifique la ubicación de la base de datos:
a. En Server Explorer, haga clic con el botón derecho en Conexiones de datos y seleccione Agregar conexión.
b. En el cuadro de diálogo Propiedades del enlace de datos, haga clic en la pestaña Proveedor y luego seleccione un proveedor (como Proveedor Microsoft OLE DB para SQL Server).
c. Haga clic en la pestaña Conexión y especifique la ubicación de su base de datos. Ingrese su servidor y la información de inicio de sesión cuando sea necesario.
d. Haga clic en el botón Aceptar.
Su base de datos y sus tablas y campos ahora aparecen en Server Explorer en el nodo Conexiones de datos.
3. En el Explorador de soluciones, haga doble clic en Dataset1.xsd (si aún no es la vista activa).
Dataset1.xsd ahora debería aparecer en la pestaña Conjuntos de datos.
4. Para esquematizar el conjunto de datos, arrastre las tablas requeridas desde Server Explorer a la pestaña Conjuntos de datos de Dataset1.xsd.
5. Haga clic en Guardar Dataset1.xsd para guardar el archivo Dataset1.xsd.
6. En el menú Generar, haga clic en Generar para generar el objeto de conjunto de datos para el proyecto.
El objeto ADO.NET DataSet proporciona una descripción de los datos a partir de los cuales se pueden agregar tablas a un informe de Crystal. Utilice el Asistente de base de datos en Crystal Report Designer para agregar tablas desde objetos del conjunto de datos ADO.NET.
Llame al experto en bases de datos cuando utilice el experto en informes para crear un nuevo informe. O, para acceder al Asistente de base de datos desde un informe que se creó con ADO.NET, haga clic con el botón derecho en Diseñador de informes, seleccione Bases de datos y luego haga clic en Agregar o quitar base de datos.
Conecte un informe a un objeto de conjunto de datos ADO.NET
1. En Database Expert, expanda la carpeta Datos del proyecto.
2. Expanda la carpeta "Conjuntos de datos ADO.NET".
3. Seleccione el objeto del conjunto de datos requerido.
Por ejemplo, si está utilizando un objeto de conjunto de datos generado a partir del archivo de esquema "Dataset1.xsd" del proyecto "WindowsApplication1", debe seleccionar "WindowsApplication1.Dataset1".
4. Seleccione las tablas para agregar al informe, tal como lo haría con otras fuentes de datos.
5. Código para fuentes de datos que cambian dinámicamente
Dim dsdataSet As New DataSet()
Dim oRpt As New rptClient() 'El informe establecido rptClient
requiere que los lectores completen el conjunto de datos dsdataSet por sí mismos
'Utilice el modelo de objetos "motor de informes" para pasar el conjunto de datos completo al informe
oRpt. SetDataSource(dsdataSet. Tables(0))
'Vincula el objeto de informe con datos al Visor de Windows Forms, rptVew (control CrystalReportViewer)
rptVew.ReportSource = oRpt
Tenga en cuenta que el método FillDataSet puede conectarse a la base de datos especificada, extraer los datos y luego desconectar la base de datos. Si desea agregar varias tablas de la base de datos al informe, utilice la instrucción SQL JOIN para unir estas tablas y luego especifique una tabla de resultados en el método FillDataSet
6. Cree un informe maestro-detalle
En el informe, hay muchos informes; Estructura de la tabla de detalles maestros, como el pedido y los detalles del producto del pedido, el pedido es un registro en una tabla y las entradas son registros múltiples en otra tabla. Las dos tablas están relacionadas a través de un campo. Este tipo de informe puede utilizar su implementación de función de agrupación. :
1. Cree un nuevo proyecto
2. Agregue un control CrystalReportViewer a FORM1
3. Conéctese a la base de datos Northwind en SQL SERVER 2000 en el administrador de recursos del servicio
4. Agregue un conjunto de datos Dataset1 y agregue los pedidos y los detalles del pedido se agregan a los datos colocar.
5. Agregue un Crystal Report, use Report Expert, seleccione "Conjunto de datos ADO.NET" en los datos del proyecto, inserte las tablas Pedidos y Detalles del pedido, "Enlace" es el enlace al campo asociado, seleccione el campo que se mostrará en "Campo" Para los campos de la tabla principal y la tabla de detalles, la base de selección del grupo en el grupo es el campo OrdersID de la tabla Pedidos, total, gráfico, selección (se puede filtrar), estilo (se puede establecer el título del informe) y se puede ser establecido por usted mismo. Después de la configuración, haga clic en Finalizar.
6. Ajuste la posición, el ancho, etc. de los campos que se mostrarán en el diseñador de informes.
7. Agregue código en la ventana.
Private Sub Form1_Load(ByVal remitente como System.Object, ByVal e como System.EventArgs) maneja MyBase.Load
Dim oRpt como nuevo CrystalReport1()
Dim dsdataSet como nuevo conjunto de datos1()
Atenuar CN como nuevo Data.SqlClient.SqlConnection("fuente de datos=PMSERVER;catálogo inicial=Northwind;id de usuario=sa;contraseña=sa")
CN.Open()
Atenuar daOrders como nuevo Data.SqlClient.SqlDataAdapter("seleccionar * de pedidos", CN)
daOrders.Fill(dsdataSet, "pedidos")
Atenuar daDetails como nuevo Data.SqlClient.SqlDataAdapter("seleccione * de [Detalles del pedido]", CN)
daDetails.Fill(dsdataSet, "Detalles del pedido")
'Utilice el modelo de objetos "Report Engine" para pasar el conjunto de datos completos al informe
oRpt.SetDataSource(dsdataSet)
CrystalReportViewer1.ReportSource = oRpt
End Sub
8. Ejecute el programa
7. Utilice un programa para cambiar el texto en el informe.
El código es el siguiente:
Dim GetTextObject As TextObject
'Obtiene el ReportObject por nombre, lo convierte en TextObject y devuelve este objeto.
GetTextObject = orpt.ReportDefinition.ReportObjects.Item("text13")
GetTextObject.Text = "Sistema XXXX"
Resumen: Crystal Reports tiene funciones muy poderosas. También puede exportar archivos WORD, EXCEL, RTF y otros, y también puede generar gráficos complejos y hermosos. Es una herramienta poderosa para el desarrollo de informes WEB y WINDOWS.
(Parte de la información de este artículo proviene de MSDN)
Autor: Li Honggen
CORREO ELECTRÓNICO: [email protected]
Tengo las siguientes ideas:
1. Obtener datos relacionados con la base de datos SQL mediante una consulta de conexión;
2. Colóquelo en DataSet;
3. Llame a Crystal Reports (plantilla lineal o de columnas) para generar informes;
4. Salida y generación de documentos EXCEL.
Por favor, díganme, héroes, ¿cómo implementar las ideas anteriores? (Sería mejor si hubiera ejemplos)
¡Muchas gracias!
-------------------------------------------------- -------------
1. Agregue un nuevo conjunto de datos de proyecto a su proyecto, conéctese a la base de datos y agregue las tablas de datos requeridas o los procedimientos almacenados.
Arrastra a este conjunto de datos y compila el conjunto de datos.
2. Utilice Crystal Report que viene con Vs.net para crear un informe con DataSet como fuente de datos.
3. Inserte datos en este informe en el programa.
4.Crystal Report tiene la opción de generar resultados en Excel, lo que también se puede lograr a través de un programa.
Conexión tenue como SqlConnection
Dim da como SqlDataAdapter
Dim strSQL como cadena
conexión = Nueva conexión Sql()
conn.ConnectionString = "ID de usuario=sa; PWD=1234; Fuente de datos=xxxx; Catálogo inicial =xxxxx"
conexión.Abrir()
strSQL = "Seleccionar * de NombreTabla"
da = Nuevo SqlDataAdapter(strSQL, conexión)
Atenuar ds como nuevo conjunto de datos()
da.Fill(ds, "NombreTabla")
Atenuar RptDoc como nuevo nombre de informe()
RptDoc.SetDataSource(ds)
'Especifique datos para RptDoc,
CrystalView1.ReportSource = RptDoc 'Especificar datos para CrystalView
CrystalView1.DataBind()
conexión.Cerrar()
5. Si necesita mostrar campos asociados con varias tablas, lo mejor es crear un conjunto de datos mediante un procedimiento almacenado.
-------------------------------------------------- -------------
Consulte el siguiente código:
cadena strconn=cadena de conexión;
SqlConnection myconn=nueva SqlConnection(strconn);
string strcmd="@"sentencia de selección ";
SqlCommand mycmd=new SqlCommand(strcmd,myconn);
SqlDataAdapter myda=new SqlDataAdapter(strcmd,myconn);
Conjunto de datos myds=nuevo conjunto de datos();
myconn.Open();
myda.Fill(myds,"nombre del informe");
Nombre del informe myrpt = nuevo nombre del informe();
myrpt.SetDataSource(myds);
this.CrystalReportViewer1.ReportSource=myrpt;
Exportar a EXCEL:
myrpt.ExportOptions.ExportDestinationType=CrystalDecisions.Shared.ExportDestinationType.DiskFile;
myrpt.ExportOptions.ExportFormatType=CrystalDecisions.Shared.ExportFormatType.Excel;
CrystalDecisions.Shared.DiskFileDestinationOptions opt=new CrystalDecisions.Shared.DiskFileDestinationOptions();
opt.DiskFileName=@"Nombre de archivo";
myrpt.ExportOptions.DestinationOptions =opt;
myrpt.Export();
descarga de ayuda en chino para Crystal Reports 9:
http://www.ourfly.com/download/download.aspx
http://www.enwell.net/soft/
http://www.fast8.com/news.asp
Crystal Reports para Visual Studio .NET
PictureObject ven
Clase PictureObject¦ Propiedades de instancia pública del espacio de nombres CrystalDecisions.CrystalReports.Engine
Borde (heredado de ReportObject) Borde. Obtenga el objeto Borde.
Altura (heredada de ReportObject) Int32. Obtiene o establece la altura del objeto en fracciones.
Tipo (Heredado de ReportObject) ReportObjectKind. Obtiene el tipo de objeto de informe.
Izquierda (heredada de ReportObject) Int32. Obtiene o establece la posición de la esquina superior izquierda del objeto en fracciones.
Nombre (heredado de ReportObject) Cadena. Obtenga el nombre del objeto.
ObjectFormat (heredado de ReportObject) ObjectFormat. Obtenga el objeto ObjectFormat.
Arriba (Heredado de ReportObject) Int32. Obtiene o establece la posición superior del objeto en fracciones.
Ancho (heredado de ReportObject) Int32. Obtiene o establece el ancho del objeto en fracciones.
Ver
PictureObjectImports
CrystalDecisions.CrystalReports.Engine
Dim picObject como PictureObject
picObject = oRpt.ReportDefinition.ReportObjects.Item("imagen1")
De: http://expert.csdn.net/Expert/topic/1896/1896874.xml?temp=.78677
Cuando utiliza Crystal Reports basado en un formulario web, si simplemente sigue el método "A Dao" en Internet, Definitivamente se le preguntará: Usted: Error al iniciar sesión.
Respecto a este problema, pasé un día entero estudiando el archivo de ayuda de Crystal Reports y finalmente encontré una solución.
No soy una persona conservadora. Creo que hay muchos internautas que están gastando energía en investigar este tema como yo. No quiero que todos gasten energía en vano como yo.
Aquí hay algunos pasos que tomé para implementar esta solución. No te preocupes, te será de gran ayuda si lo lees despacio.
Paso 1: Mire el archivo de muestra. Crystal Reports viene con un archivo de muestra y puede acceder a la base de datos (sin contraseña). Primero ejecuté el archivo de muestra (basado en webform y winform) y el resultado mostró el informe correcto, como en el ejemplo del "cuchillo volador".
Entonces, creé un archivo de informe y un archivo .aspx yo mismo, ¡pero el resultado mostró que el inicio de sesión falló! Pero cambié el archivo de informe al archivo de informe de muestra y no se produjeron más errores.
¿Cuál es el problema? ¿Podría ser que el archivo de formato de informe tenga configuración de permisos de inicio de sesión? Mediante el seguimiento y la depuración, comparé y analicé mi archivo de informe y el archivo de informe de muestra y no encontré ninguna diferencia. Parece que el problema no está en el archivo del informe.
¿Es un problema de base de datos? Cuando creé un acceso, ¡falló el inicio de sesión!
¿No es un problema de la base de datos (mi propia base de datos tiene acceso sin contraseña y lo mismo ocurre con la base de datos de la ayuda)? ¿No es un problema con el archivo de formato del informe (analicé cuidadosamente que los códigos originales de los dos son iguales)?
Entonces, ¿dónde ocurre el problema? ¡No puedo entenderlo!
Paso 2: busque el archivo de ayuda. Entonces pedí ayuda nuevamente. Busqué con la ayuda de Crystal Reports y finalmente encontré las palabras "Acceder a la base de datos segura [C#]" y encontré el siguiente párrafo:
El proceso para acceder a una base de datos segura a través de Crystal Reports para Visual Studio .NET difiere entre Web Forms y Windows Forms. En Windows Forms, un cuadro de diálogo solicita automáticamente al usuario un nombre de usuario y contraseña (la prueba se realiza correctamente). En Web Forms, es necesario diseñar un formulario para obtener esta información del usuario. En ambos casos, se puede utilizar código para especificar nombres de usuario y contraseñas, proporcionando el mismo nivel de seguridad para todos los usuarios de la aplicación.
Entonces usé la misma base de datos (primero usando la base de datos de acceso en el ejemplo de ayuda y luego usando la base de datos de acceso que creé). Se descubre que para el mismo archivo de informe, winform puede mostrar éxito, ¡pero el formulario web aún muestra un error de inicio de sesión! ¡Así que entiendo lo que significa!
Parece que el problema radica en la configuración de permisos.
Paso 3: ¡Busca ayuda y finalmente triunfa!
En la ayuda, encontré las palabras "Establecer parámetros de inicio de sesión de la base de datos", que proporcionaron información que luego encontré muy útil:
El siguiente ejemplo muestra cómo pasar parámetros de inicio de sesión a una tabla de informes. Este ejemplo utiliza una conexión a una base de datos segura de SQL Server.
Inicie un nuevo proyecto y agregue un botón y cuatro controles TextBox al formulario.
Asigne un nombre a los controles del cuadro de texto: serverNameTxt, dbNameTxt, userNameTxt y contraseñaTxt.
Haga doble clic en el control Botón para especificar el código para el evento Click. Inserte el código apropiado según el idioma utilizado.
[DO#]
// Declarar las variables requeridas.
TableLogOnInfo logOnInfo = nuevo TableLogOnInfo ();
int i = 0;
// Recorre cada tabla del informe.
para (i=0;i == Informe.Base de datos.Tables.Count - 1;i++)
{
//Establece la información de conexión de la tabla actual.
logOnInfo.ConnectionInfo.ServerName = serverNameTxt.Text;
logOnInfo.ConnectionInfo.DatabaseName = dbNameTxt.Text;
logOnInfo.ConnectionInfo.UserID = nombredeusuarioTxt.Texto;
logOnInfo.ConnectionInfo.Password = contraseñaTxt.Text;
Informe.Base de datos.Tablas [i].ApplyLogOnInfo (logOnInfo);
}
Tenga en cuenta que las bases de datos de PC protegidas con contraseña como Microsoft Access y Paradox también usan este método, pero LogonInfo.ServerName y LogonInfo.databasename debe dejarse vacío.
Así que lo intenté así y recibí un mensaje de error: no se encontraron TablelogonInfo e informe.
Más tarde descubrí que TableLogonInfo es miembro de CrystalDecisions. Shared Namespace. Entonces agregué una cita:
usando CrystalDecisions.shared;
Esta vez el problema ocurrió en el informe.
¿Informe? ¿Qué es esto?
[¡En serio! ¡Este problema me ha preocupado durante mucho tiempo! ¡He estado buscando lo que es el informe! ¡La compañía de informes de Waterscape también es realmente útil y no escribe en detalle! ¡Es hora de pelear! ! ! ]
Al final, finalmente descubrí que el informe es solo un objeto definido por el usuario, no un objeto del sistema en sí.
Cuando estaba confundido, de repente pensé, ¿por qué no echar un vistazo a la base de datos detrás del informe, ¿qué es finalmente el problema?
ReportDocument Orpt = new ReportDocument ();
El informe es miembro del documentCrystalDecisions.crystalReports.Engine Class.
Modificar el código: y agregar una referencia
Uso de CrystalDecisions.shared; // Responsable de interpretar la clase TablelogonInfo
Uso de CrystalDecisions.crystalReports .Engine; // Responsable de interpretar la clase ReportDocument Void Page_Load (Object Sender, System.Eventargs E)
{
TablelogonInfo LogonInfo = new TableLogonInfo ();
// Un informe del objeto del Documento Report debe declararse de antemano y el informe de datos debe cargarse al mismo tiempo.
ReportDocument Orpt = new ReportDocument ();
Orpt.Load ("C: \ inetpub \ wwwroot \ exer \ Pagelet \ Crystal \ cr1.rpt"); // Cambiar a su propia ubicación correcta
// Crear información de seguridad
// Las bases de datos de PC protegidas con contraseña como Microsoft Access y Paradox también usan este método, pero LogonInfo.ServerName // y LogonInfo.databasename debe dejarse vacío
LogonInfo.ConnectionInfo.ServerName = "www";
LogonInfo.ConnectionInfo.databasename = "Archives";
LogonInfo.ConnectionInfo.userid = "SA";
LogonInfo.ConnectionInfo.password = "123456
"
;
CrystalReportViewer1.ReportSource = Orpt;
}
¡El archivo de informe finalmente aparece!
¡Vaya, estaba tan feliz que no pude evitar levantarme y estirarse!
Paso 4: La versión final completa del código. Hay dos desventajas:
(1) El archivo de formato de informe de datos utiliza una ruta absoluta
(2) Una vez que se establecen los permisos de acceso a la base de datos, no se pueden modificar en la versión final. Introduce dos cosas mejores:
(1), servidor. Función MAPPATH
(2) Leer web.config (este ejemplo también le indica cómo operar el archivo de configuración web.config)
La modificación final es la siguiente: (código completo) La base de datos es SQL Server2000
Uso de CrystalDecisions.shared; // Responsable de interpretar la clase TablelogonInfo
Uso de CrystalDecisions.crystalReports .Engine; // Responsable de interpretar la clase ReportDocument
Void Page_Load (Object Sender, System.Eventargs E)
{
TablelogonInfo LogonInfo = new TableLogonInfo ();
// Un informe del objeto del Documento Report debe declararse de antemano y el informe de datos debe cargarse al mismo tiempo.
ReportDocument Orpt = new ReportDocument ();
// Obtener la ruta real del archivo .rpt
Cadena ruta1, ruta2;
path1 = server.mappath (" \ Exer \ Pagelet ");
Path2 = Path1+" \ Crystal \ CR1.rpt ";
//orpt.load("C:\inetpub\WwwWrooT\\ ° óxico.
Orpt.Load
(Path2);
Cadena A, B, C, D;
// Get ServerName
a = System.Configuration .ConfigurationSettings .AppSettings ["ServerName"];
// Obtener databasename
b = System.Configuration .Configurationsettings .Appsettings ["Base de datos"];
// Obtener ID de usuario
c = System.Configuration .ConfigurationSettings .Appsettings ["UserId"];
// Obtener contraseña
d = System.Configuration .Configurationsettings .Appsettings ["pasar"];
// Establecer parámetros LogonInfo
LogonInfo.ConnectionInfo.ServerName = a;
LogonInfo.ConnectionInfo.databasename = b;
LogonInfo.ConnectionInfo.userid = c;
=
D
;
CrystalReportViewer1.ReportSource = Orpt;
}
Descripción de todo el proceso de demostración:
1. En el Explorador de soluciones, donde necesita almacenar el archivo de informe, agregue un nuevo elemento: informe CrystalReport, llamado CR1.RPT
2. Al seleccionar la fuente de datos en el "experto en informes" que aparece posteriormente, asegúrese de seleccionar OLE DB y luego seleccione el motor de conducción correspondiente de acuerdo con los requisitos de su base de datos:
SQL Server: proveedor de Microsoft Ole DB para SQL Server
Acceso: Microsoft Jet.4.0
3. Ingrese la conexión de base de datos correcta.
4. Cree un informe de datos y guarde el archivo CR1.RPT
5. Abra WebForm1.aspx. Agregar CrystalReportViewer Control: Nombre: CrystalReportViewer1
6. Agregue el código anterior en el evento Page_Load en WebForm1.aspx.cs:
(Nota: ¡No olvides citar!)
************************************************** * ***
A continuación se muestran los detalles relacionados con este contenido en Web.Config
*** Tenga en cuenta que
// Obtener contraseña
d = System.Configuration .Configurationsettings .Appsettings ["pasar"]; el "pasar" en las appSettings ["pasar"] aquí sigue siendo consistente. Por supuesto, puede elegir cualquier nombre que desee, pero debe ser consistente.
http://www.cnblogs.com/zhangyd1080/archive/2006/11/15/561770.html