Esempio n. 1
0
        private void Evaluar()
        {
            try
            {
                string path = "", name = "";
                int[]  result;
                using (var dialog = new OpenFileDialog())
                {
                    dialog.Filter = "Json files (*.json)|*.json|Text files (*.txt)|*.txt";
                    //dialog.InitialDirectory = @"D:\";
                    dialog.InitialDirectory = Environment.CurrentDirectory;
                    dialog.Title            = "Seleccione un archivo JSON";
                    if (dialog.ShowDialog() == DialogResult.OK && !string.IsNullOrWhiteSpace(dialog.FileName))
                    {
                        path = dialog.FileName;
                        name = System.IO.Path.GetFileNameWithoutExtension(dialog.FileName);

                        //GSuperIndividuo.SetDb(bd, Turno);
                        ClsIndividuo indiv = ClsTrataJSON.JSON_Individuo(path, bd);
                        result = ClsEvaluacion.getArregloResultados(indiv);

                        FormEvaluar evaluar = new FormEvaluar();
                        evaluar.AgregarTitulo(name);
                        evaluar.AgregarTabla(result);
                        evaluar.Show();
                    }
                }
            }
            catch (Exception err)
            {
                MessageBox.Show(err.ToString());
            }
        }
Esempio n. 2
0
        public static ClsIndividuo JSON_Individuo(String file_location, BdVirtual bd)
        {
            if (file_location == "")
            {
                string dir_archivo    = "D:/";
                var    directory      = new DirectoryInfo(dir_archivo);
                var    ultimo_archivo = (from f in directory.GetFiles()
                                         orderby f.LastWriteTime descending
                                         select f).First();
                //Console.WriteLine(ultimo_archivo.FullName);
                file_location = ultimo_archivo.FullName;
            }
            Console.WriteLine(file_location);
            string        path = @"" + file_location;
            ClsEstructura esquema;

            using (StreamReader jsonStream = File.OpenText(path))
            {
                var json = jsonStream.ReadToEnd();
                esquema = JsonConvert.DeserializeObject <ClsEstructura>(json);
            }

            GSuperIndividuo.SetDb(bd, esquema.Turno);///PRUEBA

            ClsSuperIndividuo super = new ClsSuperIndividuo(esquema.SuperIndv, esquema.Turno);

            ClsIndividuo indv = new ClsIndividuo(super, esquema.Horarios);

            return(indv);
        }
Esempio n. 3
0
        // AULA
        private static int[,] HorarioAula(int clvAula, ClsIndividuo obj, Excel.Workbook workBook, Excel.Worksheet workSheet)
        {
            int[,] Horario = new int[TotalHoras, 4];
            int indiceHorario = 0;
            int renglon       = 0;

            for (int i = 0; i < obj._Horarios.GetLength(0); i++)
            {
                renglon = obj._Horarios[i, 0];
                Console.WriteLine("renglon: " + renglon);
                if (obj._Horarios[i, 1] == clvAula)
                {
                    for (int j = 0; j < obj._SuperIndv.ClaveGrupoMateriaDocente.GetLength(0); j++)
                    {
                        if (obj._SuperIndv.ClaveGrupoMateriaDocente[j, 0] == renglon)
                        {
                            Horario[indiceHorario, 0] = obj._Horarios[i, 2];                           // bloque
                            //Horario[indiceHorario, 1] = obj._Horarios[i, 1];                    // aula
                            Horario[indiceHorario, 1] = obj._SuperIndv.ClaveGrupoMateriaDocente[j, 3]; // docente
                            Horario[indiceHorario, 2] = obj._SuperIndv.ClaveGrupoMateriaDocente[j, 1]; // grupo
                            Horario[indiceHorario, 3] = obj._SuperIndv.ClaveGrupoMateriaDocente[j, 2]; // materia
                            indiceHorario++;
                        }
                    }
                }
            }
            return(Horario);
        }
