protected void Page_Init(object sender, EventArgs e) { // it gets an appropiate context (LainsaSciCTX -> web.config) ctx = new LainsaSci("LainsaSciCTX"); // verify if a Usuario is logged usuario = CntWinWeb.IsSomeoneLogged(this, ctx); if (usuario == null) { Response.Redirect("Default.aspx"); } else { Session["UsuarioId"] = usuario.UsuarioId; } if (Request.QueryString["Informe"] != null) { informe = Request.QueryString["Informe"]; switch (informe) { case "RptInventario": RptInventario rptInventario = new RptInventario(); this.Title = "Inventario por instalacion"; if (usuario.Empresa != null) { rptInventario.ReportParameters["Empresa"].Value = usuario.Empresa.EmpresaId; rptInventario.ReportParameters["Empresa"].Visible = false; } ReportViewer1.Report = rptInventario; break; case "RptIncidenciaEmpresa": RptIncidenciaEmpresa rptIncidenciaEmpresa = new RptIncidenciaEmpresa(); this.Title = "Incidencias por empresa"; if (usuario.Empresa != null) { rptIncidenciaEmpresa.ReportParameters["Empresa"].Value = usuario.Empresa.EmpresaId; rptIncidenciaEmpresa.ReportParameters["Empresa"].Visible = false; } ReportViewer1.Report = rptIncidenciaEmpresa; break; } } if (Request.QueryString["Observaciones"] != null) { observaciones = Request.QueryString["Observaciones"]; } if (Request.QueryString["FechaActa"] != null) { fechaActa = DateTime.Parse(Request.QueryString["FechaActa"]); } if (Request.QueryString["ActaNumero"] != null) { actaNumero = Request.QueryString["ActaNumero"]; } if (Request.QueryString["TecnicoResponsable"] != null) { Usuario usu = CntLainsaSci.GetUsuario(int.Parse(Request.QueryString["TecnicoResponsable"]), ctx); tecnicoResponsable = usu.Nombre; } if (Request.QueryString["InstalacionId"] != null) { instalacion = CntLainsaSci.GetInstalacion(int.Parse(Request.QueryString["InstalacionId"]), ctx); if (instalacion == null) { empresa = CntLainsaSci.GetEmpresa(int.Parse(Request.QueryString["EmpresaId"]), ctx); } if (instalacion != null || empresa != null) { switch (informe) { case "RptActa": // este informe es especial y en realidad es un book Plantilla plantilla = CntLainsaSci.GetPlantilla(1, ctx); // la primera plantilla es la de acta. string numeroAutorizado = ConfigurationManager.AppSettings["NumeroAutorizado"]; string contenido = String.Format(plantilla.Contenido, numeroAutorizado, tecnicoResponsable, actaNumero, fechaActa); ReportBook reportBook = new ReportBook(); RptCartaActa rptCartaActa = new RptCartaActa(contenido); reportBook.Reports.Add(rptCartaActa); if (instalacion != null) { RptInformeActa rptInformeActa = new RptInformeActa(instalacion, observaciones, actaNumero, fechaActa, tecnicoResponsable, ctx); reportBook.Reports.Add(rptInformeActa); } else { RptInformeActaEmpresa rptInformeActaEmpresa = new RptInformeActaEmpresa(empresa, observaciones, actaNumero, fechaActa, tecnicoResponsable, ctx); reportBook.Reports.Add(rptInformeActaEmpresa); } ReportViewer1.Report = reportBook; break; } } } else if (Request.QueryString["ProgramaId"] != null) { programa = CntLainsaSci.GetPrograma(int.Parse(Request.QueryString["ProgramaId"]), ctx); if (programa != null) { switch (informe) { case "RptPrograma2": RptPrograma2 rptPrograma2 = new RptPrograma2(programa.ProgramaId, ctx); ReportViewer1.Report = rptPrograma2; break; case "RptRevisionFormulario": RptRevisionFormulario rptRF = new RptRevisionFormulario(programa, ctx); ReportViewer1.Report = rptRF; break; case "RptInformePlanta": RptInformePlanta rptIP = new RptInformePlanta(programa, ctx); ReportViewer1.Report = rptIP; break; } } newRecord = false; } else if (Request.QueryString["EmpresaId"] != null) { empresa = CntLainsaSci.GetEmpresa(int.Parse(Request.QueryString["EmpresaId"]), ctx); if (empresa != null) { desdeFecha = DateTime.Parse(Request.QueryString["DesdeFecha"]); hastaFecha = DateTime.Parse(Request.QueryString["HastaFecha"]); switch (informe) { case "RptResumenEmpresaInstalacion": RptResumenEmpresaInstalacion rpt = new RptResumenEmpresaInstalacion(desdeFecha, hastaFecha, empresa.EmpresaId, int.Parse(Request.QueryString["InstId"]), ctx); ReportViewer1.Report = rpt; break; case "RptFacturableEmpresaInstalacion": RptFacturableEmpresaInstalacion rpt2 = new RptFacturableEmpresaInstalacion(desdeFecha, hastaFecha, empresa.EmpresaId, int.Parse(Request.QueryString["InstId"]), ctx); ReportViewer1.Report = rpt2; break; case "RptResumenEmpresaTipoDispositivo": RptResumenEmpresaTipoDispositivo rptT = new RptResumenEmpresaTipoDispositivo(desdeFecha, hastaFecha, empresa.EmpresaId, int.Parse(Request.QueryString["TipoDispId"]), ctx); ReportViewer1.Report = rptT; break; case "RptFacturableEmpresaTipoDispositivo": RptFacturableEmpresaTipoDispositivo rptT2 = new RptFacturableEmpresaTipoDispositivo(desdeFecha, hastaFecha, empresa.EmpresaId, int.Parse(Request.QueryString["TipoDispId"]), ctx); ReportViewer1.Report = rptT2; break; case "RptResumenEmpresa": RptResumenEmpresa rptE = new RptResumenEmpresa(desdeFecha, hastaFecha, empresa.EmpresaId, int.Parse(Request.QueryString["InstId"]), int.Parse(Request.QueryString["TipoDispId"]), ctx); ReportViewer1.Report = rptE; break; case "RptFacturableEmpresa": RptFacturableEmpresa rptE2 = new RptFacturableEmpresa(desdeFecha, hastaFecha, empresa.EmpresaId, int.Parse(Request.QueryString["InstId"]), int.Parse(Request.QueryString["TipoDispId"]), ctx); ReportViewer1.Report = rptE2; break; } } } else if (Request.QueryString["Filtro"] != null) { List <string> filtro = (List <string>)Session["Filtro"]; string consulta = ""; switch (informe) { case "RptConsultaRevision": if (Request.QueryString["mode"].ToString() == "G") { RptConsultaRevisionGeneral cr = new RptConsultaRevisionGeneral(filtro); ReportViewer1.Report = cr; } break; case "RptConsultaDispositivos": consulta = "Consulta dispositivos. "; if (Session["Consulta"] != null) { consulta += (string)Session["Consulta"]; } this.Title = consulta; if (Request.QueryString["mode"].ToString() == "D") { RptConsultaDispositivos cd = new RptConsultaDispositivos(filtro, consulta); ReportViewer1.Report = cd; } else { RptConsultaDispositivosGeneral cd = new RptConsultaDispositivosGeneral(filtro, consulta); ReportViewer1.Report = cd; } break; case "RptInfConsultaRevision": IList <Revision> lr = new List <Revision>(); foreach (string rid in filtro) { lr.Add(CntLainsaSci.GetRevision(int.Parse(rid), ctx)); } consulta = "Consulta revisiones"; if (Session["Consulta"] != null) { consulta = (string)Session["Consulta"]; } this.Title = consulta; RptInfConsultaRevision icr = new RptInfConsultaRevision(lr, consulta); ReportViewer1.Report = icr; break; } } // control de skin if (Session["Skin"] != null) { RadSkinManager1.Skin = Session["Skin"].ToString(); } }
protected void CrearInforme(Filtro f, string repositorio) { string consulta = string.Empty; Documento documento = new Documento(); documento.Nombre = f.Nombre; documento.Empresa = usuario.Empresa; documento.Instalacion = usuario.Instalacion; documento.Fecha = DateTime.Now; documento.Comentarios = "Informe generado automáticamente"; documento.Extension = "PDF"; ctx.Add(documento); ctx.SaveChanges(); string directorio = repositorio; string nombreFichero = String.Format("{0:000000000}", documento.DocumentoId) + ".PDF"; string fichero = String.Format("{0}\\{1}", directorio, nombreFichero); ReportProcessor reportProcessor = new ReportProcessor(); RenderingResult renderingResult = null; switch (f.Tipo) { case "Dsipositivo": List <string> dispositivos = new List <string>(); //ConsDisp.AllowPaging = false;// disabling paging //ConsDisp.Rebind(); foreach (GridDataItem item in ConsDisp.MasterTableView.Items) { dispositivos.Add(item["DispositivoId"].Text); } Session["Filtro"] = dispositivos; //ConsDisp.AllowPaging = true;// disabling paging //ConsDisp.Rebind(); consulta = "Consulta dispositivos. " + f.Nombre; RptConsultaDispositivos cd = new RptConsultaDispositivos(dispositivos, consulta); renderingResult = reportProcessor.RenderReport("PDF", cd, null); break; case "Revision": List <string> revisiones = new List <string>(); //ConsRev.AllowPaging = false;// disabling paging //ConsRev.Rebind(); foreach (GridDataItem item in ConsRev.MasterTableView.Items) { revisiones.Add(item["RevisionId"].Text); } Session["Filtro"] = revisiones; //ConsRev.AllowPaging = true;// disabling paging //ConsDisp.Rebind(); consulta = "Consulta revisiones. " + f.Nombre; IList <Revision> lr = new List <Revision>(); foreach (string rid in revisiones) { lr.Add(CntLainsaSci.GetRevision(int.Parse(rid), ctx)); } RptInfConsultaRevision icr = new RptInfConsultaRevision(lr, consulta); renderingResult = reportProcessor.RenderReport("PDF", icr, null); break; } FileStream fs = new FileStream(fichero, FileMode.Create); fs.Write(renderingResult.DocumentBytes, 0, renderingResult.DocumentBytes.Length); fs.Close(); }