En primer lugar, se necesita un archivo de esquema XSD para crear el informe. Una vez que haya el XSD podrás pasar a la segunda etapa, la creación del informe. En tercer lugar tendrá que colocar un control de visor de informes en el formulario de ventanas, la forma de WPF, ASP.NET o una página. Por último tendrá que escribir código que genera un conjunto de datos ADO.NET, el informe de las cargas en el control del visor de informes, a continuación, une a todos. Veamos en este paso a paso.
Normalmente cuando se crea un informe que se conecte a una base de datos, entonces la base que fuera de algún objeto, como una consulta, vista o procedimiento almacenado. El informe se sube a un servidor de Reporting Services, que se encarga de acoger a ella, mostrarla, y la generación de los datos para ello. Con el modo de cliente no tiene un servidor disponible, así que tenemos que crear en lugar de un sustituto. Ahí es donde nuestro archivo XSD entra en juego
Haga clic derecho en el Explorador de soluciones y "Añadir un elemento nuevo", y en la lista de cosas selecciona "XML Schema". Nombre que algo apropiado, dejando que la extensión por defecto se XSD. Para este ejemplo voy a estar recibiendo datos de los clientes para, por lo que he dado el nombre CustomerOrders.xsd. Visual Studio pensar en ello a continuación, agregue al proyecto, e incluso amablemente abierto para ti. Yo no sé ustedes, pero la mano de escribir de esquema XML no es mi idea de diversión, por lo que debe glace en ello, vaya "eso es bueno" y luego ciérrelo.
Ahora haga clic derecho en el archivo XSD en el Explorador de soluciones, y elegir "Abrir con ....". En el cuadro de diálogo que aparece, seleccione "Dataset Editor". Cuando lo haga, Visual Studio presenta un gran mensaje de advertencia miedo lo que le permite saber que usted podría perder el contenido, y que esto será para siempre un archivo XSD conjunto de datos. No tenemos nada en el archivo, de modo que estamos tranquilos con esto, simplemente haga clic en Aceptar.
Ahora se presentará con un área de gran superficie. En el centro le dice a arrastrar elementos desde el Explorador de servidores o botón derecho del ratón. Si usted tiene una tabla, vista o procedimiento almacenado que está libre de arrastre en el, pero la mayoría de las veces que usted desea basar esta fuera de una consulta SQL. Haga clic derecho sobre la superficie, y seleccione Agregar ...., Adaptador de la tabla en el menú. La primera pantalla le pide la conexión de base de datos. Esta es la única vez que usted realmente necesita una conexión, en este ejemplo estoy usando la base de datos viejo Neptuno. Señalé en Neptuno y hace clic en siguiente.

A continuación se preguntaran cómo vamos a acceder a los datos. Puesto que tenemos una instrucción SQL sólo debes elegir la opción predeterminada de "Usar instrucciones SQL" y haga clic en Siguiente.

Ahora tome su instrucción SQL y pegarlo en, y haga clic en Siguiente.

OK, click Finish to wrap up the addition of the XSD. By default the adapter has a generic name, we should give ours something more meaningful. Click in the top bar, then enter a new name. Since my example report is for customer order data, I’ll name it CustomerOrders. I then went to the bottom bar and renamed the TableAdapter1 to CustomerOrderTableAdapter. You should now see something like:




Asimismo, la siguiente pantalla es también una mirada y sentir una, preguntando qué colorantes queremos aplicar. Elige el que te hace feliz y haga clic en siguiente. Siempre se puede cambiar más adelante, muchas veces tomo el genérico (que no añade colores), entonces arreglar después.
La pantalla final es terminar. Déle a su informe un nombre significativo y haga clic en Finalizar.

