Пример #1
0
        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);
            }
        }
Пример #2
0
        /// <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);
        }