Esempio n. 4
0
        // DOCENTES
        private static int[,] HorarioDocente(int clvDocente, ClsIndividuo obj, Excel.Workbook workBook, Excel.Worksheet workSheet)
        {
            int[,] Horario = new int[TotalHoras, 4];
            int indiceHorario = 0;
            int renglon       = 0;

            for (int i = 0; i < obj._SuperIndv.ClaveGrupoMateriaDocente.GetLength(0); i++)
            {
                renglon = obj._SuperIndv.ClaveGrupoMateriaDocente[i, 0];
                if (obj._SuperIndv.ClaveGrupoMateriaDocente[i, 3] == clvDocente)
                {
                    for (int j = 0; j < obj._Horarios.GetLength(0); j++)
                    {
                        if (obj._Horarios[j, 0] == renglon)
                        {
                            Horario[indiceHorario, 0] = obj._Horarios[j, 2];                           // bloque
                            Horario[indiceHorario, 1] = obj._SuperIndv.ClaveGrupoMateriaDocente[i, 2]; // materia
                            Horario[indiceHorario, 2] = obj._SuperIndv.ClaveGrupoMateriaDocente[i, 1]; // grupo
                            Horario[indiceHorario, 3] = obj._Horarios[j, 1];                           // aula
                            indiceHorario++;
                        }
                    }
                }
            }
            //Horario = OrdenarHorario(Horario);
            return(Horario);
        }
Esempio n. 5
0
        public static void ExportarHorario(ClsIndividuo obj, FormExportar frm)
        {
            try
            {
                Console.WriteLine("Exportando Horario a Excel");

                Excel.Application AppExcel;            // Inicializa la variable para la Aplicación de Excel
                Excel.Workbook    workBook;            // Inicializa la variable para los libros de Excel
                Excel.Worksheet   workSheet;           // Inicializa la variable para las hojas de Excel

                object opc = Type.Missing;
                AppExcel         = new Excel.Application();
                AppExcel.Visible = false;
                workBook         = AppExcel.Workbooks.Add();

                int TotalHojas = obj._SuperIndv.Aulas.GetLength(0) + obj._SuperIndv.Docentes.GetLength(0) + obj._SuperIndv.Grupos.GetLength(0);

                for (int i = 1; i < TotalHojas; i++)    // Agrega Libros según las hojas necesarias
                {
                    workBook.Worksheets.Add(opc);
                }

                for (int i = 0; i < obj._SuperIndv.BloquesDias.GetLength(0); i++)
                {
                    for (int j = 0; j < obj._SuperIndv.BloquesDias[i].GetLength(0); j++)
                    {
                        TotalHoras++;
                    }
                }

                IndiceHoja = 0;
                workSheet  = workBook.Worksheets[1];

                int MaxProgreso = obj._SuperIndv.Aulas.Length + obj._SuperIndv.Grupos.Length + obj._SuperIndv.Docentes.Length;
                frm.Invoke(new MethodInvoker(delegate() { frm.Components(MaxProgreso); }));

                ExportarHorarioGrupos(workBook, workSheet, obj, frm);
                ExportarHorarioDocente(workBook, workSheet, obj, frm);
                ExportarHorarioAula(workBook, workSheet, obj, frm);

                string path = "";
                frm.Invoke(new MethodInvoker(delegate() { path = frm.ProcesoTerminado(); }));
                workBook.SaveAs(path, Excel.XlFileFormat.xlWorkbookNormal);
                workBook.Close(true);
                AppExcel.Quit();

                Console.WriteLine("Horario Exportado con Éxito");
            }
            catch (Exception ex)
            {
                Console.WriteLine("Error al exportar la informacion debido a: " + ex.ToString());
            }
        }
