Uso de SQL Server Reporting Services

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:



Tenga en cuenta que este se convertirá en su origen de datos para el informe. El origen de datos tendrá el nombre de la XSD seguido del nombre de la fuente, en este caso se leerá CustomerOrders_CutomerOrders. Bien, ahora es el momento de crear el informe.

Volver al Explorador de soluciones, haga clic derecho y seleccionar Agregar nuevo elemento. Vaya a la zona de notificación y recoger el Asistente para informes. Tenga en cuenta la extensión del archivo debe terminar en RDLC. Si ha utilizado Reporting Services antes, usted sabrá que los informes suelen terminar en el RDL. Sin embargo, los informes de modo cliente solo tiene una sintaxis ligeramente diferente a ellos, por lo tanto la extensión RDLC para diferenciar los dos. Mientras que usted puede modificar un RDL para convertirse en un RDLC y viceversa, tiene que hacerlo por la piratería el código XML detrás del informe.

Tenga en cuenta que también puede elegir sólo informe, pero luego tendrá que todo lo que la configuración manualmente. Para este ejemplo sencillo, sin embargo, sólo tendremos que utilizar el Asistente para informes.



Déle a su informe un nombre significativo y haga clic en Agregar. El asistente de informes a continuación, muestra una pantalla de bienvenida si usted nunca lo ha ejecutado antes, simplemente haga clic en Siguiente.

Ahora tenemos que elegir el origen de datos. En este ejemplo, desea que la rama CustomerOrders, así que seleccione y haga clic en Siguiente


La siguiente pantalla le pregunta si queremos un informe tabular o de matriz. Seleccione el uno para usted, en mi ejemplo, me tomó forma de tabla y hace clic en Siguiente. La siguiente pantalla le pregunta cómo desea mostrar los datos. Para mi ejemplo, he optado por el grupo por el nombre de la empresa a los clientes y el nombre del contacto, a continuación, los datos del pedido entró en el área de detalles. Llena de acuerdo con su informe y haga clic en Siguiente.


La siguiente pantalla se pregunta cómo queremos que las cosas establecidas. Esto afecta a la apariencia del informe. Para mi ejemplo, me acaba de tomar el valor por defecto y hacer clic en siguiente, sin embargo usted es libre de jugar con esto para experimentar con las diferentes miradas y siente sus informes puedan tener.

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: