Conexiones dinámicas reports – Cristal Reports – C#
Para que un reports tenga la posibilidad de funcionar en cualquier servidor en un aplicativo desarrollado con C#, utilizaremos este fragmento de código que muestro a continuación.
Se encarga de trocear la cadena de conexión y así de esta forma aplicársela al SetConnection del objeto del report.
//Se extraen los parametros de la cadena de conexion
string conexion = ConfigurationManager.ConnectionStrings["UTPMS_DBConnectionString"].ConnectionString;
string[] aux = conexion.Split(‘;’);
string server = aux[0].Split(‘=’)[1];
string database = aux[1].Split(‘=’)[1];
string user = aux[2].Split(‘=’)[1];
string password = aux[3].Split(‘=’)[1];//Se crea el objeto CrytalReport, se carga se indica los datos de conexion
crDoc = new CrystalDecisions.CrystalReports.Engine.ReportDocument();
string path = Server.MapPath(“..\\Reports\\”) + report.UTPREP_DS_FILENAME;crDoc.Load(path);
crDoc.DataSourceConnections[0].SetConnection(server,database,user,password);