Esempio n. 6
0
        private void Exportar()
        {
            try
            {
                string path = "", name = "";
                using (var dialog = new OpenFileDialog())
                {
                    dialog.Filter = "Json files (*.json)|*.json|Text files (*.txt)|*.txt";
                    //dialog.InitialDirectory = @"D:\";
                    dialog.InitialDirectory = Environment.CurrentDirectory;
                    dialog.Title            = "Seleccione un archivo JSON";
                    if (dialog.ShowDialog() == DialogResult.OK && !string.IsNullOrWhiteSpace(dialog.FileName))
                    {
                        path = dialog.FileName;
                        name = System.IO.Path.GetFileNameWithoutExtension(dialog.FileName);

                        //GSuperIndividuo.SetDb(bd, Turno);
                        ClsIndividuo indiv = ClsTrataJSON.JSON_Individuo(path, bd);

                        FormExportar exportar = new FormExportar();
                        exportar.AgregarTitulo(name);
                        exportar.Show();

                        Thread hilo = new Thread(delegate()
                        {
                            ClsExportar.ExportarHorario(indiv, exportar);
                        });
                        hilo.SetApartmentState(ApartmentState.STA);
                        hilo.Start();
                    }
                }
            }
            catch (Exception err)
            {
                MessageBox.Show(err.ToString());
            }
        }
Esempio n. 7
0
        private static void ExportarHorarioGrupos(Excel.Workbook workBook, Excel.Worksheet workSheet, ClsIndividuo obj, FormExportar frm)
        {
            for (int grupo = 0; grupo < obj._SuperIndv.Grupos.GetLength(0); grupo++)    // se ejecuta según la cantidad de grupos que haya
            {
                Console.WriteLine(" G R U P O : " + grupo);
                int[,] Horario;
                string[,] HorarioCompleto;
                string nombreHoja    = "";
                int    bloqueColocar = 0;
                string letra         = "";
                int    numero        = 0;
                int    bloqueReceso  = 0;
                IndiceHoja++;

                workSheet = workBook.Worksheets[IndiceHoja];   // Se posiciona en la hoja según el índice

                char[] nombreLetras = obj._SuperIndv.DatosGrupos[grupo, 1].ToArray();
                for (int n = 0; n < obj._SuperIndv.DatosGrupos.GetLength(0); n++)
                {
                    if (Int32.Parse(obj._SuperIndv.DatosGrupos[n, 0]) == obj._SuperIndv.Grupos[grupo])
                    {
                        nombreLetras = obj._SuperIndv.DatosGrupos[n, 1].ToArray();
                        if (nombreLetras.Length >= 30)   // por si el nombre sobrepasa los 30 caracteres
                        {
                            for (int i = 0; i < 30; i++)
                            {
                                nombreHoja += nombreLetras[i];
                            }
                        }
                        break;
                    }
                }
                for (int n = 0; n < nombreLetras.Length; n++)
                {
                    nombreHoja += nombreLetras[n];
                }

                workSheet.Name = nombreHoja;   //Asigna el Nombre a las hojas
                frm.Invoke(new MethodInvoker(delegate() { frm.Actualizar(nombreHoja); }));

                ImprimeEncabezadoHoras(workSheet, obj._SuperIndv.Horas, obj._SuperIndv.Dias);

                Horario         = HorarioGrupo(obj._SuperIndv.Grupos[grupo], obj, workBook, workSheet);
                HorarioCompleto = CompletarHorarioGrupo(Horario, obj._SuperIndv.DatosMaterias, obj._SuperIndv.DatosAula, obj._SuperIndv.DatosDocente);

                for (int i = 0; i < obj._SuperIndv.DatosBloques.GetLength(0); i++)        // recorre por días
                {
                    letra        = Letras[i + 1];                                         // letra en la que se va a imprimir
                    bloqueReceso = obj._SuperIndv.BloquesReceso[i];                       // obtiene el bloque de receso del día
                    numero       = 4;                                                     // número desde el cual se comenzará a imprimir
                    for (int j = 0; j < obj._SuperIndv.DatosBloques[i].GetLength(0); j++) // recorre por horas
                    {
                        bloqueColocar = obj._SuperIndv.DatosBloques[i][j];                // obtiene el bloque a colocar en
                        if (bloqueColocar == bloqueReceso)
                        {
                            numero++;
                        }
                        else
                        {
                            for (int m = 0; m < HorarioCompleto.GetLength(0); m++)
                            {
                                if (bloqueColocar == Int32.Parse(HorarioCompleto[m, 0]))
                                {
                                    workSheet.Cells[numero, letra] = HorarioCompleto[m, 1] + "\r\n" + HorarioCompleto[m, 2] + "\r\n" + HorarioCompleto[m, 3];
                                }
                            }
                            workSheet.Cells[numero, letra].Font.Size           = 8;                                                      // Tamaño de la letra
                            workSheet.Cells[numero, letra].Borders.LineStyle   = Excel.XlLineStyle.xlContinuous;                         //Bordes
                            workSheet.Cells[numero, letra].VerticalAlignment   = Microsoft.Office.Interop.Excel.XlHAlign.xlHAlignCenter; // Alineación Vertical
                            workSheet.Cells[numero, letra].HorizontalAlignment = Microsoft.Office.Interop.Excel.XlHAlign.xlHAlignCenter; // Alineación Horizontal
                            numero++;
                        }
                    }
                }
            }
        }
