June 2008 - Artículos
Hace no mucho, me preguntaban como instalar un servidor de informes, con la versión gratuita de SQL Server Express. Pues muy bien, para hacer esta tarea, tan sólo tenemos que descargarnos el paquete SQL Server 2005 Express Edition with Advanced Services e instalarlo. Este tiene las siguientes características:
- Administrar fácilmente SQL Server Express con una nueva herramienta gráfica de administración fácil de usar: SQL Server 2005 Management Studio Express (SSMSE).
- Realizar consultas de texto en datos simples basados en caracteres contenidos en tablas de SQL Server. Las consultas de texto pueden contener palabras y frases o formas diversas de una palabra o frase.
- Ejecutar informes de SQL Server Reporting Services de datos relacionales locales.
Las diferencias entre esta versión y las otras las podéis ver en esta tabla:
| Feature |
Report Controls |
Express |
Workgroup |
Standard |
Enterprise |
| Web Service |
No |
Yes |
Yes |
Yes |
Yes |
| Report Builder |
No |
No |
Yes |
Yes |
Yes |
| Report Data Sources |
.NET data sets |
Local SQL only |
Local SQL only |
Extensible |
Extensible |
| Number of export formats |
Excel, PDF, Image (RGDI, Print), DHTML |
Excel, PDF, Image (RGDI, Print), DHTML |
Excel, PDF, Image (RGDI, Print), DHTML |
Extensible |
Extensible |
| SQL Server Agent |
No |
No |
Yes |
Yes |
Yes |
| Maximum CPUs |
Application specific |
1 |
2 |
4 |
No limit |
| Maximum RAM |
Application specific |
1 GB |
3 GB |
OS Max |
OS Max |
| Subscriptions |
No |
No |
No |
Yes |
Yes |
| Data-driven subscriptions |
No |
No |
No |
No |
Yes |
| SharePoint Integration |
No |
No |
No |
Yes |
Yes |
| Caching |
No |
No |
No |
Yes |
Yes |
| History |
No |
No |
No |
Yes |
Yes |
| Delivery |
No |
No |
No |
Yes |
Yes |
Para obtener más información, podéis ver estos dos enlaces:
http://www.microsoft.com/technet/prodtechnol/sql/2005/usingssrswithsqlexpress.mspx
http://msdn.microsoft.com/es-es/library/ms365166.aspx
Espero que os sea de utilidad.
Un Saludo
María Garaña Corces, ha sido nombrada nueva presidenta de Microsoft España. María se encargará ahora de MS España mientras que Rosa García, presidirá la vicepresidencia de MS Europa.
Más información: http://www.elmundo.es/navegante/2008/06/11/tecnologia/1213178595.html
Un Saludo
Desde que abrí mi primer post sobre Reporting Services (hace ya un tiempo), he tenido muchos comentarios. Muchos me han ayudado a investigar cosas que no había usado nunca de Reporting y otros al escribirme como lo habían hecho, me ayudaron a saber algo más acerca de esta tecnología.
Algunas dudas, han sido como trabajar con informes sin tener que utilizar un servidor de informes, como pasarle a un informe de este tipo parámetros o como trabajar con el dataset de este.
El otro día (bueno, ya hace unos cuantos) estuve con el amigo Alberto viendo algunos problemillas que tenía con Reporting y después de ver entre los dos como tratar con este tipo de informes, me decidí a postearlo para la comunidad. Aunque desde que lo hicimos, ha pasado un poco de tiempo :P.
Lo primero, creamos un nuevo proyecto de tipo Windows Forms, luego agregamos un control ReportViewer(1). Este lo podemos encontrar en la caja de herramientas en la parte de datos.
Luego, ajustamos el control a nuestro gusto o en nuestra interfaz, y en la pestaña superior derecha, podemos seleccionar crear un nuevo informe(2).
Al crear un informe de esta forma, nos crea un archivo dentro del a aplicación con extensión .RDLC. Esto nos indica que este informe es de tipo local, por lo que diseñar es casi igual que cuando creamos uno de tipo servidor.
La diferencia principal de uno y otro es que en el de tipo local, no podemos ver, escribir y retocar la fuente de datos como lo hacíamos en el de tipo servidor. Con lo que no podremos pasarle parámetros de la misma forma y ni con todas las otras ventajas. Tampoco trae la vista de preview, pero da igual porque con ejecutar este formulario veremos nuestro informe.
Aunque parece una desventaja, no siempre se necesita o se puede montar un servidor de IIS para ello. Y no por ello significa que no podamos trabajar cómodamente con fuentes de datos en nuestro informe.
Ahora para paliar los problemas de esta forma de trabajar, voy añadirle yo mi propia fuente de datos. Esta tiene que tener los mismos campos que se le pasan al informe para que no nos muestre error. Eso sí, una aclaración, si ponemos más campos de la cuenta no pasará nada, si ponemos campos de menos nos dará un error al cargar el informe.
Para utilizar el ejemplo de prueba que podéis descargar desde aquí, he utilizado la base de datos AventureWorks y en concreto la tabla Production.Product.
Cuando agregamos un nuevo informe al proyecto, este nos pide una fuente de datos y una/s tabla/as. Con esto nos creará una dataset que vinculado al informe, automáticamente vinculará al evento Load al crearlo, junto con otra línea que refresca el report. Estas líneas las quitaremos del evento por estas otras:
DataSet ds = new DataSet();
using (SqlConnection conexion =
new SqlConnection("Nuestra conexión a la base de datos"))
{
using (SqlDataAdapter da =
new SqlDataAdapter("Select top (1) * from production.product", conexion))
{
da.Fill(ds);
}
}
// Eliminamos las fuentes de datos para no crear una nueva. Si tenemos más, con
// recorrerlas nos basta
this.reportViewer1.LocalReport.DataSources.RemoveAt(0);
// Creamos un nuevo datasource para nuestro informe y le
// pasamos la tabla con los datos que queremos que se muestre.
ReportDataSource datasource =
new ReportDataSource ("AdventureWorksDataSet_Product", ds.Tables[0]);
// Agregamos el datasource.
this.reportViewer1.LocalReport.DataSources.Add(datasource);
// Refrescamos el informe.
this.reportViewer1.RefreshReport();
Bueno, lo que hacemos es traernos nuestro dataset con los datos que queremos para nuestro informe, luego borramos la asociación entre el informe y el dataset. Con esto nos evitamos que haya dos fuentes de datos, una la que ya hay al cargar el informe y otra la que agregaremos luego. Bueno, pues después tan sólo tenemos que crear una nueva fuente de datos con el dataset y agregarla al informe.
Por último se refresca el report y listo, ya tenemos nuestro informe listo para ejecutarse. Por último decir que este trozo de código, no tiene porque ir en el evento Load de nuestra aplicación, sino que se puede llamar desde cualquier otro evento o método. Con esto y nuestra imaginación, podemos hacer SQLs personalizadas y añadirles cuantos parámetros creemos oportunos :D.
Para poder trabajar con algunos objetos, necesitaremos importar el siguiente espacio de nombres: using Microsoft.Reporting.WinForms;
Espero que os sea de utilidad.
Un Saludo
El próximo día 17 de Junio, Bruno Capuano nos mostrará a través de un evento online.
Dejo los detalles del evento aquí:
Mucho se ha escrito sobre Software Factories, sobre conceptos para la industrialización del proceso de desarrollo y sobre otros temas que sirven para marear a la gente. Es por eso que el siguiente paso, que es llevar esta teoría a un escenario real, es mucho más complejo de lo que parece.
Visual Studio Team System, es una herramienta que gracias a un modelo muy flexible permite solucionar numerosos problemas que plantea la teoría; sin embargo hasta la llegada de "Rosario" todavía queda mucho por explorar.
En esta sesión veremos parte de las capacidades de extensión VSTS, y algunos ejemplos sobre como traer a la realidad los conceptos básicos para la creación de activos para las Software Factories.
Nivel: 300 ó + (Vamos a darle caña a Visual Studio)
El evento será entra las 19:30 y las 21:30 (GMT+2), y como en anteriores ocasiones, se retransmitirá vía Web a través de Live Meeting.
Si no tienes Live Meeting, puedes descargarlo en el siguiente enlace
Podéis registraros en el evento en el siguiente enlace
Si tenéis duas sobre como entrar a la WebCast, podéis ver este enlace.
Esperamos veros por allí!!
Un Saludo
El pasado 22 de mayo tuvo lugar un evento en Huelva, donde David Salgado nos deleitó con el tema "Depuración de aplicaciones en Producción" y el día 3 de Junio, Luis Fraille nos trajo las Novedades Visual Studio Team System 2008 en un evento online para SecondNUG. Los materiales de ambos eventos os lo dejo a continuación:
OnobaNET.- Presentación en PowerPoint (2003, 2007)
SecondNUG.- Ver video de nuevo. Al registraros os saldrá de nuevo el video. Todo el material disponible lo encontraréis en este enlace.
Espero que os haga gustado. Cualquier duda preguntad!!
Un Saludo
Buenas, hoy me encontré con un problema. Estaba instalando la versión 2000 de Reporting Services en una máquina. Al terminar todo ok, luego instalo SQL Server Management Studio Express para utilizarlo contra una SQL Server 2000 lo malo que es acostumbrarse a lo bueno y reinicio. No porque me lo pida la máquina, si no porque ya le tocaba, jeje.
El caso es que no sé si fue por eso, pero el caso es que cuando ya tengo todo instalado, abro el Servidor de informes, el cual ya había probado antes e iba fenomenal, y vaya me sale este error.
El texto del mensaje (se me olvidó hacer un screenshot) decía algo de que no se había podido logear con las claves y que las volviera a generar.
Así es que yo muy puesto, digo pues nada inicio/programas/Microsoft Sql Server 2005, ostras no!!!, que esto es Reporting Services 2000 [:S].
¿Y ahora que hago? Bueno, la ayuda ¿me ayudará?, jajaja, que ingenuo, me dijo algo como... SIGUE BUSCANDO no se encuentra...bla bla vaya a internet y búsquese la vida.
Después de poner el error en Dios google encontré este enlace que me solucionó el problema y nada como viene muy bien explicadito, lo vuelvo a explicar con algunas cosillas que pueden ser obvias o no según tengamos experiencia en ello, y ya de paso por si me vuelve a pasar, escrito queda.
Abrimos la consola (inicio-->ejecutar-->cmd en vista solo poner cmd en la búsqueda) y escribimos esto:
cd C:\archvios de programa\Microsoft SQL Server\80\Tools\Binn
Luego ejecutamos esta otra sentencia:
rsactivate -r -c"C:\Archivos de programa\Microsoft SQL Server\MSSQL\Reporting Services\ReportServer\RSReportServer.config"
Y listo, ya tenemos regeneradas nuestras claves [:D].
Espero que os sea de utilidad!!!
Un Saludo