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()); } }
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); }
// 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); }
// 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); }
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()); } }
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()); } }
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++; } } } } }
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++; } } } } }