Entradas

Mostrando las entradas de abril, 2006

Cambiar data source de un crystal report en tiempo de ejecucion

Para cambiar el servidor, base de datos, user id y password de reportes crystal en tiempo de ejecucion (runtime) se debe indicar la informacion de la conexion a cada tabla del reporte y tablas de los subreportes. private bool ApplyLogon(ReportDocument cr, ConnectionInfo ci) { TableLogOnInfo li; // for each table apply connection info foreach (CrystalDecisions.CrystalReports.Engine.Table tbl in cr.Database.Tables) { li = tbl.LogOnInfo; li.ConnectionInfo = ci; tbl.ApplyLogOnInfo(li); // check if logon was successful // if TestConnectivity returns false, check // logon credentials if (tbl.TestConnectivity()) { // drop fully qualified table location if (tbl.Location.IndexOf(".") > 0) tbl.Location = tbl.Location.Substring(tbl.Location.LastIndexOf(".") + 1); else tbl.Location = tbl.Location; } else return false; } return true; } // El metodo recorre todas las tablas private bool Logon(ReportDocument cr, string server, string db, string id, string pass) { ConnectionI