Web Toolbar by Wibiya August 2007 - Artículos - Fran Diaz

Fran Diaz

Reporting Services, .NET, tecnologías Microsoft y otros

Email Notifications

Recent Posts

Tags

News

Community

Comunidades

  • OnobaNET
  • Grupo de usua
  • INETA
  • Culminis
  • Zona de Grupos de Usuarios Online
  • Foro MSDN Español: Colaborador

Webs Amigas

Archives

August 2007 - Artículos

Presentan Canal .NET!!!

mai_cs_msdn_videos

Leo en un correo de MSDN flash Argentina lo siguiente:

A través de los videos que publicaremos en canal.NET, distintas personas del equipo de Microsoft dedicados al desarrollo y la arquitectura de software compartirán contigo sus conocimientos y experiencias, debatirán sobre los temas que más interesan a la comunidad y presentarán novedades de interés para programadores, líderes de proyecto, arquitectos, diseñadores gráficos y profesionales de tecnología en general.

Para mostrar un ejemplo nos dejan en la página principal un video. Podéis obtener más información en la página oficial.

URL: http://www.microsoft.com/conosur/msdn/canaldotnet/default.aspx

A ver si suben todos los videos de MSDN Media Center y así no tenemos que pasar por el engorro de tener que registrarnos cada vez que queramos bajar uno.

Que lo disfrutéis.

Un Saludo.

Posted: 29/8/2007 8:25 por Fran Díaz | con 2 comment(s) |
Archivado en: ,,
Llamando a nuestro informe desde el ReportViewer.

Normalmente creamos nuestro informe con alguna herramienta y lo previsualizamos para ver que todo anda correctamente, retocamos, vemos que va como queremos y lo preparamos para que se pueda ver desde alguna aplicación.

Tenemos dos formas de tener nuestro informe. Una es de forma local y otra de forma remota.
La local es cuando los informes los tenemos localizado en algún lugar, es decir, en alguna carpeta de nuestro equipo por ejemplo.

