Compartir a través de


Publicar y utilizar un informe como un servicio Web

En Crystal Reports para Visual Studio , se puede publicar Crystal Reports como servicios Web.

¿Qué son los servicios Web?

Los servicios Web permiten que distintas aplicaciones compartan datos y funciones. Por ejemplo, un sistema contable puede conectarse a un sistema de pedidos de cliente. Las compañías también pueden utilizar los servicios Web para compartir datos y funciones de aplicación con otras compañías.

Los servicios Web son independientes de cualquier tecnología de componentes o convención de llamada a objetos concreta por los siguientes motivos:

  • Utilizan HTTP como protocolo Web.
  • Se basan en XML.
  • Son compatibles con el nivel de socket seguro (SSL).

Los programas escritos en cualquier lenguaje de programación para cualquier modelo de componente y sistema operativo pueden tener acceso al servicio Web.

Crystal Reports permite que los informes se publiquen fácilmente y se utilicen como servicios Web de informes. Las aplicaciones Web y para Windows pueden conectarse a un servicio Web de informes y mostrar el informe de Crystal que expone dicho servicio.

Cómo se publica un informe como servicio Web de informes

En Crystal Reports para Visual Studio, al seleccionar la opción de publicar un informe de Crystal para un servicio Web de informes, dicho servicio se compila en un archivo .dll, que genera un archivo XML con la extensión de archivo de servicio Web de .NET, ".asmx". El archivo ASMX describe las funciones públicas, los parámetros de entrada, los tipos de datos y los tipos de datos de devolución que expone el servicio Web de informes. Los archivos DLL y ASMX se publican en el servidor Web como servicio Web de informes. Un cliente de un explorador Web ahora puede invocar el servicio Web de informes mediante una llamada a la dirección URL del servicio Web. Los datos se pasan desde y al servicio Web mediante HTTP en formato XML.

Cómo se utiliza el informe como un archivo de servicios Web de informes en el cliente

Para tener acceso al servicio Web de informes publicado desde una aplicación cliente, debe pasar la cadena de dirección URL a la propiedad ReportSource del control CrystalReportViewer, tanto desde un sitio Web como desde un proyecto Windows.

Para crear un servicio Web de informes

  1. Inicie Visual Studio.

  2. En el menú Archivo, seleccione Nuevo y haga clic en Sitio Web.

  3. En el cuadro de diálogo Nuevo sitio Web, seleccione una carpeta de lenguaje para C# o Visual Basic en la lista Tipos de proyecto.

  4. En la lista Plantillas instaladas de Visual Studio, haga clic en Servicio Web de ASP.NET.

  5. En el campo Ubicación, escriba una ruta de directorio de archivo y un nombre para el directorio de servicios Web.

    C:\WebServices\MyCrystalReportsWebServices
    
  6. Haga clic en Aceptar.

  7. En el Explorador de soluciones, haga clic con el botón secundario en el nombre de proyecto en negrita y seleccione Agregar elemento existente...

  8. En el cuadro de diálogo Agregar elemento existente, establezca Tipo de archivo como Todos los archivos (*.*).

  9. Desplácese hasta el archivo Hierarchical Grouping.rpt ubicado en la carpeta Feature Examples del directorio de informes de ejemplo de Crystal Reports.

    El informe de agrupamiento jerárquico (Hierarchical Grouping) obtiene sus datos de la base de datos xtreme.mdb de Access. Si no ha verificado la ubicación de esta base de datos y su configuración de ODBC DSN, vea Comprobaciones necesarias.

  10. Haga clic en el archivo Hierarchical Grouping.rpt para seleccionarlo y, a continuación, haga clic en Agregar.

    El archivo Hierarchical Grouping.rpt se agrega al proyecto.

  11. Haga clic con el botón derecho en el objeto y seleccione Publicar como servicio Web.

  12. Como un nuevo servicio, se crea Hierarchical GroupingService.asmx.

  13. Haga clic con el botón derecho en Hierarchical GroupingService.asmx y seleccione Establecer como página de inicio.

Ahora estará listo para crear y ejecutar el servicio Web de informes.

Para crear, probar y obtener la dirección URL del servicio Web de informes publicado

  1. En el menú Generar, seleccione Generar solución.

  2. Si existen errores de generación, continúe y corríjalos ahora.

  3. En el menú Depurar, haga clic en Iniciar.

    El archivo ASMX Hierarchial_GroupingService se muestra en el explorador Web.

  4. Copie la dirección URL del explorador.

    Nota

    En Visual Studio 2005 y versiones posteriores, no se utiliza IIS de forma predeterminada para obtener una vista previa de los sitios y servicios Web. En su lugar, el Visual Web Developer Web Server es el servidor Web predeterminado. Cuando se utiliza este servidor Web, la dirección URL sólo contiene un número de puerto temporal y aleatorio que sólo es válido durante la compilación. Para tener acceso a esta dirección URL de servicio Web desde una aplicación cliente, primero debe configurar el directorio de archivos para el proyecto de servicio Web como un directorio virtual en IIS. El directorio virtual ofrece una dirección URL coherente para llamarla desde la aplicación cliente.

A continuación, creará un proyecto de cliente para tener acceso al Servicio Web de informes.

Para utilizar el servicio Web de informes desde un proyecto de cliente

Este procedimiento sólo funciona con un proyecto creado a partir de la Configuración de proyectos. La configuración de proyectos contiene referencias específicas a espacios de nombres y configuración de códigos necesarios para este procedimiento, que no se podrá completar sin dicha configuración. Por lo tanto, antes de empezar con este procedimiento, primero debe seguir los pasos de Configuración de proyectos.

  1. Abra el formulario Web Forms o Windows Forms.

  2. En el menú Ver, haga clic en Código.

  3. En el método ConfigureCrystalReports() (creado en Configuración de proyectos), asigne la dirección URL del servicio Web de informes (del procedimiento del paso anterior) a la propiedad ReportSource de la clase CrystalReportViewer.

    myCrystalReportViewer.ReportSource =
    "https://localhost/MyCrystalReportsWebService/Hierarchical_GroupingService.asmx"
    
    crystalReportViewer.ReportSource =
    "https://localhost/MyCrystalReportsWebService/Hierarchical_GroupingService.asmx";
    

Vea también