OK, que tiene un informe, ahora se necesita un contenedor. Abra la interfaz de usuario que desee colocar el control de visor de informes sobre. En mi ejemplo, me fui con una muy sencilla aplicación de Windows Forms.
En mi caja de herramientas, que navega a la sección de Informes, donde sólo se encuentra uno de control, el control MicrosoftReportViewer. (Tenga en cuenta que estoy utilizando Visual Studio 2008 SP1, si usted está en una versión anterior de su nombre puede variar ligeramente). Agárralo y colóquelo en la superficie de diseño.
También he añadido un control Button al formulario para poner en marcha el proceso de presentación del informe.
Ahora es el momento para el último paso, añadir algo de código. En este ejemplo he utilizado un formulario Windows Forms. Al abrirla, lo primero que encontramos en la zona de carga del formulario es:
this.reportViewer1.RefreshReport();
(Tenga en cuenta que dejé mi control del visor de informes denominado reportViewer1.) Eliminar ella, tendremos que volver a cargar en otro lugar.
Ahora tenemos que añadir algunas declaraciones using al principio de nuestra clase.
Add these to the standard list above
using System.Data.Sql;
using System.Data.SqlClient;
using Microsoft.Reporting.WinForms;
Los dos primeros se utilizarán para acceder a nuestra base de datos Northwind, puede que tenga que usar la biblioteca diferente si se va a otra base de datos. También he incluido una referencia a la biblioteca Reporting.WinForms por lo que puede manipular el informe mediante programación.
Ahora vamos a ir al código para el evento clic de botón. En primer lugar, debemos restablecer el visor de informes en caso de que habíamos estado utilizando para albergar otro informe.
Reset in case report viewer was holding another reportViewer1
reportViewer1.Reset();
Lo siguiente que necesitamos para configurar el visor de informes en modo local. Este le dice que le suministrará el nombre del informe de un archivo local, y vinculante el informe a un origen de datos ADO.NET locales.
Set the processing mode for the ReportViewer to Local
reportViewer1.ProcessingMode = ProcessingMode.Local;
Nuestro tercer paso es crear una variable de informe local, y la puso en referencia al informe local del espectador informe. Esto hará que sea más fácil trabajar con. A continuación, vamos a establecer la ubicación del informe que desea utilizar.
LocalReport localReport = reportViewer1.LocalReport;
localReport.ReportPath = @"D:\Presentations\SQL Server\SSRS RDLC\SSRS_RDLC\Report2.rdlc";
Ahora tenemos que crear un conjunto de datos ADO.Net, y rellenarla. He implementado la mayor parte de esa funcionalidad en un método llamado GetCustomerOrders, que voy a añadir en la parte inferior de estas instrucciones. Es el código muy sencillo.
DataSet dataset = new DataSet("Northwind");
Get the sales order data
GetCustomerOrders(ref dataset);
En esta etapa lo hemos dicho en nuestro informe, y han creado el conjunto de datos. Ahora tenemos que crear un origen de datos para el informe en sí. Vamos a utilizar el objeto ReportDataSource. Para el nombre, vamos a utilizar el mismo nombre que el esquema XSD, CustomerOrders_CustomerOrders. Entonces, por el valor que le dará la tabla del conjunto de datos que hemos creado en el código. Es posible que un informe que varios conjuntos de datos, en el informe que daría a cada uno su nombre propio (basado en el XSD), entonces aquí nos obligar a la tabla de conjunto de datos para el nombre que había utilizado en el informe. Una vez hecho esto que a continuación se añade el nuevo ReportDataSource a los informes locales colección DataSources. Por último, vamos a referesh el visor de informes para que se genere el informe.
// Create a report data source for the sales order data
ReportDataSource dsCustomers = new ReportDataSource();
dsCustomers.Name = "Customers_Customers";
dsCustomers.Value = dataset.Tables["Customers"];
localReport.DataSources.Add(dsCustomers);
Refresh the report
reportViewer1.RefreshReport();
Puede descargar una copia de estas instrucciones, junto con el proyecto de ejemplo completo, incluyendo código y los informes, en el http://code.msdn.microsoft.com/SqlServerRSClient Microsoft Código sitio de la galería. Según lo prometido, a continuación se muestra una copia del GetCustomerOrders de rutina, para su referencia.
private void GetCustomerOrders(ref DataSet dsNorthwind)
{
string sqlCustomerOrders = "SELECT c.[CustomerID]"
+ " ,c.[CompanyName]"
+ " ,c.[ContactName]"
+ " ,c.[ContactTitle]"
+ " ,c.[Address]"
+ " ,c.[City]"
+ " ,c.[Region]"
+ " ,c.[PostalCode]"
+ " ,c.[Country]"
+ " ,c.[Phone]"
+ " ,c.[Fax]"
+ " ,o.[OrderID]"
+ " ,o.[CustomerID]"
+ " ,o.[EmployeeID]"
+ " ,o.[OrderDate]"
+ " ,o.[RequiredDate]"
+ " ,o.[ShippedDate]"
+ " ,o.[ShipVia]"
+ " ,o.[Freight]"
+ " ,o.[ShipName]"
+ " ,o.[ShipAddress]"
+ " ,o.[ShipCity]"
+ " ,o.[ShipRegion]"
+ " ,o.[ShipPostalCode]"
+ " ,o.[ShipCountry]"
+ " FROM [Northwind].[dbo].[Customers] c"
+ " join [Northwind].[dbo].[Orders] o on c.CustomerID = o.CustomerID";
SqlConnection connection = new
SqlConnection("Data Source=(local); " +
"Initial Catalog=Northwind; " +
"Integrated Security=SSPI");
SqlCommand command =
new SqlCommand(sqlCustomerOrders, connection);
SqlDataAdapter customerOrdersAdapter = new
SqlDataAdapter(command);
customerOrdersAdapter.Fill(dsNorthwind, "CustomerOrders");
}
No hay comentarios:
Publicar un comentario