Cuando decimos que nuestro informe está en el servidor, significa que este está alojado en algún servidor de informes del servidor de base de datos sql server(en mi caso 2005). Esto lo hacemos desde un proyecto de tipo servidor de informes desde el ide de visual studio, pero bueno, eso es otro tema. El caso es que, cuando tenemos este informe listo, no solo basta con tenerlo, sino que hay que subirlo al servidor. Para hacer esto, tan solo tendremos que asignarle la ubicación del servidor de informes(normalmente: http://[localhost]ó[unaIP]ó[nombreDelServidor]/[reportserver]ó[reportserver$NombreInstancia])  y la carpeta donde almacenaremos nuestro informe, si este no va en el raíz del sitio. Una vez hecho esto, implementamos y el informe estará subido.

Ahora queda llamarlo. Podemos llamarlo desde el browser o desde un control nuevo llamado ReportViewer.

Yo prefiero llamarlo desde el ReportViewer, y tenerlo todo controlado, desde el browser podemos llamarlo con parámetros incluso desde la url, pero la verdad no lo utilizé mucho. Esto no significa que desde un browser no se pueda controlar ni mucho menos.

Ahora voy a explicar como configurar algunas propiedades del ReportViewer cuando estamos tratando con un informe desde un servidor de informes.

Para llamar un informe de forma remota, como ya dije antes, tan solo tenemos que especificar el servidor de informes, la carpeta(esta es opcional) y el informe.

Visual Basic:

' Le indicamos la carpeta y el informe si la extensión de este.
 Me.ReportViewer1.ServerReport.ReportPath =  "CarpetaDondeEsteMiInforme/MiInforme(sin la extensión)"
 ' Y el servidor donde está alojado el informe.
 Me.ReportViewer1.ServerReport.ReportServerUrl = _
            New System.Uri("http://[localhost] ó [mi servidor] ó [UnaIP]/" & _
                                      "[reportserver] ó [reportserver$MiInstancia]/")

C#:

// Le indicamos la carpeta y el informe sin la extensión de este.
this.reportViewer1.ServerReport.ReportPath = "CarpetaDondeEsteMiInforme/MiInforme(sin la extensión)";
// Y el servidor donde está alojado el informe.
this.reportViewer1.ServerReport.ReportServerUrl =
                new System.Uri("http://[localhost] ó [mi servidor] ó [UnaIP]/" +
                                          "[reportserver] ó [reportserver$MiInstancia]/");

Si además nuestro informe tiene parámetros, no hace falta mostrar los controles que pone el reportviewer para cada parámetro, que están muy bien para introducirlos nosotros mismos al probar nuestro informe. ¿Pero y si queremos controlar que es lo que mete el usuario?, para ello podemos crear nosotros nuestros controles personalizados, métodos de comprobación y otros métodos. Luego una vez hecho estas comprobaciones podremos introducir nuestros parámetros también desde código. 

En este caso para meter uno o varios parámetros deberemos de crear un array de la clase ReportParameter o una colección de estos. Cada parámetro deberá de llevar el nombre del parámetro al que se le va a pasar un valor o conjunto de valores y opcionalmente un valor booleano que nos indicará si el parámetro se muestra en la interfaz de usuario o no.

Ejemplo con dos formas diferentes de meter los parámetros.-

Visual Basic:

'  Creo una colección de parámetros de tipo ReportParameter
' para añadirlos al control ReportViewer.
Dim parametros As New List(Of ReportParameter)
' Añado los parámetros necesarios.
parametros.Add(New ReportParameter("NombreDelParámetro", "Valor o Array de valores"))
' Añado el/los parámetro/s al ReportViewer.
Me.ReportViewer1.ServerReport.SetParameters(parametros)

' Creo uno o varios parámetros de tipo ReportParameter con sus valores.
Dim parametro As New ReportParameter("NombreDelParámetro", "Valor o Array de valores")
' Añado uno o varios parámetros(En este caso solo uno al ReportViewer
Me.ReportViewer1.ServerReport.SetParameters(parametro)

C#:

// Creo una colección de parámetros de tipo ReportParameter 
// para añadirlos al control ReportViewer.
List<ReportParameter> parametros = new List<ReportParameter>();
// Añado los parámetros necesarios.
parametros.Add(new ReportParameter("NombreDelParámetro","Valor o Array de valores"));
// Añado el/los parámetro/s al ReportViewer.
this.reportViewer1.ServerReport.SetParameters(parametros);

// Creo uno o varios parámetros de tipo ReportParameter con sus valores.
ReportParameter parametro = new ReportParameter("NombreDelParámetro", "Valor o Array de valores");
// Añado uno o varios parámetros(En este caso solo uno al ReportViewer
this.reportViewer1.ServerReport.SetParameters(new ReportParameter [] {parametro});

Por otro lado, si además queremos obtener los parámetros que tiene nuestro informe, podemos obtenerlo desde el ReportViewer. Esta sentencia sirve tanto para informes locales como remotos.

Visual Basic:

' Creo una colección de parámetros y meto los parámetros.
Dim parametros As ReportParameterInfoCollection = Me.ReportViewer1.ServerReport.GetParameters()
'Dim parametros As ReportParameterInfoCollection = Me.ReportViewer1.LocalReport.GetParameters()

C#:

// Creo una colección de parámetros y meto los parámetros.
ReportParameterInfoCollection parametros = this.reportViewer1.ServerReport.GetParameters();
//ReportParameterInfoCollection parametros = this.reportViewer1.LocalReport.GetParameters();

 Credenciales. Nuestras fuentes de datos pueden o no pedir credenciales a la hora de ejecutar el informe. Para ver que fuentes de datos tenemos en nuestro informe y asignarle los permisos necesarios a cada una, podemos hacerlo de la siguiente forma:

Visual Basic:

Dim total As Integer = Me.ReportViewer1.ServerReport.GetDataSources().Count
' Creo un array de DataSourceCredentials con el total 
' de DataSources que tiene el informe.
Dim permisos(total) As DataSourceCredentials
' Obtengo los datasources del informe.
Dim datasources As ReportDataSourceInfoCollection = Me.ReportViewer1.ServerReport.GetDataSources()
' Ahora por cada fuente de datos, le asignaremos al array de credenciales
' el nombre, userid y password.
For i As Integer = 0 To total - 1
       permisos(i).Name = datasources(i).Name
       permisos(i).UserId = "UsuarioDeNuestraBBDD"
       permisos(i).Password = "PasswordDelUserId"
Next

C#:

int total = this.reportViewer1.ServerReport.GetDataSources().Count;
// Creo un array de DataSourceCredentials con el total 
// de DataSources que tiene el informe.
DataSourceCredentials [] permisos = new DataSourceCredentials[total];
// Obtengo los datasources del informe.
ReportDataSourceInfoCollection datasources = this.reportViewer1.ServerReport.GetDataSources();
// Ahora por cada fuente de datos, le asignaremos al array de credenciales
// el nombre, userid y password.
for (int j = 0; j < total; i++)
{
        permisos[j].Name = datasources[j].Name;
        permisos[j].UserId = "UsuarioDeNuestraBBDD";
        permisos[j].Password = "PasswordDelUserId";
 }
 // Asigno los permisos.
 this.reportViewer1.ServerReport.SetDataSourceCredentials(permisos);

Bueno se me queda en el tintero para otro posible post, como conectarse de forma local a un informe. Ya que la mayoría de estas opciones sirven tanto para informes locales(LocalReport) como para los que están en el servidor(ServerReport).

Espero que les sirva.

Un Saludo

1er Desafío Silverlight!!!

Desafio Silverlight

Los chicos de bcndev han creado el primer concurso de silverlight en españa.

Para participar en la competición “Desafío Silverlight” deberás empezar por tener una idea o concepto que pueda ser de utilidad a la comunidad y llevarla a la práctica. Te recomendamos que te inscribas en la página web del concurso, que en breve abrirá la sección para que puedas subir tus participaciones así como que te inscribas en el boletín del concurso, para estar informado de todas las novedades y nuevos recursos que pongamos a tu disposición.

Esto y más lo podéis leer en la página que han creado para tal concurso y que se encuentra en: http://desafiosilverlight.bcndev.net/

A pensar  se ha dichoSmile!!!!

Un Saludo

Posted: 7/8/2007 0:54 por Fran Díaz | con 1 comment(s)
Archivado en:
Cursos MSDN ya disponbiles!!!

Según nos comenta Alfonso Rodríguez en un correo a los grupos de usuarios, ya están dispoibles una serie de cursos nuevos que estaban pendientes de subir(al fín Big Smile) desde MSDN y que ya podemos descargarlos desde los siguientes links:

Que los disfrutéis.

Un Saludo

Posted: 6/8/2007 18:10 por Fran Díaz | con 3 comment(s)
Archivado en: ,,
SQL Server 2008 CTP de Julio

sqls2k8

Ya está disponible la ctp de SQL Server 2008 de Julio, la podéis encontrar en connect(https://connect.microsoft.com) y ocupa unos 900MB. También las mejoras incluidas en esta ctp en la web. Para poder descargar esta ctp deberéis estar registrado en el programa de connect para SQL Server 2008.

Que la disfrutéis.

Un Saludo

Posted: 1/8/2007 8:34 por Fran Díaz | con 5 comment(s)
Archivado en: ,