Compartir a través de


Enlazar a un servidor RAS no administrado mediante el método ReportClientDocument.Open()

Nota

Esta página describe una funcionalidad que no está disponible en Crystal Reports para Visual Studio, pero sí lo está en una de sus versiones actualizadas. Para obtener más información acerca de Crystal Reports para Visual Studio, consulte ¿Qué es Crystal Reports para Visual Studio? Para obtener más información acerca de las versiones actualizadas, consulte Opciones de actualización.

Modelo de objetos

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

Ubicación de los informes

El informe está situado en un directorio de archivos al que el servidor RAS no administrado (vea Servidor de aplicaciones de informes (RAS)) tiene permiso de acceso.

Descripción

Este escenario de enlace de informes tiene acceso al modelo de objetos ReportClientDocument directamente. Pasa una ruta de directorio de archivos como objeto y el número entero 0 (parámetro opcional en Visual Basic) al método Open() de ReportClientDocument. Para obtener un ejemplo de código, vea la sección siguiente.

Ventajas

  • Compatibilidad con versiones anteriores: método viable de interacción con informes en el modelo de objetos ReportClientDocument mediante RAS 9 y posterior.
  • Rendimiento optimizado: rendimiento mejorado debido a un rendimiento muy superior del motor de informes de Servidor de aplicaciones de informes (RAS). Vea Comparación de arquitecturas en las soluciones de elaboración de informes de Business Objects.
  • Facilidad de portabilidad: mantiene todo el código original que interactuaba con los informes utilizando el modelo de objetos ReportDocument, a la vez que sigue proporcionando acceso total al modelo de objetos ReportClientDocument subyacente mediante la propiedad ReportDocument.ReportClientDocument.
    Nota

    El modelo de objetos ReportClientDocument permite crear, modificar y guardar los cambios de los informes mediante programación en el archivo de definición de informe. Para obtener más información, vea Modelo de objetos ReportClientDocument (RAS) en la sección Arquitectura.

  • Codificación directa: permite el acceso directo al modelo de objetos ReportClientDocument.

Desventajas

  • Menos potencial de rendimiento: la actualización a un servidor RAS no administrado incrementa en gran medida el rendimiento de los informes, pero no tanto como la actualización a un servidor RAS administrado.

Para cargar un informe desde el directorio de archivos local en un servidor RAS mediante el método Open de ReportClientDocument

  • El servidor RAS no administrado, versión 9 o posterior, está instalado y se comprueba su correcto funcionamiento.

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.

Un servidor RAS sólo funciona con proyectos Web.

  1. En el método ConfigureCrystalReports() (creado en Configuración de proyectos), agregue una declaración de cadena que contenga la ruta a un informe local.
<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>Esta ruta corresponde al directorio predeterminado para almacenar los informes de RAS. El servidor RAS puede rechazar otras rutas de informe con un error de &quot;Acceso denegado&quot;.</p></td>
</tr>
</tbody>
</table>

``` vb
Dim reportPath As String = "C:\Archivos de programa\Crystal Decisions\" _ & "Report Application Server 10\Reports\" _ & "World Sales Report.rpt"
```

``` csharp
string reportPath = "C:\\Archivos de programa\\Crystal Decisions" + "\\Report Application Server 10\\Reports" + "\\World Sales Report.rpt";
```
  1. Convierta la cadena reportPath en una variable Object.
<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>El método Open() de ReportClientDocument requiere la cadena como objeto, en vez de como cadena.</p></td>
</tr>
</tbody>
</table>

``` vb
Dim reportPathAsObject As Object = CType(reportPath, Object)
```

``` csharp
object reportPathAsObject = (object)reportPath;
```
  1. Declare y cree una instancia de ReportClientDocument.

    Dim myReportClientDocument As ReportClientDocument = New
    ReportClientDocumentClass()
    
    ReportClientDocument reportClientDocument = new
    ReportClientDocumentClass();
    
  2. Pase la ruta del informe (como variable de objeto) y el parámetro Options, como el número entero 0 (es opcional en Visual Basic), al método Open de la instancia ReportClientDocument.

<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>De esta forma se abre el informe del directorio de archivos local y se carga en el servidor de aplicaciones de informes (RAS) no administrado.</p></td>
</tr>
</tbody>
</table>

``` vb
myReportClientDocument.Open(reportPathAsObject, 0)
```

``` csharp
reportClientDocument.Open(ref reportPathAsObject, 0);
```
  1. Enlace la instancia de ReportClientDocument al control CrystalReportViewer.

    myCrystalReportViewer.ReportSource = myReportClientDocument
    
    crystalReportViewer.ReportSource = reportClientDocument;
    
  2. Para ver el informe, cree y ejecute el proyecto.

Vea también