private void RenderReport_directores() { Reportes.reporte_director ds = Session["ds_directores"] as Reportes.reporte_director; ReportViewer viewer = new ReportViewer(); viewer.ProcessingMode = ProcessingMode.Local; viewer.LocalReport.EnableExternalImages = true; viewer.LocalReport.ReportPath = Server.MapPath("~/Aplicativo/Reportes/reporte_director.rdlc"); ReportDataSource detalle = new ReportDataSource("Detalle", ds.Detalle.Rows); viewer.LocalReport.DataSources.Add(detalle); Microsoft.Reporting.WebForms.Warning[] warnings = null; string[] streamids = null; string mimeType = null; string encoding = null; string extension = null; string deviceInfo = null; byte[] bytes = null; deviceInfo = "<DeviceInfo><SimplePageHeaders>True</SimplePageHeaders></DeviceInfo>"; //Render the report bytes = viewer.LocalReport.Render("PDF", deviceInfo, out mimeType, out encoding, out extension, out streamids, out warnings); Session["Reporte"] = bytes; string script = "<script type='text/javascript'>window.open('Reportes/reportes.aspx');</script>"; Page.ClientScript.RegisterClientScriptBlock(this.GetType(), "VentanaPadre", script); }
protected void btn_imprimir_directores_Click(object sender, EventArgs e) { int id_mesa = Convert.ToInt32(((Button)sender).CommandArgument); bool mesa_cerrada = false; using (HabProfDBContainer cxt = new HabProfDBContainer()) { Mesa mesa = cxt.Mesas.FirstOrDefault(pp => pp.mesa_id == id_mesa); if (mesa.mesa_estado == "Cerrada") { Estado_tesina aprobada = cxt.Estados_tesinas.FirstOrDefault(eett => eett.estado_tesina_estado == "Aprobada"); Reportes.reporte_director ds = new Reportes.reporte_director(); foreach (Tesina tesina in mesa.Tesinas) { if (tesina.estado_tesis_id == aprobada.estado_tesina_id) { Reportes.reporte_director.DetalleRow md = ds.Detalle.NewDetalleRow(); md.director_nombre = tesina.Director.Persona.persona_nomyap; md.director_dni = tesina.Director.Persona.persona_dni.ToString(); md.tema_tesina = tesina.tesina_tema; md.tesina_calificacion = tesina.tesina_calificacion_director.ToString(); md.tesina_calificacion_letra = Calificacion_a_texto(tesina.tesina_calificacion ?? 0); md.tesista_nombre = tesina.Tesista.Persona.persona_nomyap; md.tesina_fecha_evaluacion = mesa.mesa_fecha.ToShortDateString(); md.licenciatura_nombre = tesina.Tesista.Persona.Licenciatura.licenciatura_nombre; md.anteco = ""; ds.Detalle.Rows.Add(md); if (tesina.Codirector != null) { Reportes.reporte_director.DetalleRow md_co = ds.Detalle.NewDetalleRow(); md_co.director_nombre = tesina.Codirector.Persona.persona_nomyap; md_co.director_dni = tesina.Codirector.Persona.persona_dni.ToString(); md_co.tema_tesina = tesina.tesina_tema; md_co.tesina_calificacion = tesina.tesina_calificacion_codirector.ToString(); md_co.tesina_calificacion_letra = Calificacion_a_texto(tesina.tesina_calificacion_codirector ?? 0); md_co.tesista_nombre = tesina.Tesista.Persona.persona_nomyap; md_co.tesina_fecha_evaluacion = mesa.mesa_fecha.ToShortDateString(); md_co.licenciatura_nombre = tesina.Tesista.Persona.Licenciatura.licenciatura_nombre; md_co.anteco = "co-"; ds.Detalle.Rows.Add(md_co); } } } mesa_cerrada = true; Session["ds_directores"] = ds; } } if (mesa_cerrada) { RenderReport_directores(); } else { MessageBox.Show(this, "No se pueden imprimir los certificados mientras la mesa no este cerrada.", MessageBox.Tipo_MessageBox.Warning); } }