Compartir a través de


Método ReportDocument.OpenSubReport

Abre un subinforme contenido en el informe y devuelve un objeto ReportDocument correspondiente al subinforme mencionado.

[Visual Basic]

Public Overridable Function OpenSubreport(ByVal subreportName As String) As ReportDocument

[C#]

public virtual ReportDocument OpenSubreport (string subreportName );

[C++]

public virtual ReportDocument * OpenSubreport (String* subreportName);

[VJ#]

public ReportDocument OpenSubreport (string subreportName );

Parámetros

  • subreportName
    Indica el nombre del subinforme que se va a abrir.

Valor devuelto

Devuelve un objeto ReportDocument independiente que representa el subinforme.

Observaciones

Pasa el valor desde la Propiedad SubreportName de SubreportObject como el parámetro subreportName.

Trate el subinforme como informe con fines de formato, vista previa, impresión y exportación.

Ejemplo

El siguiente ejemplo abre y muestra una vista previa del subinforme.

[Visual Basic]

Private Sub OpenSubreport(ByVal reportObjectName As String)
   Dim subreportName As String
   Dim subreportObject As SubreportObject
   Dim subreport As New ReportDocument()

   ' Obtener ReportObject por nombre y proyectarlo como 
   '  SubreportObject.
   If TypeOf (Report.ReportDefinition.ReportObjects. _
   Item(reportObjectName)) Is SubreportObject Then
      subreportObject = Report.ReportDefinition.ReportObjects. _
      Item(reportObjectName)
     ' Obtener el nombre de subinforme.
      subreportName = subreportObject.SubreportName
      ' Abrir el subinforme como ReportDocument.
      subreport = Report.OpenSubreport(subreportName)
      ' Obtener una vista previa del subinforme.
      crystalReportViewer1.ReportSource = subreport
   End If
End Sub

[C#]

private void OpenSubreport(string reportObjectName)
{
   string subreportName;
   SubreportObject subreportObject;
   ReportDocument subreport = new ReportDocument();

   // Obtener ReportObject por nombre y proyectarlo como 
   //  SubreportObject.
   subreportObject = Report.ReportDefinition.ReportObjects
   [reportObjectName] as SubreportObject;
   if (subreportObject != null)
   {
      // Obtener el nombre de subinforme.
      subreportName = subreportObject.SubreportName;
      // Abrir el subinforme como ReportDocument.
      subreport = Report.OpenSubreport(subreportName);
      // Obtener una vista previa del subinforme.
      crystalReportViewer1.ReportSource = subreport;
   }
} 

[C++]

void OpenSubreport(String* reportObjectName)
{
   String* subreportName;
   SubreportObject* subreportObject;
   ReportDocument* subreport = new ReportDocument();

   // Obtener ReportObject por nombre y proyectarlo como 
   //  SubreportObject.
   try
   {
      subreportObject = __try_cast<SubreportObject*>
      (Report->ReportDefinition->
      ReportObjects->Item[reportObjectName]);
      // Obtener el nombre de subinforme.
      subreportName = subreportObject->SubreportName;
      // Abrir el subinforme como ReportDocument.
      subreport = Report->OpenSubreport(subreportName);
      // Obtener una vista previa del subinforme.
      crystalReportViewer1->ReportSource = subreport;      
   }
   catch(System::InvalidCastException*)
   {
      // Agregar código de error.
   }
};

[VJ#]

private void OpenSubreport(String reportObjectName)
{
   String subreportName;
   SubreportObject subreportObject;
   ReportDocument subreport = new ReportDocument();

   // Obtener ReportObject por nombre y proyectarlo como 
   //  SubreportObject.
   subreportObject = (SubreportObject)
   Report.get_ReportDefinition().get_ReportObjects().get_Item
   (reportObjectName);
   if (subreportObject != null)
   {
      // Obtener el nombre de subinforme.
      subreportName = subreportObject.get_SubreportName();
      // Abrir el subinforme como ReportDocument.
      subreport = Report.OpenSubreport(subreportName);
      // Obtener una vista previa del subinforme.
      crystalReportViewer1.set_ReportSource(subreport);
   }
} 

Requisitos

Espacio de nombres: CrystalDecisions.CrystalReports.Engine

Plataformas: Windows 98, Windows NT 4.0, Windows Millennium Edition, Windows 2000, Windows XP

Vea también

Clase ReportDocument | Miembros de ReportDocument | Espacio de nombres CrystalDecisions.CrystalReports.Engine