public void generarBoletin() { /*Consultamos la matricula*/ Matricula objMatricula = new Matricula(); OperacionMatricula objOperMatricula = new OperacionMatricula(ConfigurationManager.ConnectionStrings["estigioacademicoConnectionString"].ConnectionString); Asignacion objAsignacion = new Asignacion(); OperacionAsignacion objOperAsignacion = new OperacionAsignacion(ConfigurationManager.ConnectionStrings["estigioacademicoConnectionString"].ConnectionString); Asistencia objAsistencia = new Asistencia(); OperacionAsistencia objOperAsistencia = new OperacionAsistencia(ConfigurationManager.ConnectionStrings["estigioacademicoConnectionString"].ConnectionString); Indicador objIndicador = new Indicador(); OperacionIndicador objOperIndicador = new OperacionIndicador(ConfigurationManager.ConnectionStrings["estigioacademicoConnectionString"].ConnectionString); Calificacion objCalificacion = new Calificacion(); OperacionCalificacion objOperCalificacion = new OperacionCalificacion(ConfigurationManager.ConnectionStrings["estigioacademicoConnectionString"].ConnectionString); Calificacion_Configuracion objConfiguracion_Calificacion = new Calificacion_Configuracion(); OperacionCalificacion_Configuracion objOperConfiguracion_Calificacion = new OperacionCalificacion_Configuracion(ConfigurationManager.ConnectionStrings["estigioacademicoConnectionString"].ConnectionString); Salon objSalon = new Salon(); OperacionSalon objOperSalon = new OperacionSalon(ConfigurationManager.ConnectionStrings["estigioacademicoConnectionString"].ConnectionString); int periodo = 4; MemoryStream ms = new MemoryStream(); Document document = new Document(PageSize.EXECUTIVE, 10f, 10f, 10f, 10f); PdfWriter writer = PdfWriter.GetInstance(document, ms); document.Open(); Font fontTinyItalic = FontFactory.GetFont("Arial", 7); Font fontEncabezado = FontFactory.GetFont("Arial", 12); float[] porcentajes = { 15f, 45f, 10f, 10f, 10f, 10f }; foreach (GridViewRow row in tbl_Estudiante.Rows) { if (row.RowType == DataControlRowType.DataRow) { CheckBox chkRow = (row.Cells[0].FindControl("chkEstudiante") as CheckBox); if (chkRow.Checked) { objMatricula.id_estudiante = Int64.Parse(row.Cells[1].Text); DataTable dts_Matricula = objOperMatricula.ConsultarMatricula(objMatricula); PdfPTable tabla = new PdfPTable(porcentajes); tabla.WidthPercentage = 100f; PdfPCell celda; Phrase texto; celda = new PdfPCell(); iTextSharp.text.Image image = iTextSharp.text.Image.GetInstance(new Uri("http://academico.itipuentenacional.edu.co/img/logo.png")); image.ScaleAbsolute(40f, 40f); image.Alignment = iTextSharp.text.Image.ALIGN_CENTER; celda.Image = image; celda.Border = Rectangle.NO_BORDER; tabla.AddCell(celda); celda = new PdfPCell(); celda.Colspan = 4; texto = new Phrase(); texto.Font = fontEncabezado; texto.Add("INSTITUTO TÉCNICO INDUSTRIAL FRANCISCO DE PAULA SANTANDER \n\nwww.itipuentenacional.edu.co \n\nINFORME ACADÉMICO FINAL 2014"); celda.Phrase = texto; celda.HorizontalAlignment = PdfPCell.ALIGN_CENTER; celda.VerticalAlignment = PdfPCell.ALIGN_MIDDLE; celda.Border = Rectangle.NO_BORDER; tabla.AddCell(celda); celda = new PdfPCell(); iTextSharp.text.Image image_estudiante = iTextSharp.text.Image.GetInstance(new Uri("http://academico.itipuentenacional.edu.co/" + dts_Matricula.Rows[0].ItemArray[10].ToString().Replace("~/", ""))); image.ScaleAbsolute(10f, 10f); //image.ScalePercent(10f); celda.HorizontalAlignment = PdfPCell.ALIGN_CENTER; celda.VerticalAlignment = PdfPCell.ALIGN_MIDDLE; celda.Image = image_estudiante; celda.AddElement(texto); celda.Border = Rectangle.NO_BORDER; tabla.AddCell(celda); float[] porce = { 15f, 45f, 15f, 15f, 15f }; PdfPTable tbheader = new PdfPTable(porce); tbheader.WidthPercentage = 100f; String[] celdasEncabezado = { "CURSO", "ESTUDIANTE", "DOCUMENTO", "PROMEDIO GENERAL", "ESCALA NACIONAL" }; for (int i = 0; i < celdasEncabezado.Length; i++) { agregarCelda(celdasEncabezado[i], tbheader); } /*CURSO*/ agregarCelda(ddlSalon.SelectedItem.Text, tbheader); /*ESTUDIANTE*/ var nombre_completo = dts_Matricula.Rows[0].ItemArray[7].ToString() + " " + dts_Matricula.Rows[0].ItemArray[6].ToString(); agregarCelda(nombre_completo, tbheader); /*DOCUMENTO*/ agregarCelda(Int64.Parse(row.Cells[1].Text).ToString(), tbheader); /*PROMEDIO GENERAL*/ Calificacion objPromedioGeneral = new Calificacion(); objPromedioGeneral.id_asignacion = int.Parse(dts_Matricula.Rows[0].ItemArray[2].ToString()); objPromedioGeneral.id_calificacion_configuracion = periodo; DataView promedio_general = objOperCalificacion.ConsultarPromedio_General(objPromedioGeneral).DefaultView; promedio_general.RowFilter = "id_estudiante=" + row.Cells[1].Text; GridView tbl_promedio_general = new GridView(); tbl_promedio_general.DataSource = promedio_general; tbl_promedio_general.DataBind(); decimal promedio_g = 0; //promedio periodo Calificacion objCalificacion_Promedio = new Calificacion(); objCalificacion_Promedio.id_estudiante = Int64.Parse(row.Cells[1].Text); objCalificacion_Promedio.id_asignacion = periodo; DataView dtvPromedio_Acumulado = objOperCalificacion.ConsultarPromedio_PeriodoAcumulado(objCalificacion_Promedio).DefaultView; String cal = ""; cal = getpromedioGeneral(Int64.Parse(dts_Matricula.Rows[0].ItemArray[1].ToString())); if (cal.Length > 0) { agregarCelda(String.Format("{0:f2}", cal), tbheader); } else { agregarCelda("0,00", tbheader); } //if (tbl_promedio_general.Rows.Count > 0) //{ // promedio_g = decimal.Parse(tbl_promedio_general.Rows[0].Cells[2].Text); // agregarCelda(String.Format("{0:f2}", promedio_g), tbheader); //} //else { // agregarCelda("0,00", tbheader); //} /*ESCALA NACIONAL*/ agregarCelda(getDesempeño(Convert.ToDecimal(cal)), tbheader); tbheader.SpacingBefore = 10; document.Add(tabla); document.Add(tbheader); tbheader.Rows.Clear(); tabla.Rows.Clear(); tbheader.SetWidths(new float[] { 10, 10, 10, 10, 10 }); agregarCeldaCol("", tbheader, 5); document.Add(tbheader); //Tabla del body tbheader = new PdfPTable(8); float[] medidas = { 25f, 5f, 5f, 5f, 5f, 10f, 10f, 10f }; tbheader.SetWidths(medidas); tbheader.WidthPercentage = 100f; String[] celdasTabla = { "ÁREA", "VALORACIÓN POR PERIODO", "DEFINITIVA", "DESEMPEÑO", "FALLAS ACOMULADAS" }; agregarCeldaRow(celdasTabla[0], tbheader, 2); agregarCeldaCol(celdasTabla[1], tbheader, 4); agregarCeldaRow(celdasTabla[2], tbheader, 2); agregarCeldaRow(celdasTabla[3], tbheader, 2); agregarCeldaRow(celdasTabla[4], tbheader, 2); agregarCelda("1", tbheader, 14083004); agregarCelda("2", tbheader, 14083004); agregarCelda("3", tbheader, 14083004); agregarCelda("4", tbheader, 14083004); document.Add(tbheader); tbheader.Rows.Clear(); //Agregamos los campos de datos de la tabla objAsignacion.id_salon = int.Parse(ddlSalon.SelectedValue.ToString()); DataTable dts = objOperAsignacion.ConsultarAsignacion(objAsignacion); objAsignacion.id_salon = int.Parse(dts_Matricula.Rows[0].ItemArray[8].ToString()); DataTable tecnica = objOperAsignacion.ConsultarAsignacion(objAsignacion); dts.Merge(tecnica); DataView dtv_Asignacion = dts.DefaultView; dtv_Asignacion.Sort = "areadescripcion ASC"; GridView tbl_Asignacion = new GridView(); tbl_Asignacion.DataSource = dtv_Asignacion; tbl_Asignacion.DataBind(); //Datos GridView tbl_Promedio_Acumulado = new GridView(); double promedio_acumulado = 0; Asistencia objAsistencia_2 = new Asistencia(); objAsistencia_2.id_estudiante = Int64.Parse(row.Cells[1].Text); DataView dtvAsistencia_Total = objOperAsistencia.ConsultarAsistencia(objAsistencia_2).DefaultView; GridView tbl_Asistencia_Total = new GridView(); int asistencia_total = 0; List <decimal> calificacionArea = new List <decimal>(); int cont = 0; foreach (GridViewRow dr in tbl_Asignacion.Rows) { Calificacion objCalificacion_Promedios = new Calificacion(); objCalificacion_Promedio.id_estudiante = Int64.Parse(row.Cells[1].Text); String Spromedio_acumulado = ""; dtvAsistencia_Total.RowFilter = "id_asignacion = " + int.Parse(dr.Cells[0].Text); tbl_Asistencia_Total.DataSource = dtvAsistencia_Total; tbl_Asistencia_Total.DataBind(); if (int.Parse(dr.Cells[16].Text) == 11 || int.Parse(dr.Cells[16].Text) == 12) { cont++; if (cont <= 1) { agregarCeldaCol(HttpUtility.HtmlDecode(dr.Cells[15].Text) + "\n\n\n", tbheader, 5); DataView promedioarea = dtvPromedio_Acumulado; GridView proma = new GridView(); //promedioarea.RowFilter = "id_asignacion = " + int.Parse(dr.Cells[0].Text); promedioarea.RowFilter = "idarea = " + dr.Cells[16].Text; proma.DataSource = promedioarea; proma.DataBind(); double promca = 0; for (int h = 0; h < proma.Rows.Count; h++) { promca += double.Parse(proma.Rows[h].Cells[2].Text); } double totalprom = (promca / proma.Rows.Count); agregarCelda(String.Format("{0:f2}", totalprom), tbheader); agregarCelda(getDesempeño(Convert.ToDecimal(totalprom)), tbheader); agregarCelda("", tbheader); calificacionArea.Add(Convert.ToDecimal(totalprom)); } agregarCelda(HttpUtility.HtmlDecode(dr.Cells[7].Text) + "\n\n\n", tbheader, 14085004); } else { if (cont > 0) { agregarCeldaCol("\n", tbheader, 8); } cont = 0; agregarCelda(HttpUtility.HtmlDecode(dr.Cells[7].Text) + "\n\n\n", tbheader, 14083004); } for (int i = 1; i <= 4; i++) { objCalificacion_Promedio.id_asignacion = i; DataView dtvPromedio = objOperCalificacion.ConsultarPromedio_Periodo(objCalificacion_Promedio).DefaultView; dtvPromedio.RowFilter = "id_asignacion = " + int.Parse(dr.Cells[0].Text); GridView tbl_Promedio = new GridView(); tbl_Promedio.DataSource = dtvPromedio; tbl_Promedio.DataBind(); if (tbl_Promedio.Rows.Count > 0) { agregarCelda(tbl_Promedio.Rows[0].Cells[2].Text, tbheader); } else { agregarCelda("0,0", tbheader); } } dtvPromedio_Acumulado.RowFilter = "id_asignacion = " + int.Parse(dr.Cells[0].Text); tbl_Promedio_Acumulado.DataSource = dtvPromedio_Acumulado; tbl_Promedio_Acumulado.DataBind(); for (int j = 0; j < tbl_Promedio_Acumulado.Rows.Count; j++) { promedio_acumulado += double.Parse(tbl_Promedio_Acumulado.Rows[j].Cells[2].Text); } double valor = promedio_acumulado; if (int.Parse(dr.Cells[16].Text) == 11 || int.Parse(dr.Cells[16].Text) == 12) { } else { calificacionArea.Add(Convert.ToDecimal(valor)); } if (valor > 0) { Spromedio_acumulado = String.Format("{0:f2}", valor); } else { Spromedio_acumulado = "0,00"; valor = 0; } promedio_acumulado = 0; agregarCelda(valor + "", tbheader, 14083004); agregarCelda(getDesempeño(Convert.ToDecimal(valor)) + "", tbheader); if (tbl_Asistencia_Total.Rows.Count > 0) { for (int j = 0; j < tbl_Asistencia_Total.Rows.Count; j++) { asistencia_total += int.Parse(tbl_Asistencia_Total.Rows[j].Cells[4].Text); } } else { asistencia_total = 0; } agregarCelda("" + asistencia_total, tbheader); } document.Add(tbheader); tbheader.Rows.Clear(); document.Add(new Paragraph(new Phrase(promovido(calificacionArea.ToArray()), fontTinyItalic)) { Alignment = Element.ALIGN_CENTER }); calificacionArea.Clear(); tabla = new PdfPTable(1); tabla.SpacingBefore = 40f; objSalon.id = int.Parse(ddlSalon.SelectedValue.ToString()); Phrase director = new Phrase(objOperSalon.ConsultarSalon(objSalon).Rows[0].ItemArray[8].ToString(), fontTinyItalic); celda.Phrase = director; celda.HorizontalAlignment = PdfPCell.ALIGN_CENTER; celda.VerticalAlignment = PdfPCell.ALIGN_MIDDLE; celda.Border = PdfPCell.TOP_BORDER; tabla.AddCell(celda); document.Add(tabla); document.NewPage(); } } } document.Close(); writer.Close(); ms.Close(); Response.ContentType = "pdf/application"; Response.AddHeader("content-disposition", "attachment;filename=BoletinFinal.pdf"); Response.OutputStream.Write(ms.GetBuffer(), 0, ms.GetBuffer().Length); }
public void generarBoletin() { /*Consultamos la matricula*/ Matricula objMatricula = new Matricula(); OperacionMatricula objOperMatricula = new OperacionMatricula(ConfigurationManager.ConnectionStrings["estigioacademicoConnectionString"].ConnectionString); Asignacion objAsignacion = new Asignacion(); OperacionAsignacion objOperAsignacion = new OperacionAsignacion(ConfigurationManager.ConnectionStrings["estigioacademicoConnectionString"].ConnectionString); Asistencia objAsistencia = new Asistencia(); OperacionAsistencia objOperAsistencia = new OperacionAsistencia(ConfigurationManager.ConnectionStrings["estigioacademicoConnectionString"].ConnectionString); Indicador objIndicador = new Indicador(); OperacionIndicador objOperIndicador = new OperacionIndicador(ConfigurationManager.ConnectionStrings["estigioacademicoConnectionString"].ConnectionString); Calificacion objCalificacion = new Calificacion(); OperacionCalificacion objOperCalificacion = new OperacionCalificacion(ConfigurationManager.ConnectionStrings["estigioacademicoConnectionString"].ConnectionString); Calificacion_Configuracion objConfiguracion_Calificacion = new Calificacion_Configuracion(); OperacionCalificacion_Configuracion objOperConfiguracion_Calificacion = new OperacionCalificacion_Configuracion(ConfigurationManager.ConnectionStrings["estigioacademicoConnectionString"].ConnectionString); Salon objSalon = new Salon(); OperacionSalon objOperSalon = new OperacionSalon(ConfigurationManager.ConnectionStrings["estigioacademicoConnectionString"].ConnectionString); MemoryStream ms = new MemoryStream(); Document document = new Document(PageSize.LEGAL, 10f, 10f, 10f, 10f); PdfWriter writer = PdfWriter.GetInstance(document, ms); document.Open(); Font fontTinyItalic = FontFactory.GetFont("Arial", 7); Font fontEncabezado = FontFactory.GetFont("Arial", 12); float[] porcentajes = { 15f, 45f, 10f, 10f, 10f, 10f }; foreach (GridViewRow row in tbl_Estudiante.Rows) { if (row.RowType == DataControlRowType.DataRow) { CheckBox chkRow = (row.Cells[0].FindControl("chkEstudiante") as CheckBox); if (chkRow.Checked) { objMatricula.id_estudiante = Int64.Parse(row.Cells[1].Text); DataTable dts_Matricula = objOperMatricula.ConsultarMatricula(objMatricula); PdfPTable tabla = new PdfPTable(porcentajes); tabla.WidthPercentage = 100f; PdfPCell celda; Phrase texto; celda = new PdfPCell(); iTextSharp.text.Image image = iTextSharp.text.Image.GetInstance(new Uri("http://academico.itipuentenacional.edu.co/img/logo.png")); image.ScaleAbsolute(40f, 40f); image.Alignment = iTextSharp.text.Image.ALIGN_CENTER; celda.Image = image; celda.Border = Rectangle.NO_BORDER; tabla.AddCell(celda); celda = new PdfPCell(); celda.Colspan = 4; texto = new Phrase(); texto.Font = fontEncabezado; texto.Add("INSTITUTO TÉCNICO INDUSTRIAL FRANCISCO DE PAULA SANTANDER \n\nwww.itipuentenacional.edu.co \n\nINFORME ACADÉMICO 2014"); celda.Phrase = texto; celda.HorizontalAlignment = PdfPCell.ALIGN_CENTER; celda.VerticalAlignment = PdfPCell.ALIGN_MIDDLE; celda.Border = Rectangle.NO_BORDER; tabla.AddCell(celda); celda = new PdfPCell(); iTextSharp.text.Image image_estudiante = iTextSharp.text.Image.GetInstance(new Uri("http://academico.itipuentenacional.edu.co/" + dts_Matricula.Rows[0].ItemArray[10].ToString().Replace("~/", ""))); image.ScaleAbsolute(10f, 10f); //image.ScalePercent(10f); celda.HorizontalAlignment = PdfPCell.ALIGN_CENTER; celda.VerticalAlignment = PdfPCell.ALIGN_MIDDLE; celda.Image = image_estudiante; celda.AddElement(texto); celda.Border = Rectangle.NO_BORDER; tabla.AddCell(celda); String[] celdasEncabezado = { "CURSO", "ESTUDIANTE", "DOCUMENTO", "PROMEDIO GENERAL", "ESCALA NACIONAL", "PERIODO" }; for (int i = 0; i < celdasEncabezado.Length; i++) { agregarCelda(celdasEncabezado[i], tabla); } /*CURSO*/ agregarCelda(ddlSalon.SelectedItem.Text, tabla); /*ESTUDIANTE*/ var nombre_completo = dts_Matricula.Rows[0].ItemArray[7].ToString() + " " + dts_Matricula.Rows[0].ItemArray[6].ToString(); agregarCelda(nombre_completo, tabla); /*DOCUMENTO*/ agregarCelda(Int64.Parse(row.Cells[1].Text).ToString(), tabla); /*PROMEDIO GENERAL*/ Calificacion objPromedioGeneral = new Calificacion(); objPromedioGeneral.id_asignacion = int.Parse(dts_Matricula.Rows[0].ItemArray[2].ToString()); objPromedioGeneral.id_calificacion_configuracion = int.Parse(ddlPeriodo.SelectedValue.ToString()); DataView promedio_general = objOperCalificacion.ConsultarPromedio_General(objPromedioGeneral).DefaultView; promedio_general.RowFilter = "id_estudiante=" + row.Cells[1].Text; GridView tbl_promedio_general = new GridView(); tbl_promedio_general.DataSource = promedio_general; tbl_promedio_general.DataBind(); decimal promedio_g = 0; if (tbl_promedio_general.Rows.Count > 0) { promedio_g = decimal.Parse(tbl_promedio_general.Rows[0].Cells[2].Text); agregarCelda(String.Format("{0:f2}", promedio_g), tabla); } else { agregarCelda("0,00", tabla); } /*ESCALA NACIONAL*/ agregarCelda(getDesempeño(promedio_g), tabla); /*PERIODO*/ agregarCelda(ddlPeriodo.SelectedItem.Text, tabla); tabla.SpacingBefore = 10; document.Add(tabla); tabla.Rows.Clear(); objAsignacion.id_salon = int.Parse(ddlSalon.SelectedValue.ToString()); DataTable dts = objOperAsignacion.ConsultarAsignacion(objAsignacion); objAsignacion.id_salon = int.Parse(dts_Matricula.Rows[0].ItemArray[8].ToString()); DataTable tecnica = objOperAsignacion.ConsultarAsignacion(objAsignacion); dts.Merge(tecnica); DataView dtv_Asignacion = dts.DefaultView; dtv_Asignacion.Sort = "orden_impresion ASC"; GridView tbl_Asignacion = new GridView(); tbl_Asignacion.DataSource = dtv_Asignacion; tbl_Asignacion.DataBind(); objAsistencia.id_estudiante = Int64.Parse(row.Cells[1].Text); objAsistencia.id_periodo = int.Parse(ddlPeriodo.SelectedValue.ToString()); DataView dtvAsistencia = objOperAsistencia.ConsultarAsistencia(objAsistencia).DefaultView; objConfiguracion_Calificacion.id_periodo = int.Parse(ddlPeriodo.SelectedValue.ToString()); DataTable dta_Configuracion_Calificacion = objOperConfiguracion_Calificacion.ConsultarCalificacion_Configuracion(objConfiguracion_Calificacion); objIndicador.id_grado = int.Parse(dts.Rows[0].ItemArray[11].ToString()); objIndicador.id_anio_escolar_periodo = int.Parse(ddlPeriodo.SelectedValue.ToString()); DataView dtvIndicador = objOperIndicador.ConsultarIndicador(objIndicador).DefaultView; GridView tbl_Indicador = new GridView(); objCalificacion.id_estudiante = Int64.Parse(row.Cells[1].Text); DataView dtvCalificacion = objOperCalificacion.ConsultarCalificacion(objCalificacion).DefaultView; GridView tbl_Calificacion = new GridView(); Calificacion objCalificacion_Promedio = new Calificacion(); objCalificacion_Promedio.id_estudiante = Int64.Parse(row.Cells[1].Text); objCalificacion_Promedio.id_asignacion = int.Parse(ddlPeriodo.SelectedValue.ToString()); DataView dtvPromedio = objOperCalificacion.ConsultarPromedio_Periodo(objCalificacion_Promedio).DefaultView; DataView dtvPromedio_Acumulado = objOperCalificacion.ConsultarPromedio_PeriodoAcumulado(objCalificacion_Promedio).DefaultView; double promedio_acumulado = 0; GridView tbl_Promedio = new GridView(); GridView tbl_Promedio_Acumulado = new GridView(); Asistencia objAsistencia_2 = new Asistencia(); objAsistencia_2.id_estudiante = Int64.Parse(row.Cells[1].Text); DataView dtvAsistencia_Total = objOperAsistencia.ConsultarAsistencia(objAsistencia_2).DefaultView; GridView tbl_Asistencia_Total = new GridView(); int asistencia_total = 0; /*Tenemos que recorrer las notas solo esta el sabeer*/ foreach (GridViewRow dr in tbl_Asignacion.Rows) { dtvAsistencia.RowFilter = "id_asignacion = " + int.Parse(dr.Cells[0].Text); dtvAsistencia_Total.RowFilter = "id_asignacion = " + int.Parse(dr.Cells[0].Text); tbl_Asistencia_Total.DataSource = dtvAsistencia_Total; tbl_Asistencia_Total.DataBind(); GridView tbl_Asistencia = new GridView(); tbl_Asistencia.DataSource = dtvAsistencia; tbl_Asistencia.DataBind(); agregarCelda(HttpUtility.HtmlDecode(dr.Cells[7].Text), tabla, 14083004); agregarCelda("DOCENTE: " + HttpUtility.HtmlDecode(dr.Cells[10].Text), tabla, 14083004); agregarCelda("VALORIZACIÓN", tabla, 14083004); agregarCelda("DEFINITIVA PERIODO", tabla, 14083004); agregarCelda("DEFINITIVA ACUMULADO", tabla, 14083004); agregarCelda("FALLAS PERIODO", tabla, 14083004); String saber = ""; String indicador = ""; String calificacion = ""; String promedio = ""; String Spromedio_acumulado = ""; String asistencia = ""; for (int i = 0; i < dta_Configuracion_Calificacion.Rows.Count; i++) { dtvIndicador.RowFilter = "id_materia =" + dr.Cells[2].Text + " AND id_saber = " + int.Parse(dta_Configuracion_Calificacion.Rows[i].ItemArray[0].ToString()); tbl_Indicador.DataSource = dtvIndicador; tbl_Indicador.DataBind(); dtvCalificacion.RowFilter = "id_asignacion = " + int.Parse(dr.Cells[0].Text) + " AND id_calificacion_configuracion = " + dta_Configuracion_Calificacion.Rows[i].ItemArray[0].ToString(); saber = dta_Configuracion_Calificacion.Rows[i].ItemArray[1].ToString(); /*Agregamos indicadores*/ if (tbl_Indicador.Rows.Count == 1) { indicador = HttpUtility.HtmlDecode(tbl_Indicador.Rows[0].Cells[1].Text); } else { indicador = ""; } /*Agregamos calificaciones*/ tbl_Calificacion.DataSource = dtvCalificacion; tbl_Calificacion.DataBind(); if (tbl_Calificacion.Rows.Count == 1) { calificacion = tbl_Calificacion.Rows[0].Cells[5].Text; } else { calificacion = "0,00"; } dtvPromedio.RowFilter = "id_asignacion = " + int.Parse(dr.Cells[0].Text); tbl_Promedio.DataSource = dtvPromedio; tbl_Promedio.DataBind(); if (tbl_Promedio.Rows.Count == 1) { promedio = tbl_Promedio.Rows[0].Cells[2].Text; } else { promedio = "0,00"; } dtvPromedio_Acumulado.RowFilter = "id_asignacion = " + int.Parse(dr.Cells[0].Text); tbl_Promedio_Acumulado.DataSource = dtvPromedio_Acumulado; tbl_Promedio_Acumulado.DataBind(); for (int j = 0; j < tbl_Promedio_Acumulado.Rows.Count; j++) { promedio_acumulado += double.Parse(tbl_Promedio_Acumulado.Rows[j].Cells[2].Text); } double valor = promedio_acumulado; if (valor > 0) { Spromedio_acumulado = String.Format("{0:f2}", valor); } else { Spromedio_acumulado = "0,00"; valor = 0; } promedio_acumulado = 0; if (tbl_Asistencia.Rows.Count > 0) { asistencia = tbl_Asistencia.Rows[0].Cells[4].Text; } else { asistencia = "0"; } if (i != (dta_Configuracion_Calificacion.Rows.Count - 1)) { agregarCelda(saber, tabla); agregarCeldaJustificado(indicador, tabla); agregarCelda(calificacion, tabla); } else { agregarCeldaRow(saber, tabla, 2); agregarCeldaRowJustificado(indicador, tabla, 2); agregarCeldaRow(calificacion, tabla, 2); for (int k = 0; k < 2; k++) { if (k == 0) { agregarCelda("DESEMPEÑO PERIODO", tabla, 14083004); agregarCelda("DESEMPEÑO ACUMULADO", tabla, 14083004); agregarCelda("FALLAS ACUMULADAS", tabla, 14083004); } else { agregarCelda(getDesempeño(Convert.ToDecimal(promedio)), tabla); agregarCelda(getDesempeño(Convert.ToDecimal(valor)), tabla); if (tbl_Asistencia_Total.Rows.Count > 0) { for (int j = 0; j < tbl_Asistencia_Total.Rows.Count; j++) { asistencia_total += int.Parse(tbl_Asistencia_Total.Rows[j].Cells[4].Text); } } else { asistencia_total = 0; } agregarCelda("" + asistencia_total, tabla); } } } if (i == 0) { agregarCeldaRow(promedio, tabla, 2); agregarCeldaRow(Spromedio_acumulado, tabla, 2); agregarCeldaRow(asistencia, tabla, 2); } } } document.Add(tabla); if (tbl_promedio_general.Rows.Count > 0) { document.Add(new Paragraph(new Phrase("EL ESTUDIANTE HA OCUPADO EL PUESTO " + tbl_promedio_general.Rows[0].Cells[0].Text, fontTinyItalic)) { Alignment = Element.ALIGN_CENTER }); } tabla = new PdfPTable(1); tabla.SpacingBefore = 40f; objSalon.id = int.Parse(ddlSalon.SelectedValue.ToString()); Phrase director = new Phrase(objOperSalon.ConsultarSalon(objSalon).Rows[0].ItemArray[8].ToString(), fontTinyItalic); celda.Phrase = director; celda.HorizontalAlignment = PdfPCell.ALIGN_CENTER; celda.VerticalAlignment = PdfPCell.ALIGN_MIDDLE; celda.Border = PdfPCell.TOP_BORDER; tabla.AddCell(celda); document.Add(tabla); document.NewPage(); } } } document.Close(); writer.Close(); ms.Close(); Response.ContentType = "pdf/application"; Response.AddHeader("content-disposition", "attachment;filename=Boletin.pdf"); Response.OutputStream.Write(ms.GetBuffer(), 0, ms.GetBuffer().Length); }