예제 #1
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++;
                        }
                    }
                }
            }
        }
예제 #2
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++;
                        }
                    }
                }
            }
        }