Пример #1
0
        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);
        }