Compartir a través de


Enlazar a una clase de informe no incrustado cargado en ReportDocument

Modelo de objetos

Este caso de enlace de informes utiliza ReportDocument (vea Enlazar informes al modelo de objetos ReportDocument).

Ubicación de los informes

Los informes se encuentran en el directorio de archivos.

Descripción

Este escenario de enlace de informes permite utilizar el modelo de objetos ReportDocument más eficaz con informes no incrustados; es decir, informes externos al proyecto.

En Enlazar a una ruta de directorio de archivos en el código, establezca el enlace a los informes mediante las rutas de acceso a los directorios de archivos; pero en vez de enlazar las rutas directamente al visor, páselas al método ReportDocument.Load(). De esta forma, podrá utilizar el modelo de objetos ReportDocument.

Nota

Para obtener más información, vea ¿Cuál es el modelo de objetos que se debe utilizar?.

Además, puesto que cada informe externo se carga en la clase común ReportDocument, puede desarrollar un proceso de selección de informes que comparta el código de enlace de informes común para todos los informes. Es parecido al código de la sección Implementación del siguiente caso de enlace de informes Enlazar a una clase de informe incrustado proyectado a ReportDocument).

Ventajas

  • Bajo mantenimiento: los informes se pueden agregar, quitar o modificar sin volver a compilar la aplicación.
  • Amplia interacción mediante programación: proporciona acceso al potente modelo de objetos ReportDocument.
  • Menos codificación gracias al uso compartido de código: es parecido a utilizar el escenario de enlace de informes Enlazar a una clase de informe incrustado proyectado a ReportDocument, los informes pueden compartir código ya que todos ellos se cargan en la clase común ReportDocument.

Desventajas

  • Distribución limitada: los informes deben estar en el mismo equipo que la aplicación. (Normalmente se restringe el acceso desde la cuenta de usuario ASPNET del servidor Web al resto de los servidores de la red.)
  • Esfuerzo de implementación agregado: los informes se deben distribuir junto con la aplicación en la ruta relativa correcta.
  • Origen de informe menos seguro: existe el peligro de que los informes se cambien de ubicación o se quiten del equipo de implementación en tiempo de ejecución.

Para enlazar a u informe no incrustado mediante el objeto de modelos ReportDocument

Nota

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. Agregue un enunciado "Imports" [Visual Basic] o "using" [C#] al principio de la clase para el espacio de nombres CrystalDecisions.CrystalReports.Engine.
<table>
<colgroup>
<col style="width: 100%" />
</colgroup>
<thead>
<tr class="header">
<th><img src="images\z15yzzew.alert_note(es-es,VS.90).gif" class="note" />Nota</th>
</tr>
</thead>
<tbody>
<tr class="odd">
<td><p>Es necesario declarar este espacio de nombres para tener acceso a la clase ReportDocument sin ningún prefijo de espacio de nombres.</p></td>
</tr>
</tbody>
</table>

``` vb
Imports CrystalDecisions.CrystalReports.Engine
```

``` csharp
using CrystalDecisions.CrystalReports.Engine;
```
  1. Busque el archivo World Sales Report.rpt en el subdirectorio General Business de su versión de Crystal Reports. Para obtener información sobre informes de ejemplo, vea Directorio de informes de muestra.

  2. Copie la ruta de directorio de archivos completa al Portapapeles, incluido World Sales Report.rpt.

  3. En el método ConfigureCrystalReports() (creado en Configuración de proyectos), declare una variable de cadena reportPath y asigne una cadena que contenga la ruta de directorio de archivos de World Sales Report copiado en el paso anterior.

    Dim reportPath As String = _
    "C:\Archivos de programa\Microsoft Visual Studio 9.0\" _ & "Crystal Reports\Samples\Es\Reports\General Business\" _ & "World Sales Report.rpt"
    
    string reportPath =
    "C:\\Archivos de programa\\Microsoft Visual Studio 9.0\\" + "Crystal Reports\\Samples\\Es\\Reports\\General Business\\" + "World Sales Report.rpt";
    
  4. Debajo de la declaración de cadena, declare una instancia de ReportDocument.

    Dim myReportDocument As ReportDocument = New ReportDocument()
    
    ReportDocument reportDocument = new ReportDocument();
    
  5. Cargue la variable de cadena que contiene la ruta de directorio de archivos, a la clase de informe no incrustado de ReportDocument.

    myReportDocument.Load(reportPath)
    
    reportDocument.Load(reportPath);
    
  6. Asigne la instancia de ReportDocument (que ya contiene el informe no incrustado cargado) a la propiedad ReportSource del control CrystalReportViewer.

    myCrystalReportViewer.ReportSource = myReportDocument
    
    crystalReportViewer.ReportSource = reportDocument;
    
  7. Para ver el informe, cree y ejecute el proyecto.

Vea también