public static Reporte GetReporte(int id) { Reporte reporte = new Reporte(); Cabecera cabecera = new Cabecera(); List<Parametro> parametros = new List<Parametro>(); List<Filtro> filtros = new List<Filtro>(); Origen origen = new Origen(); string path = "f:\\proyectospuntonet\\reportesfrontend\\ConfiguracionReportes\\Reporte_" + id + ".xml"; XmlDocument xml = OrigenDatos.GetXml(path); XmlNode root = xml.DocumentElement; reporte.Cabecera = cabecera; reporte.ID_Reporte = id; reporte.Cabecera.Descripcion = root.SelectNodes("/Configuracion/Cabecera/Descripcion").Item(0).InnerText; reporte.Cabecera.Nombre = root.SelectNodes("/Configuracion/Cabecera/Nombre").Item(0).InnerText; foreach (XmlNode nodo in root.SelectNodes("/Configuracion/Cabecera/Parametros")) { Parametro param = new Parametro(); param.Nombre = nodo.SelectNodes("Parametro/NombreParametro").Item(0).InnerText; param.OrdenEjecucion = Convert.ToInt16(nodo.SelectNodes("Parametro/OrdenEjecucion").Item(0).InnerText); param.Tipo = (TipoGetDato) Convert.ToInt16(nodo.SelectNodes("Parametro/TipoParametro").Item(0).InnerText); param.Tipodato = Convert.ToInt16(nodo.SelectNodes("Parametro/TipoDato").Item(0).InnerText); parametros.Add(param); } foreach (XmlNode nodo in root.SelectNodes("/Configuracion/Filtros")) { Filtro filtro = new Filtro(); filtro.Nombre = nodo.SelectNodes("Filtro/Nombre").Item(0).InnerText; filtro.Label = nodo.SelectNodes("Filtro/Label").Item(0).InnerText; filtro.TipoOrigen = Convert.ToInt16(nodo.SelectNodes("Filtro/TipoDato").Item(0).InnerText); filtro.LongitudMaxima = Convert.ToInt16(nodo.SelectNodes("Filtro/LongitudMaxima").Item(0).InnerText); filtro.Obligatorio = true;//Convert.ToInt16(nodo.SelectNodes("Filtro/Obligatorio").Item(0).InnerText); filtro.OrigenDatos = nodo.SelectNodes("Filtro/OrigenDatos").Item(0).InnerText; filtros.Add(filtro); } origen.Parametros = parametros; origen.OrigenDatos = root.SelectNodes("/Configuracion/Cabecera/OrigenDatos").Item(0).InnerText; origen.PaginadoAutomatico = Convert.ToInt16(root.SelectNodes("/Configuracion/Cabecera/PaginadoAutomatico").Item(0).InnerText); origen.Tipo = (TipoOrigenDatos) Convert.ToInt16(root.SelectNodes("/Configuracion/Cabecera/TipoOrigen").Item(0).InnerText); ; reporte.Filtros = filtros; reporte.Origen = origen; return reporte; }
protected void Grabar_Click(object sender, EventArgs e) { bool CampohayNuevo = true; bool FiltroHayNuevo = true; //Traigo los datos del reporte. Reporte report = new Reporte(); //Reviso si existe un número, sino doy de alta uno nuevo. if (id_reporte.Value != "") { report.ID_Reporte = Convert.ToInt32(id_reporte.Value); } else { report.ID_Reporte = ReporteData.GetNewID(); //Genero un nuevo numero. } report.Cabecera = new Cabecera(); report.Campos = new List<Campo>(); report.Filtros = new List<Filtro>(); //Tomo los demás datos. report.Cabecera.Nombre = NombreReporte.Text; report.Cabecera.Descripcion = Descripcion.Text; //traigo el origen de datos. Origen origen = new Origen(); //Tipo de origen desde el combo. // string comboTipo = TipoOrigen.SelectedValue; if (PaginadoAutomatico.Checked) origen.PaginadoAutomatico = 1; else origen.PaginadoAutomatico = 0; report.Origen = OrigenDatos1.GetOrigen(); ; // Toma los datos del empty template. TextBox campodbnuevo = (TextBox) Campos.Controls[0].Controls[0].FindControl("CampoBDNuevo"); TextBox titulonuevo = (TextBox)Campos.Controls[0].Controls[0].FindControl("TituloNuevo"); TextBox longitudnuevo = (TextBox)Campos.Controls[0].Controls[0].FindControl("LongitudNuevo"); DropDownList tipocamponuevo = (DropDownList)Campos.Controls[0].Controls[0].FindControl("TipoCampoNuevo"); // Reviso si hay campos nuevos. foreach (GridViewRow r in Campos.Rows) { TextBox titulo = (TextBox)r.FindControl("Titulo"); TextBox campodb = (TextBox)r.FindControl("CampoBD"); TextBox longitud = (TextBox)r.FindControl("Longitud"); DropDownList tipocampo = (DropDownList)r.FindControl("TipoCampo"); } if (CampohayNuevo) { Campo campoNuevo = new Campo(); campoNuevo.CampoDB = campodbnuevo.Text; campoNuevo.Label = titulonuevo.Text; campoNuevo.LongitudMaxima = 1;// Convert.ToInt32(longitudnuevo.Text); campoNuevo.TipoCampo = (TipoCampo) Convert.ToInt16(tipocamponuevo.SelectedValue); report.Campos.Add(campoNuevo); } //Tomamos los filtros // Toma los datos del empty template. TextBox filtronombrenuevo = (TextBox)Filtros.Controls[0].Controls[0].FindControl("NombreNuevo"); TextBox filtrolabelnuevo = (TextBox)Filtros.Controls[0].Controls[0].FindControl("LabelNuevo"); CheckBox filtroobligatorionuevo = (CheckBox)Filtros.Controls[0].Controls[0].FindControl("ObligatorioNuevo"); DropDownList tipofiltronuevo = (DropDownList)Filtros.Controls[0].Controls[0].FindControl("TipoFiltroNuevo"); // Reviso si hay campos nuevos. foreach (GridViewRow r in Filtros.Rows) { // Toma los datos del empty template. TextBox filtronombre = (TextBox)Filtros.Controls[0].Controls[0].FindControl("Nombre"); TextBox filtrolabel = (TextBox)Filtros.Controls[0].Controls[0].FindControl("Label"); CheckBox filtroobligatorio = (CheckBox)Filtros.Controls[0].Controls[0].FindControl("Obligatorio"); DropDownList tipofiltro = (DropDownList)Filtros.Controls[0].Controls[0].FindControl("TipoFiltro"); } if (FiltroHayNuevo) { Filtro filtroNuevo = new Filtro(); filtroNuevo.Nombre = campodbnuevo.Text; filtroNuevo.Label = titulonuevo.Text; filtroNuevo.LongitudMaxima = 1;// Convert.ToInt32(longitudnuevo.Text); filtroNuevo.Obligatorio = false; if (filtroobligatorionuevo.Checked) { filtroNuevo.Obligatorio = true; } //filtroNuevo.OrigenDatos = (TipoCampo)Convert.ToInt16(tipocamponuevo.SelectedValue); //filtroNuevo.TipoOrigen = report.Filtros.Add(filtroNuevo); } ReporteData.SaveReporte(report); }