Dificultad con Crystal Report y Visual Studio 2013 C# Framework 4.5

Iniciado por crifesma, 25 Febrero 2016, 18:29 PM

0 Miembros y 1 Visitante están viendo este tema.

crifesma

Buenos días

mi dificultad es la siguiente. cree un reporte de crystal report desde el visual studio directamente. el reporte funciona (vista previa), cuando hago depuración tambien me muestra la información pero al ubicar el programa en otro pc y desde este intentar ver el reporte me solicita credenciales y ademas no puedo ingresarlas completamente. en la siguiente imagen muestro lo que pasa.



el codigo que utilizo es el siguiente.

Código (csharp) [Seleccionar]
//Metodo utilizado más adelante
       private void EstablecerDatos(ConnectionInfo Conexion)
       {
           TableLogOnInfos Log = CrystalVisor.LogOnInfo;
           foreach (TableLogOnInfo item in Log)
           {
               item.ConnectionInfo = Conexion;
           }
       }

       void CargarParametro()
       {
           //Control de errores
           try
           {
               //esta es mi forma de cargar los datos de conexion a la base de datos
               object[] Datos = new object[4];
               Datos = Toclas.Funciones.obtenervaloreskey("Ginfo");
               //con la siguiente linea lo cargo a una dll que me lo convierte a formato string correcto para conexiones
               GinfoDAL.GINFODAL.Cargar(Datos[0].ToString(), Datos[1].ToString(), Datos[2].ToString(),
                   Toclas.Funciones.Codificar(Datos[3].ToString(), false));
               //utilizo el formato de conexion para crear un adapter y luego cargar un data set con toda la informacion de la base de datos
               //esto lo hice buscando soluciones alternas
               SqlConnection con = new SqlConnection(GinfoDAL.GINFODAL.ConexionDataSet);
               string sqlcomando = "select * from clasevehiculo;";
               sqlcomando += "select * from colortapa;";
               sqlcomando += "select * from datosprevios;";
               sqlcomando += "select * from droga;";
               sqlcomando += "select * from DrogasXResultado;";
               sqlcomando += "select * from EntrevistaXResultado;";
               sqlcomando += "select * from Evento;";
               sqlcomando += "select * from Examinado;";
               sqlcomando += "select * from GradoAlcohol;";
               sqlcomando += "select * from LogOperaciones;";
               sqlcomando += "select * from Metodo;";
               sqlcomando += "select * from MotivoPeritacion;";
               sqlcomando += "select * from MotivosXDatosPrevios;";
               sqlcomando += "select * from Muestra;";
               sqlcomando += "select * from ReponsableMuestra;";
               sqlcomando += "select * from Respuesta;";
               sqlcomando += "select * from Resultado;";
               sqlcomando += "select * from Rol;";
               sqlcomando += "select * from Solicitante;";
               sqlcomando += "select * from TipoMuestra;";
               sqlcomando += "select * from Test;";
               sqlcomando += "select * from TipoDocumento;";
               sqlcomando += "select * from Usuario;";
               sqlcomando += "select * from Vehiculo;";
               sqlcomando += "select * from Resultados;";
               sqlcomando += "select * from VwSolicitudes;";
               SqlDataAdapter da = new SqlDataAdapter(sqlcomando, con);
               DataSet DSet = new DataSet();
               da.Fill(DSet);
               //lo siguiente fue otra solucion que encontre en internet
               ConnectionInfo Conexion = new ConnectionInfo();
               Conexion.DatabaseName = Datos[1].ToString(); //aqui se ve que cargo el nombre de la base de datos
               Conexion.ServerName = (Datos[0].ToString());
               Conexion.UserID = Datos[2].ToString();
               Conexion.Password = Toclas.Funciones.Codificar(Datos[3].ToString(), false);              

               switch (tipo)
               {
                   case 1:
                       //aqui cargo el reporte
                       Solicitud2 = new Reportes.Solicitud();            
                       //inserto la informacion de la conexion (otra forma mas que entontre)
                       Solicitud2.SetDatabaseLogon(Datos[2].ToString(), Toclas.Funciones.Codificar(Datos[3].ToString(), false), Datos[0].ToString(), Datos[1].ToString());
                       //cargo el dataset en el reporte
                       Solicitud2.SetDataSource(DSet);
                       //esta es otra forma que encontre de hacer la conexion
                       for (int i = 0; i < Solicitud2.DataSourceConnections.Count; i++)
                       {
                           Solicitud2.DataSourceConnections[i].SetConnection(Datos[0].ToString(), Datos[1].ToString(), Datos[2].ToString(), Toclas.Funciones.Codificar(Datos[3].ToString(), false));                            
                       }
                       //mando un parametro al el reporte
                       Solicitud2.SetParameterValue("Radicado", (object)(Radicado));
                       //lo cargo en el visor
                       CrystalVisor.ReportSource = Solicitud2;
                       //Refresco (lei por ahi que servia, pero aunque quite o ponga esta linea no cambia nada del problema
                       CrystalVisor.Refresh();
                       //otra forma de extablecer la conexion
                       EstablecerDatos(Conexion);

                       break;


lo anterior fue una porcion.

utilizo entity framework. y no se realmente he promado muchas cosas y nada me funciona.

por favor ayuda. :-(