Enlace de datos Crystal Reports

19/05/2005 - 10:42 por Arkhanne | Informe spam
Hola,

¿Se puede definir el enlace de datos de un report en .NET en tiempo de
ejecución?


Muchas grascias!!

Preguntas similare

Leer las respuestas

#1 Raul Cortes
19/05/2005 - 22:25 | Informe spam
Hola Arkhanne:

No estoy seguro si te funciona con todas las versiones de Crysta, porque
tengo instalada la version XI. Yo estoy utilizando el ReportDocument
y me funciona muy bien, conectandome a un SQL.
Aqui un poquito de codigo

a. Incluye el referencias al namespaces de
CrystalDecisions.CrystalReports.Engine y CrystalDecisions.Shared

using CrystalDecisions.CrystalReports.Engine;
using CrystalDecisions.Shared;


b. Incluye en tu formulario un CrystalReportViewer, yo le he llamado crv

c. puedes escribir un codigo como este:

private CrystalDecisions.CrystalReports.Engine.ReportDocument report;

private void Form1_Load(object sender, System.EventArgs e)

{

ConfigureCrystalReport();

crv.ReportSource = report;

}



private void ConfigureCrystalReport( )

{

report = new ReportDocument();

report.Load (@"c:\test.rpt");

ConnectionInfo connectionInfo = new ConnectionInfo();

connectionInfo.ServerName = "NombreDeTuServidor";

connectionInfo.DatabaseName = "NombreDeTuBaseDatos";

connectionInfo.UserID = "sa";

connectionInfo.Password = "tuPalabraClave";

SetDBLogonForReport(connectionInfo, report);

}

private void SetDBLogonForReport(ConnectionInfo connectionInfo,
ReportDocument reportDocument)

{

Tables tables = reportDocument.Database.Tables;

foreach(CrystalDecisions.CrystalReports.Engine.Table table in tables)

{

TableLogOnInfo tableLogonInfo = table.LogOnInfo;

tableLogonInfo.ConnectionInfo = connectionInfo;

table.ApplyLogOnInfo(tableLogonInfo);

}

}


Espero que te sea de utilidad,





"Arkhanne" escribió en el mensaje
news:
Hola,

¿Se puede definir el enlace de datos de un report en .NET en tiempo de
ejecución?


Muchas grascias!!
Respuesta Responder a este mensaje
#2 Arkhanne
20/05/2005 - 13:00 | Informe spam
Gracias Raul. Lo he solucionando utilizando un DataSet como origen de datos
del report. Es más sencillo y el único código que hay que escribir es el que
carga los datos en el DataSet.

Y... ya que estamos... otra preguntilla:

¿Se puede lanzar un report por nombre? Me explico... tengo 2 reports
creados. En realidad es el mismo pero cambiando los literales en dos idiomas.
Para cada report se crera una clase con su mismo nombre y esto obliga a
escribir código específico para declarar la variable del objeto report cada
vez que la aplicación cambia de idioma. Lo ideal sería poder lanzar un report
u otro sabiendo de antemano el nombre que tiene.

Bueno, me explico como un libro cerrado, a ver si alguien lo entiende y
puede ayudarme.


Saludos!!


"Raul Cortes" wrote:

Hola Arkhanne:

No estoy seguro si te funciona con todas las versiones de Crysta, porque
tengo instalada la version XI. Yo estoy utilizando el ReportDocument
y me funciona muy bien, conectandome a un SQL.
Aqui un poquito de codigo

a. Incluye el referencias al namespaces de
CrystalDecisions.CrystalReports.Engine y CrystalDecisions.Shared

using CrystalDecisions.CrystalReports.Engine;
using CrystalDecisions.Shared;


b. Incluye en tu formulario un CrystalReportViewer, yo le he llamado crv

c. puedes escribir un codigo como este:

private CrystalDecisions.CrystalReports.Engine.ReportDocument report;

private void Form1_Load(object sender, System.EventArgs e)

{

ConfigureCrystalReport();

crv.ReportSource = report;

}



private void ConfigureCrystalReport( )

{

report = new ReportDocument();

report.Load (@"c:\test.rpt");

ConnectionInfo connectionInfo = new ConnectionInfo();

connectionInfo.ServerName = "NombreDeTuServidor";

connectionInfo.DatabaseName = "NombreDeTuBaseDatos";

connectionInfo.UserID = "sa";

connectionInfo.Password = "tuPalabraClave";

SetDBLogonForReport(connectionInfo, report);

}

private void SetDBLogonForReport(ConnectionInfo connectionInfo,
ReportDocument reportDocument)

{

Tables tables = reportDocument.Database.Tables;

foreach(CrystalDecisions.CrystalReports.Engine.Table table in tables)

{

TableLogOnInfo tableLogonInfo = table.LogOnInfo;

tableLogonInfo.ConnectionInfo = connectionInfo;

table.ApplyLogOnInfo(tableLogonInfo);

}

}


Espero que te sea de utilidad,





"Arkhanne" escribió en el mensaje
news:
> Hola,
>
> ¿Se puede definir el enlace de datos de un report en .NET en tiempo de
> ejecución?
>
>
> Muchas grascias!!



email Siga el debate Respuesta Responder a este mensaje
Ads by Google
Help Hacer una preguntaRespuesta Tengo una respuesta
Search Busqueda sugerida