private void btn_GetResultData_Click(object sender, EventArgs e) { InfoDB info = new InfoDB(); try { var dt = info.GetDatos(this._query); dtgv_resultado.DataSource = dt; botonEstatus(true); } catch (Exception ex) { txt_respuesta.Text = ex.Message; botonEstatus(false); } }
/// <summary> /// Obtiene una ruta en formato STRING de un fichero de excel generado por paciente. /// </summary> /// <param name="numeroExpediente"></param> /// <param name="nombreMedico"></param> /// <param name="mensaje"></param> /// <param name="srcDB"></param> /// <param name="pwdDB"></param> /// <returns></returns> public string GeneraExcel(int numeroExpediente, string nombreMedico, out string mensaje, string srcDB, string pwdDB, string fechaInicio, string fechaFin) { mensaje = ""; string rutaExcel = ""; //Para no batallar en debug srcDB = string.IsNullOrEmpty(srcDB) ? "C:/SF/CardioSys/CardioSys.mdb" : srcDB; pwdDB = string.IsNullOrEmpty(pwdDB) ? "sfa080808528" : pwdDB; InfoDB info = new InfoDB(srcDB, pwdDB); List <PacienteClass> LPacientes = new List <PacienteClass>(); List <List <DataTable> > listaResultadosPorPaciente = new List <List <DataTable> >(); List <DataTable> listaDTResultados = new List <System.Data.DataTable>(); try { string query = string.Empty; int top = 3; //0. Obtener lista de pacientes consultados //1. Obtener columnas de la tabla "DatosPaciente" List <string> listaColumnas = new List <string>(); listaColumnas = info.GetColumns("DatosPaciente"); //2. Generar query de la tabla string numeroExpedienteStr = (numeroExpediente == 0) ? string.Empty : numeroExpediente.ToString(); query = info.GeneraQuery("DatosPaciente", listaColumnas.ToArray(), numeroExpedienteStr, 0, fechaInicio, fechaFin); //3. Obtener los pacientes LPacientes = info.GetPacientes(query); //Paso 1. Obtener Nombres de tablas List <string> listaTablas = new List <string>(); listaTablas = info.GetTables(); //Recorre los pacientes foreach (PacienteClass paciente in LPacientes) { listaDTResultados = new List <DataTable>(); //Paso 3. Recorrer las tablas foreach (string tableName in listaTablas) { //Paso 4. Al Recorrer Tablas obtener sus columnas listaColumnas = new List <string>(); listaColumnas = info.GetColumns(tableName); //Paso 5. Construir query por cada tabla usando el numero de expediente query = info.GeneraQuery(tableName, listaColumnas.ToArray(), paciente.NumeroExpediente); //Paso 6. Obtener datos por cada tabla System.Data.DataTable dt = info.GetDatos(query); listaDTResultados.Add(dt); } listaResultadosPorPaciente.Add(listaDTResultados); } //Paso 7. Construye el excel y obtiene la ruta rutaExcel = ConstruyeExcel(listaResultadosPorPaciente, listaTablas, numeroExpediente, LPacientes, nombreMedico, fechaInicio, fechaFin); } catch (Exception ex) { mensaje = ex.Message; } return(rutaExcel); }