Opciones de enlace de informes de Windows Forms Viewers
Los casos siguientes son aplicables a aplicaciones de Visual Basic .NET y C#, así como a aplicaciones de C++ administradas, a menos que se especifique lo contrario.
Caso 1: informe local
Suponga que se dan las siguientes condiciones y que existe un informe Crystal disponible en un equipo local:
- Tiene un informe Crystal, My Report.rpt, en la carpeta, C:\Reports, en un equipo local.
En una aplicación de Visual Basic o de C#
- Ha creado un proyecto Aplicación de Windows, MyProject, en la carpeta predeterminada para el usuario conectado como administrador (C:\Documents and Settings\Administrator\My Documents\Visual Studio Projects).
- Ha insertado Windows Forms Viewer, en Windows Form,
CrystalReportViewer1
, en MyProject.
Puede enlazar My Report.rpt a Windows Forms Viewer por el nombre de informe, el objeto de informe o el componente de informe sin tipo.
En una aplicación de C++
- Ha creado un proyecto de C++ administrado, MyProject, en la carpeta predeterminada para el usuario conectado como administrador (C:\Documents and Settings\Administrator\My Documents\Visual Studio Projects).
- Ha insertado Windows Forms Viewer,
crystalReportViewer1
, en MyProject.cpp en MyProject.
Puede enlazar My Report.rpt a Windows Forms Viewer por el nombre del informe o por el objeto de informe.
Enlazar por nombre de informe
Dependiendo del lenguaje del proyecto, se puede especificar la propiedad ReportSource mediante la ventana Properties o mediante código:
En una aplicación de Visual Basic o de C#
- Seleccione Windows Forms Viewer en la vista Diseño de Windows Form. En la ventana Propiedades, busque y seleccione "C:\Reports\My Report.rpt" para la propiedad ReportSource.
- En el Editor de código, establezca el nombre de informe en la propiedad ReportSource de Windows Forms Viewer.
En una aplicación de C++
En el Editor de código, establezca el nombre de informe en la propiedad ReportSource de Windows Forms Viewer.
Ejemplo
Establezca el nombre de informe en la propiedad ReportSource de Windows Forms Viewer.
[Visual Basic]
CrystalReportViewer1.ReportSource = _
"C:\\Reports\\My Report.rpt"
[C#]
crystalReportViewer1.ReportSource =
"C:\\Reports\\My Report.rpt";
[C++]
crystalReportViewer1->ReportSource =
"C:\\Reports\\My Report.rpt";
[VJ#]
crystalReportViewer1.set_ReportSource(
"C:\\Reports\\My Report.rpt");
Enlazar por objeto de informe
Puede crear un objeto de informe, asignar un informe a ese objeto y enlazar el objeto a Windows Forms Viewer. Mediante el objeto de informe, puede obtener acceso al modelo de objeto completo que Crystal Reports muestra para Visual Studio .NET.
Para enlazar un objeto de informe a Windows Forms Viewer en un proyecto de Visual Basic
Agregue una referencia a CrystalDecisions.CrystalReports.Engine.
Abra Form1.vb en el Editor de código.
Agregue el siguiente espacio de nombres a Form1.vb:
Imports CrystalDecisions.CrystalReports.Engine
Cree un objeto de informe como variable pública ReportDocument en
Form1()
:Public WithEvents oRpt As ReportDocument
En el método
New()
, utilice el objeto Report Document para cargar My Report.rpt y enlazar el objeto a Windows Forms Viewer:Public Sub New() MyBase.New() 'Windows Form Designer requiere esta llamada. InitializeComponent() 'Agregar inicialización detrás de la 'llamada a InitializeComponent() oRpt = New ReportDocument() oRpt.Load("C:\\Reports\\My Report.rpt") CrystalReportViewer1.ReportSource = oRpt End Sub
Para enlazar un objeto de informe a Windows Forms Viewer en un proyecto de C#
Agregue una referencia a CrystalDecisions.CrystalReports.Engine.
Abra Form1.cs en el Editor de código.
Agregue el siguiente espacio de nombres a Form1.cs:
using CrystalDecisions.CrystalReports.Engine;
Cree un objeto de informe como variable pública ReportDocument en
Form1()
:public ReportDocument oRpt=null;
En la función
Form1()
, utilice el objeto Report Document para cargar My Report.rpt y enlazar el objeto a Windows Forms Viewer:Public Form1() { // // Requerido para soporte de Windows Form Designer // InitializeComponent(); // // TODO: Agregar código de constructor detrás de // la llamada a InitializeComponent // oRpt = new ReportDocument(); oRpt.Load("c:\\Reports\\My Report.rpt"); crystalReportViewer1.ReportSource = oRpt; }
Para enlazar un objeto de informe a Windows Forms Viewer en un proyecto de C++
Haga doble clic en MyProject.cpp en el Explorador de soluciones para abrirlo en el Editor de código.
Agregue los componentes siguientes a MyProject.cpp:
#using <C:\Archivos de Programa\Archivos Comunes\Crystal Decisions\1.1\Managed\CrystalDecisions.CrystalReports.Engine.dll> #using <C:\Archivos de Programa\Archivos Comunes\Crystal Decisions\1.1\Managed\CrystalDecisions.Windows.Forms.dll>
Agregue los espacios de nombres siguientes a MyProject.cpp:
using namespace CrystalDecisions::CrystalReports::Engine; using namespace CrystalDecisions::Windows::Forms;
Cree un objeto de informe como variable pública de ReportDocument:
ReportDocument *oRpt = null;
Cree Windows Forms Viewer como variable pública de CrystalReportViewer y enlácelo a un objeto de formulario.
Form* form1 = new Form(); CrystalReportViewer crystalReportViewer1 = new crystalReportViewer form1->Controls->Add(crystalReportViewer1);
Utilice el objeto ReportDocument para cargar My Report.rpt y enlace el objeto a Windows Forms Viewer:
oRpt = new ReportDocument(); oRpt->Load("c:\\Reports\\My Report.rpt"); crystalReportViewer1->ReportSource = oRpt;
Enlazar por componente de informe sin tipo
Suponga que ha agregado un componente de informe sin tipo, reportDocument1, a Windows Form y ha cargado el componente con c:\Reports\My Report.rpt.
Puede enlazar el componente de informe sin tipo a Windows Forms Viewer especificando la propiedad ReportSource mediante código:
[Visual Basic]
CrystalReportViewer1.ReportSource = reportDocument1
[C#]
crystalReportViewer1.ReportSource = reportDocument1;
[C++] Sólo se pueden agregar objetos de informe a la aplicación de C++ mediante código. Para obtener más información, vea la sección Para enlazar un objeto de informe a Windows Forms Viewer en un proyecto de C++, más arriba. Para ver un ejemplo de C# o VB, haga clic en el botón Filtro de lenguaje situado en la esquina superior izquierda de la página.
[VJ#]
crystalReportViewer1.set_ReportSource(reportDocument1);
Caso 2: informe local agregado al proyecto
Suponga que se dan las siguientes condiciones y que existe un informe Crystal disponible en un equipo local:
En una aplicación de Visual Basic o de C#
- Ha creado un proyecto Aplicación de Windows, MyProject, en la carpeta predeterminada para el usuario conectado como administrador (C:\Documents and Settings\Administrator\My Documents\Visual Studio Projects).
- Ha insertado Windows Forms Viewer, CrystalReportViewer1 en Windows Form, en MyProject.
- Ha agregado el informe My Report.rpt a MyProject.
Puede enlazar My Report.rpt a Windows Forms Viewer por objeto de informe o por componente de informe con tipos declarados.
En una aplicación de C++
- Ha creado un proyecto de C++ administrado, MyProject, en la carpeta predeterminada para el usuario conectado como administrador (C:\Documents and Settings\Administrator\My Documents\Visual Studio Projects).
Se debe agregar Web Forms Viewer y el informe mediante código.
Por objeto de informe:
En una aplicación de Visual Basic o de C#
Cuando se agrega My Report.rpt a MyProject, la clase de informe correspondiente, My_Report, se genera automáticamente en el archivo de código fuente de My Report.rpt. Se puede enlazar My Report.rpt a Windows Forms Viewer asignando el objeto de informe correspondiente a la propiedad ReportSource mediante la vista Código de Windows Form:
En una aplicación de C++
Para los proyectos de C++ no se genera automáticamente ninguna clase de informe. Se puede agregar esta clase a la aplicación de C++ mediante código.
Ejemplo
[Visual Basic]
CrystalReportViewer1.ReportSource = new My_Report()
[C#]
crystalReportViewer1.ReportSource = new My_Report();
[C++]
public __gc Class MyWebClass{
public:
CrystalReportViewer* CrystalReportViewer1;
ReportDocument* oRpt;
void BindReport(){
CrystalReportViewer1 = new CrystalReportViewer();
oRpt = new ReportDocument();
oRpt->Load("c:\\Reports\\My Report.rpt");
CrystalReportViewer1->ReportSource = oRpt;
};
};
[VJ#]
crystalReportViewer1.set_ReportSource(new My_Report());
Enlazar por componente de informe con tipos declarados
En una aplicación de Visual Basic o de C#
Suponga que ha agregado My Report.rpt como componente con tipos declarados a MyProject.
Puede enlazar el informe como componente a Windows Forms Viewer especificando la propiedad ReportSource mediante la ventana Propiedades o la vista Código de Windows Form:
- Seleccione Windows Forms Viewer en la vista Diseño de Windows Form. En la ventana Propiedades, seleccione my_Report1 [MyProject.My_Report] en la lista desplegable para la propiedad ReportSource.
- O bien, en la vista Código de Windows Form, establezca la propiedad ReportSource de Windows Forms Viewer.
En una aplicación de C++
Para los proyectos de C++ no se genera automáticamente ninguna clase de informe. Se puede agregar esta clase a la aplicación de C++ mediante código.
Ejemplo
[Visual Basic]
CrystalReportViewer1.ReportSource = my_Report1
[C#]
crystalReportViewer1.ReportSource = my_Report1;
[C++]
public __gc Class MyWebClass{
public:
CrystalReportViewer* CrystalReportViewer1;
ReportDocument* oRpt;
void BindReport(){
CrystalReportViewer1 = new CrystalReportViewer();
oRpt = new ReportDocument();
oRpt->Load("c:\\Reports\\My Report.rpt");
CrystalReportViewer1->ReportSource = oRpt;
};
};
[VJ#]
crystalReportViewer1.set_ReportSource( my_Report1);