Esempio n. 8
0
        private static void ExportarHorarioDocente(Excel.Workbook workBook, Excel.Worksheet workSheet, ClsIndividuo obj, FormExportar frm)
        {
            for (int docente = 0; docente < obj._SuperIndv.Docentes.GetLength(0); docente++)    // se ejecuta según la cantidad de docentes que haya
            {
                Console.WriteLine(" D O C E N T E : " + docente);
                int[,] Horario;
                string[,] HorarioCompleto;
                string nombreHoja    = "";
                int    bloqueColocar = 0;
                string letra         = "";
                int    numero        = 0;
                int    bloqueReceso  = 0;
                IndiceHoja++;

                workSheet = workBook.Worksheets[IndiceHoja];   // Se posiciona en la hoja según el índice

                nombreHoja     = NombreDocente(obj._SuperIndv.DatosDocente[docente, 1]);
                workSheet.Name = nombreHoja;   //Asigna el Nombre a las hojas

                frm.Invoke(new MethodInvoker(delegate() { frm.Actualizar(nombreHoja); }));

                ImprimeEncabezadoHoras(workSheet, obj._SuperIndv.Horas, obj._SuperIndv.Dias);

                Horario         = HorarioDocente(obj._SuperIndv.Docentes[docente], obj, workBook, workSheet);
                HorarioCompleto = CompletarHorarioDocente(Horario, obj._SuperIndv.DatosMaterias, obj._SuperIndv.DatosGrupos, obj._SuperIndv.DatosAula);

                for (int m = 0; m < Horario.GetLength(0); m++)
                {
                    Console.WriteLine(Horario[m, 0] + " - " + Horario[m, 1] + " - " + Horario[m, 2] + " - " + Horario[m, 3]);
                }

                for (int i = 0; i < obj._SuperIndv.DatosBloques.GetLength(0); i++)
                {
                    letra        = Letras[i + 1];
                    bloqueReceso = obj._SuperIndv.BloquesReceso[i];
                    numero       = 4;
                    for (int j = 0; j < obj._SuperIndv.DatosBloques[i].GetLength(0); j++)
                    {
                        bloqueColocar = obj._SuperIndv.DatosBloques[i][j];
                        if (bloqueColocar == bloqueReceso)
                        {
                            numero++;
                        }
                        else
                        {
                            for (int m = 0; m < HorarioCompleto.GetLength(0); m++)
                            {
                                if (bloqueColocar == Int32.Parse(HorarioCompleto[m, 0]))
                                {
                                    workSheet.Cells[numero, letra] = HorarioCompleto[m, 0] + "\r\n" + HorarioCompleto[m, 1] + "\r\n" + HorarioCompleto[m, 2] + "\r\n" + HorarioCompleto[m, 3];
                                }
                            }
                            workSheet.Cells[numero, letra].Font.Size           = 8;                                                      // Tamaño de la letra
                            workSheet.Cells[numero, letra].Borders.LineStyle   = Excel.XlLineStyle.xlContinuous;                         //Bordes
                            workSheet.Cells[numero, letra].VerticalAlignment   = Microsoft.Office.Interop.Excel.XlHAlign.xlHAlignCenter; // Alineación Vertical
                            workSheet.Cells[numero, letra].HorizontalAlignment = Microsoft.Office.Interop.Excel.XlHAlign.xlHAlignCenter; // Alineación Horizontal
                            numero++;
                        }
                    }
                }
            }
        }