Пример #1
0
        public Crear_Proyecto_Form()
        {
            try
            {
                InitializeComponent();
                this.ControlBox = false;
                criterioCbx.SelectedIndex = 0;
                newProject = new PROYECTO();
                confianzaTextBox.Text = "95";
                limiteInfTxt.Text = "0,1";
                areaFustalesTxt.Text = "1";
                factorFormaTxt.Text = "0,65";
                areaMuestrearTxt.Text = "0";
                numeroParcelasMuestraTxt.Text = "0";
                numeroParcelasTxt.Text = "0";
                AreaTotalTxt.Text = "0";
                tamParcelaTxt.Text = "0";
                formulate = new FormulateBL(Program.ContextData);
                formulaBS.DataSource = formulate.GetFormulates();
                newProject.NROFORMULA = formulaBS.Count != 0 ? ((FORMULA)formulaBS.Current).NROFORMULA : Guid.Empty;
                project = new ProjectBL(Program.ContextData);
                estratoDGW.Columns[2].DefaultCellStyle.Format = "0.000##";
                typeExample = new TypeSampleDesignBl(Program.ContextData);
                objetiveInventory = new ObjectiveInventoryBL(Program.ContextData);
                stratum = new StratumBL(Program.ContextData);
                species = new SpeciesBL(Program.ContextData);
                costBL = new CostBL(Program.ContextData);
                objetivoInventarioBS.DataSource = objetiveInventory.GetObjectiveInventories();
                newProject.NOMBRETIPOINV = objetivoInventarioBS.Count != 0 ? ((OBJETIVOINVENTARIO)objetivoInventarioBS.Current).NOMBRETIPOINV : null;
                tipoDisenoBS.DataSource = typeExample.GetTypeSampleDesignList();
                newProject.NOMTIPODISEMUEST = tipoDisenoBS.Count != 0 ? ((TIPODISENOMUESTRAL)tipoDisenoBS.Current).NOMTIPODISEMUEST : null;
                estratoBS.DataSource = stratum.GetStratums();
                estratoDGW.DataSource = estratoBS;
                especieBS.DataSource = species.GetSpecies();
                especiesDGW.DataSource = especieBS;
                proyectoBS.DataSource = project.GetProjectsFree(null);
                proyectoDGW.DataSource = proyectoBS;
                costoBS.DataSource = costBL.GetCosts();
                costoDGW.DataSource = costoBS;
                listProjectsByStage = new List<PROYECTOSPORETAPA>();
                tipoDisenoCbx.SelectedValue = "SI";
                TipoProyectoCbx.SelectedIndex = 0;
                nuevoProyectoBS.DataSource = newProject;

                foreach (Control ctl in crearProyectoTab.TabPages["costosTabP"].Controls) ctl.Enabled = true;
            }
            catch (Exception ex)
            {
                Error_Form errorForm = new Error_Form(ex.Message);
                errorForm.MdiParent = ParentForm;
                errorForm.Show();
            }
        }
Пример #2
0
 public Abrir_Formulario_Form()
 {
     try {
         InitializeComponent();
         form = new FormBL(Program.ContextData);
         stratum = new StratumBL(Program.ContextData);
         project = new ProjectBL(Program.ContextData);
         List<FORMULARIO> formulariosProyecto = ((PROYECTO)Program.Cache.Get("project")).FORMULARIO.ToList();
         formularioBS.DataSource = formulariosProyecto;
         formularioDGW.DataSource = formularioBS;
         estratosBS.DataSource = stratum.GetStratums();
         criterioCbx.SelectedIndex = 0;
     }
     catch (Exception ex)
     {
         Error_Form er = new Error_Form(ex.Message);
         er.MdiParent = this.MdiParent;
         er.Show();
     }
 }
        public Crear_Editar_Formulario_Form(FORMULARIO f)
        {
            InitializeComponent();
            modified = false;
            if (f == null) newForm = new FORMULARIO();
            else newForm = f;

            project = new ProjectBL(Program.ContextData);
            species = new SpeciesBL(Program.ContextData);
            stratums = new StratumBL(Program.ContextData);
            quality = new QualityBL(Program.ContextData);
            state = new StateBL(Program.ContextData);
            form = new FormBL(Program.ContextData);
            lineInv = new InventoryLineBL(Program.ContextData);
            lineRegen = new  RegenerationLineBL(Program.ContextData);
            lineNonTimber = new NonTimberLineBL(Program.ContextData);
            typeUses = new TypeUseBL(Program.ContextData);

            int countEspecies = ((PROYECTO)Program.Cache.Get("project")).ESPECIE.ToList().Count;
            if (countEspecies != 0) especieBS.DataSource = ((PROYECTO)Program.Cache.Get("project")).ESPECIE.ToList().OrderBy(e => e.NOMCOMUN);
            else
            {
                MessageBox.Show("No existen especies asociadas a este proyecto, seleccione uno o mas especies.", "Parametros insuficiente.", MessageBoxButtons.OK, MessageBoxIcon.Information);
                this.Close();
            }

            List<ESTRATO> listStratums = new List<ESTRATO>();
            foreach(LISTADODEESTRATOS list in ((PROYECTO)Program.Cache.Get("project")).LISTADODEESTRATOS)
            {
                listStratums.Add(list.ESTRATO);
            }
            estratoBS.DataSource =listStratums;
            if (estratoBS.Count != 0) estratoCbx.SelectedItem = (ESTRATO)estratoBS.Current;
            else estratoBS.Add(new ESTRATO() { DESCRIPESTRATO = "Diseño muestral simple." });

            calidadBS.DataSource = quality.GetQualities();

            estadoSanitarioBS.DataSource = state.GetStates();

            tipoUsoBS.DataSource=typeUses.GetTypeUse();
            tipoDeUsosLbc.DataSource = tipoUsoBS;
            tipoDeUsosLbc.DisplayMember ="DESCRIPCION";
            tipoDeUsosLbc.ValueMember = "NOMBRETIPOUSO";

            List<KeyValuePair<string, string>> data = new List<KeyValuePair<string, string>>();
            data.Add(new KeyValuePair<string, string>("BFB", "Bifurcacion Abajo de la A.P."));
            data.Add(new KeyValuePair<string, string>("NBF", "Ninguna Bifurcacion"));

            tipoArbolCbx.DataSource = data;
            tipoArbolCbx.DisplayMember = "Value";
            tipoArbolCbx.ValueMember = "Key";
            tipoArbolCbx.SelectedValue = "NBF";

            newLineNoTimber =  new LINEANOMADERABLES();

            if (f == null)
            {
                noMaderableBS.DataSource = new List<LINEANOMADERABLES>();
                regeneracionBS.DataSource = new List<LINEAREGENERACION>();
                lineaInvBS.DataSource = new List<LINEAINVENTARIO>();
                USUARIO user = (USUARIO)Program.Cache.Get("user");
                PROYECTO p = (PROYECTO)Program.Cache.Get("project");
                responsableTxt.Text = user.NOMBRES + " " + user.APELLIDOS;
                proyectoTxt.Text = p.LUGAR;
            }
            else
            {
                noMaderableBS.DataSource = newForm.LINEANOMADERABLES.ToList();
                regeneracionBS.DataSource = newForm.LINEAREGENERACION.ToList();
                lineaInvBS.DataSource = newForm.LINEAINVENTARIO.ToList();
                responsableTxt.Text = f.USUARIO.NOMBRES + " " + f.USUARIO.APELLIDOS;
                proyectoTxt.Text = f.PROYECTO.LUGAR;
                datosTabControl.Enabled = true;
                guardarformularioBtn.Text = "Actualizar formulario";
                finalDpk.Enabled = true;
                finalDpk.Value = (System.DateTime)newForm.HORAFINAL;
                inicioDpk.Enabled = false;
                this.Text = "Editando formulario e introduciendo datos";
                lineaInvBS.AddNew();
                regeneracionBS.AddNew();
                noMaderableBS.AddNew();
            }

            PROYECTO py = (PROYECTO)Program.Cache.Get("project");
            if (py.TIPODISENOMUESTRAL.NOMTIPODISEMUEST.ToString() == "SI")
            {
                estratoCbx.Enabled = false;
            }
            if(f!=null)formularioBS.DataSource = f;
            else formularioBS.DataSource = newForm;

            modified = true;
        }
Пример #4
0
        public decimal returnweight(string nameStratum, int p)
        {
            excel.Worksheet hojas_trabajoAux;
            excel.Range exlRangeAux;

            hojas_trabajoAux = (excel.Worksheet)libros_trabajo.Worksheets.get_Item(p);
            exlRangeAux = hojas_trabajo.UsedRange;
            //Recorremos el archivo excel como si fuera una matriz
            //leemos las especies que se encuentran en la hoja
            ProjectBL PyBL = new ProjectBL(Program.ContextData);
            StratumBL strBL = new StratumBL(Program.ContextData);
            string str = "";
            if (newProject != null)
            {
                for (int i = 2; i <= exlRange.Rows.Count; i++)
                {
                    str = (exlRange.Cells[i, 2] as excel.Range).Value + "";
                    if (str != "")
                    {
                        if (str.Equals(nameStratum))
                        {
                            string W = (exlRange.Cells[i, 2] as excel.Range).Value + "";
                            return decimal.Parse(W.Replace(".", ","));
                        }
                    }
                }
            }
            return 0;
        }
Пример #5
0
        public Actualizar_Proyectos_Form()
        {
            try
            {
                InitializeComponent();
                this.ControlBox = false;
                project = new ProjectBL(Program.ContextData);
                typeExample = new TypeSampleDesignBl(Program.ContextData);
                objetiveInventory = new ObjectiveInventoryBL(Program.ContextData);
                stratum = new StratumBL(Program.ContextData);
                species = new SpeciesBL(Program.ContextData);
                form = new FormBL(Program.ContextData);
                formulateBL = new FormulateBL(Program.ContextData);
                costBL = new CostBL(Program.ContextData);

                PROYECTO p = (PROYECTO)Program.Cache.Get("project");

                proyectoBS.DataSource = p;

                proyectosBS.DataSource = project.GetProjects(p);
                proyectoDGW.DataSource = proyectosBS;

                objetivoInventarioBS.DataSource = objetiveInventory.GetObjectiveInventories();
                tipoObjetivoCbx.DataSource = objetivoInventarioBS;
                List<KeyValuePair<string, string>> data = new List<KeyValuePair<string, string>>();
                data.Add(new KeyValuePair<string, string>("IN", "Independiente"));
                data.Add(new KeyValuePair<string, string>("CR", "Contenedor"));
                TipoProyectoCbx.DataSource = data;
                TipoProyectoCbx.DisplayMember = "Value";
                TipoProyectoCbx.ValueMember = "Key";
                TipoProyectoCbx.SelectedValue = p.TIPOPROYECTO;

                criterioCbx.SelectedIndex = 0;
                tipoDisenoBS.DataSource = typeExample.GetTypeSampleDesignList();
                tipoDisenoCbx.DataSource = tipoDisenoBS;

                especieBS.DataSource = species.GetSpecies();
                especiesDGW.DataSource = especieBS;

                formulariosBS.DataSource = p.FORMULARIO;
                formulariosDGW.DataSource = formulariosBS;

                costoBS.DataSource = costBL.GetCosts();
                costoDGW.DataSource = costoBS;

                //formulaBS.DataSource = formulateBL.GetFormulates();
                //formularComboBox.DataSource = formulaBS;
                formularComboBox.DataSource = formulateBL.GetFormulates();
                formularComboBox.SelectedValue = p.NROFORMULA;

                //formularComboBox.SelectedItem = p.FORMULA;
                expresionTxt.Text = p.FORMULA.EXPRESION;

                estratoBS.DataSource = stratum.GetStratums();
                estratoDGW.DataSource = estratoBS;

                numeroEtapasTxt.Text = p.ETAPA.ToString();

                confianzaTxt.Text = p.CONFIANZA.ToString();
                tamParcelaTxt.Text = p.TAMANO.ToString();
                numeroParcelasTxt.Text = p.NUMEROPARCELAS.ToString();
                numeroParcelasMuestraTxt.Text = p.NUMEROPARCELASAMUESTREAR.ToString();
                limiteInfTxt.Text = p.LIMITINFDAP.ToString();
                intMuestreoTxt.Text = p.INTMUE.ToString();
                AreaTotalTxt.Text = p.SUPTOT.ToString();
                areaMuestrearTxt.Text = p.SUPMUE.ToString();
                areaFustalesTxt.Text = p.AREAFUSTALESPORPARCELA.ToString();
                factorFormaTxt.Text = p.FACTORDEFORMA.ToString();

                this.modificate = false;
            }
            catch (Exception ex)
            {
                Error_Form errorForm = new Error_Form(ex.Message);
                errorForm.MdiParent = ParentForm;
                errorForm.Show();
            }
        }
Пример #6
0
        public Ver_Reporte_Form(List<SampleDesignItem> datos, List<string> opciones)
        {
            InitializeComponent();
            try
            {
                tStudentTable = new TStudentBL(Program.ContextData);
                stratums = new StratumBL(Program.ContextData);
                project = new PROYECTO();
                PROYECTO currentProject = (PROYECTO)Program.Cache.Get("project");
                //Cargando datos del proyecto al reporte
                if (project != null)
                {
                    TypeSampleDesignBl tipoDiseno = new TypeSampleDesignBl(Program.ContextData);
                    ObjectiveInventoryBL objetivoInventario = new ObjectiveInventoryBL(Program.ContextData);
                    project.NOMTIPODISEMUEST = tipoDiseno.GetTypeSampleDesign(currentProject.NOMTIPODISEMUEST).DESCRIPTIPODISEMUEST;
                    project.NOMBRETIPOINV = objetivoInventario.GetObjectiveInventory(currentProject.NOMBRETIPOINV).DESCRIPOBJETINV;
                    project.INTMUE = Math.Round(currentProject.INTMUE, 3);
                    project.TAMANO = Math.Round(currentProject.TAMANO, 3);
                    project.DESCRIPCION = currentProject.DESCRIPCION;
                    project.LUGAR = currentProject.LUGAR;
                    project.FECHA = currentProject.FECHA;
                    project.SUPMUE = Math.Round(currentProject.SUPMUE, 3);
                    project.SUPTOT = Math.Round(currentProject.SUPTOT, 3);
                    Decimal confianza = currentProject.CONFIANZA != null ? (decimal)currentProject.CONFIANZA : 0;
                    project.CONFIANZA = Math.Round(confianza, 3);
                    this.estratificado = currentProject.LISTADODEESTRATOS.Count != 0 ? true : false;
                    proyectoBS.DataSource = project;
                }
                Dictionary<string, object> resultados = new Dictionary<string, object>();
                if (datos.Count != 0)
                {
                    double tamanoParcela = project != null ? (double)project.TAMANO : 1;
                    double totalParcelas = project != null ? (int)(project.SUPTOT / project.TAMANO) : 0;
                    int totalParcelasMuestra = datos.Count;
                    double superficieTotal =  project != null ?(double)project.SUPTOT:0;
                    RESULTADOMUESTREO resultado;
                    TOTALESMUESTREOESTRATIFICADOS totales;
                    TSTUDENT resulttStudent = tStudentTable.GetTStudent((decimal)(1 - currentProject.CONFIANZA / 100), (totalParcelasMuestra - 1));
                    TSTUDENT tStudent = resulttStudent != null ? resulttStudent : new TSTUDENT();
                    if (!estratificado)
                    {
                        //
                        SampleDesign diseno = new SampleDesign(currentProject, tStudent, datos, totalParcelasMuestra, totalParcelas, 0);
                        resultados = diseno.Execute(0);
                        //Cargando resultado de los datos al reporte
                        if (opciones.Contains("NA"))
                        {
                            resultado = new RESULTADOMUESTREO();
                            resultado.VARIABLE = "Numero de arboles (#)";
                            resultado.TOTAL = superficieTotal * Math.Round((double)resultados["Mean"], 3);
                            resultado.PROMEDIO = Math.Round((double)resultados["Mean"], 3);
                            resultado.DESVIACIONESTANDAR = Math.Round((double)resultados["StandardDeviation"], 3);
                            resultado.COEFICIENTEDEVARIACION = Math.Round((double)resultados["VariationCoefficient"], 3);
                            resultado.ERRORDESVIACION = Math.Round((double)resultados["StandardError"], 3);
                            resultado.ERRORABSOLUTOMUESTREO = Math.Round((double)resultados["AbsoulteErrorSample"], 3);
                            resultado.LIMITEINF = Math.Round((double)resultados["LowLimit"], 3);
                            resultado.LIMITESUP = Math.Round((double)resultados["HightLimit"], 3);
                            resultado.ERRORRELATIVO = Math.Round((double)resultados["RelativeErrorSample"], 3);
                            resultadosBS.Add(resultado);
                        }
                        if (opciones.Contains("AB"))
                        {
                            resultados = diseno.Execute(3);
                            resultado = new RESULTADOMUESTREO();
                            resultado.VARIABLE = "Area Basal (Mtrs2)";
                            resultado.TOTAL = superficieTotal * Math.Round((double)resultados["Mean"], 3);
                            resultado.PROMEDIO = Math.Round((double)resultados["Mean"], 3);
                            resultado.DESVIACIONESTANDAR = Math.Round((double)resultados["StandardDeviation"], 3);
                            resultado.COEFICIENTEDEVARIACION = Math.Round((double)resultados["VariationCoefficient"], 3);
                            resultado.ERRORDESVIACION = Math.Round((double)resultados["StandardError"], 3);
                            resultado.ERRORABSOLUTOMUESTREO = Math.Round((double)resultados["AbsoulteErrorSample"], 3);
                            resultado.LIMITEINF = Math.Round((double)resultados["LowLimit"], 3);
                            resultado.LIMITESUP = Math.Round((double)resultados["HightLimit"], 3);
                            resultado.ERRORRELATIVO = Math.Round((double)resultados["RelativeErrorSample"], 3);
                            resultadosBS.Add(resultado);
                        }
                        if (opciones.Contains("VC"))
                        {
                            resultados = diseno.Execute(1);
                            resultado = new RESULTADOMUESTREO();
                            resultado.VARIABLE = "Volumen Comercial (Mtrs3)";
                            resultado.TOTAL = superficieTotal * Math.Round((double)resultados["Mean"], 3);
                            resultado.PROMEDIO = Math.Round((double)resultados["Mean"], 3);
                            resultado.DESVIACIONESTANDAR = Math.Round((double)resultados["StandardDeviation"], 3);
                            resultado.COEFICIENTEDEVARIACION = Math.Round((double)resultados["VariationCoefficient"], 3);
                            resultado.ERRORDESVIACION = Math.Round((double)resultados["StandardError"], 3);
                            resultado.ERRORABSOLUTOMUESTREO = Math.Round((double)resultados["AbsoulteErrorSample"], 3);
                            resultado.LIMITEINF = Math.Round((double)resultados["LowLimit"], 3);
                            resultado.LIMITESUP = Math.Round((double)resultados["HightLimit"], 3);
                            resultado.ERRORRELATIVO = Math.Round((double)resultados["RelativeErrorSample"], 3);
                            resultadosBS.Add(resultado);
                        }
                        if (opciones.Contains("VT"))
                        {
                            resultados = diseno.Execute(2);
                            resultado = new RESULTADOMUESTREO();
                            resultado.VARIABLE = "Volumen Total (Mtrs3)";
                            resultado.TOTAL = superficieTotal * Math.Round((double)resultados["Mean"], 3);
                            resultado.PROMEDIO = Math.Round((double)resultados["Mean"], 3);
                            resultado.DESVIACIONESTANDAR = Math.Round((double)resultados["StandardDeviation"], 3);
                            resultado.COEFICIENTEDEVARIACION = Math.Round((double)resultados["VariationCoefficient"], 3);
                            resultado.ERRORDESVIACION = Math.Round((double)resultados["StandardError"], 3);
                            resultado.ERRORABSOLUTOMUESTREO = Math.Round((double)resultados["AbsoulteErrorSample"], 3);
                            resultado.LIMITEINF = Math.Round((double)resultados["LowLimit"], 3);
                            resultado.LIMITESUP = Math.Round((double)resultados["HightLimit"], 3);
                            resultado.ERRORRELATIVO = Math.Round((double)resultados["RelativeErrorSample"], 3);
                            resultadosBS.Add(resultado);
                        }
                    }
                    else
                    {
                        //Cargar datos del analisis de los datos estratificados al proyecto
                        SampleDesign diseno = new SampleDesign(currentProject, tStudent, datos, totalParcelasMuestra, totalParcelas, 1);
                        //Cargando resultado de los datos al reporte
                        Dictionary<string, object> resultadosTemporales = null;
                        if (opciones.Contains("NA"))
                        {
                            resultados = diseno.Execute(0);
                            foreach (KeyValuePair<string, object> resultStratum in resultados)
                            {
                                resultadosTemporales = (Dictionary<string, object>)resultStratum.Value;
                                resultado = new RESULTADOMUESTREO();
                                if (resultStratum.Key != "totales")
                                {
                                    ESTRATO stratum = stratums.GetStratum(int.Parse(resultStratum.Key));
                                    resultado.ESTRATO = stratum != null ? stratum.DESCRIPESTRATO : resultStratum.Key;
                                    resultado.PESOESTRATO = Math.Round((double)resultadosTemporales["Weight"], 3);
                                    resultado.VARIABLE = "Numero de arboles (#)";
                                    resultado.N = resultadosTemporales["N"].ToString();
                                    resultado.TOTAL = totalParcelas * Math.Round((double)resultadosTemporales["Mean"], 3);
                                    resultado.TOTALPORHECTAREA = resultado.TOTAL / (double)currentProject.SUPTOT;
                                    resultado.PROMEDIO = Math.Round((double)resultadosTemporales["Mean"], 3);
                                    resultado.DESVIACIONESTANDAR = Math.Round((double)resultadosTemporales["StandardDeviation"], 3);
                                    resultado.COEFICIENTEDEVARIACION = Math.Round((double)resultadosTemporales["VariationCoefficient"], 3);
                                    resultado.ERRORDESVIACION = Math.Round((double)resultadosTemporales["StandardError"], 3);
                                    resultado.ERRORABSOLUTOMUESTREO = Math.Round((double)resultadosTemporales["AbsoulteErrorSample"], 3);
                                    resultado.LIMITEINF = Math.Round((double)resultadosTemporales["LowLimit"], 3);
                                    resultado.LIMITESUP = Math.Round((double)resultadosTemporales["HightLimit"], 3);
                                    resultado.ERRORRELATIVO = Math.Round((double)resultadosTemporales["RelativeErrorSample"], 3);
                                    resultadosBS.Add(resultado);
                                }
                            }
                            //TODO:añadir total los cuales se encuntran al final
                            resultadosTemporales = (Dictionary<string, object>)resultados.Last().Value;
                            totales = new TOTALESMUESTREOESTRATIFICADOS();
                            totales.VARIABLE = "Numero de arboles (#)";
                            totales.TOTALPROMEDIOESTRATIFICADO = Math.Round((double)resultadosTemporales["Mean"], 3);
                            totales.TOTALDESESTANDARESTRATIFICADO = Math.Round((double)resultadosTemporales["StandardError"], 3);
                            totales.TOTALERRORMUESTREO = Math.Round((double)resultadosTemporales["AbsoulteErrorSample"], 3);
                            totales.TOTALERRRORELATIVO = Math.Round((double)resultadosTemporales["RelativeErrorSample"], 3);
                            totalEstratificadoBS.Add(totales);
                        }
                        if (opciones.Contains("AB"))
                        {
                            resultados = diseno.Execute(3);
                            //Cargando resultado de los datos al reporte
                            foreach (KeyValuePair<string, object> resultStratum in resultados)
                            {
                                resultadosTemporales = (Dictionary<string, object>)resultStratum.Value;
                                resultado = new RESULTADOMUESTREO();
                                if (resultStratum.Key != "totales")
                                {
                                    ESTRATO stratum = stratums.GetStratum(int.Parse(resultStratum.Key));
                                    resultado.ESTRATO = stratum != null ? stratum.DESCRIPESTRATO : resultStratum.Key;
                                    resultado.PESOESTRATO = Math.Round((double)resultadosTemporales["Weight"], 3);
                                    resultado.N = resultadosTemporales["N"].ToString();
                                    resultado.VARIABLE = "Area Basal (Mtrs2)";
                                    resultado.TOTAL = totalParcelas * Math.Round((double)resultadosTemporales["Mean"], 3);
                                    resultado.TOTALPORHECTAREA = resultado.TOTAL / (double)currentProject.SUPTOT;
                                    resultado.PROMEDIO = Math.Round((double)resultadosTemporales["Mean"], 3);
                                    resultado.DESVIACIONESTANDAR = Math.Round((double)resultadosTemporales["StandardDeviation"], 3);
                                    resultado.COEFICIENTEDEVARIACION = Math.Round((double)resultadosTemporales["VariationCoefficient"], 3);
                                    resultado.ERRORDESVIACION = Math.Round((double)resultadosTemporales["StandardError"], 3);
                                    resultado.ERRORABSOLUTOMUESTREO = Math.Round((double)resultadosTemporales["AbsoulteErrorSample"], 3);
                                    resultado.LIMITEINF = Math.Round((double)resultadosTemporales["LowLimit"], 3);
                                    resultado.LIMITESUP = Math.Round((double)resultadosTemporales["HightLimit"], 3);
                                    resultado.ERRORRELATIVO = Math.Round((double)resultadosTemporales["RelativeErrorSample"], 3);
                                    resultadosBS.Add(resultado);
                                }
                            }
                            resultadosTemporales = (Dictionary<string, object>)resultados.Last().Value;
                            totales = new TOTALESMUESTREOESTRATIFICADOS();
                            totales.VARIABLE = "Area Basal (Mtrs2)";
                            totales.TOTALPROMEDIOESTRATIFICADO = Math.Round((double)resultadosTemporales["Mean"], 3);
                            totales.TOTALDESESTANDARESTRATIFICADO = Math.Round((double)resultadosTemporales["StandardError"], 3);
                            totales.TOTALERRORMUESTREO = Math.Round((double)resultadosTemporales["AbsoulteErrorSample"], 3);
                            totales.TOTALERRRORELATIVO = Math.Round((double)resultadosTemporales["RelativeErrorSample"], 3);
                            totalEstratificadoBS.Add(totales);
                        }
                        if (opciones.Contains("VC"))
                        {
                            resultados = diseno.Execute(1);
                            //Cargando resultado de los datos al reporte
                            foreach (KeyValuePair<string, object> resultStratum in resultados)
                            {
                                resultadosTemporales = (Dictionary<string, object>)resultStratum.Value;
                                resultado = new RESULTADOMUESTREO();
                                if (resultStratum.Key != "totales")
                                {
                                    ESTRATO stratum = stratums.GetStratum(int.Parse(resultStratum.Key));
                                    resultado.ESTRATO = stratum != null ? stratum.DESCRIPESTRATO : resultStratum.Key;
                                    resultado.PESOESTRATO = Math.Round((double)resultadosTemporales["Weight"], 3);
                                    resultado.N =resultadosTemporales["N"].ToString();
                                    resultado.VARIABLE = "Volumen Comercial (Mtrs3)";
                                    resultado.TOTAL = totalParcelas * Math.Round((double)resultadosTemporales["Mean"], 3);
                                    resultado.TOTALPORHECTAREA = resultado.TOTAL / (double)currentProject.SUPTOT;
                                    resultado.PROMEDIO = Math.Round((double)resultadosTemporales["Mean"], 3);
                                    resultado.DESVIACIONESTANDAR = Math.Round((double)resultadosTemporales["StandardDeviation"], 3);
                                    resultado.COEFICIENTEDEVARIACION = Math.Round((double)resultadosTemporales["VariationCoefficient"], 3);
                                    resultado.ERRORDESVIACION = Math.Round((double)resultadosTemporales["StandardError"], 3);
                                    resultado.ERRORABSOLUTOMUESTREO = Math.Round((double)resultadosTemporales["AbsoulteErrorSample"], 3);
                                    resultado.LIMITEINF = Math.Round((double)resultadosTemporales["LowLimit"], 3);
                                    resultado.LIMITESUP = Math.Round((double)resultadosTemporales["HightLimit"], 3);
                                    resultado.ERRORRELATIVO = Math.Round((double)resultadosTemporales["RelativeErrorSample"], 3);
                                    resultadosBS.Add(resultado);
                                }
                            }
                            resultadosTemporales = (Dictionary<string, object>)resultados.Last().Value;
                            totales = new TOTALESMUESTREOESTRATIFICADOS();
                            totales.VARIABLE = "Volumen Comercial (Mtrs3)";
                            totales.TOTALPROMEDIOESTRATIFICADO = Math.Round((double)resultadosTemporales["Mean"], 3);
                            totales.TOTALDESESTANDARESTRATIFICADO = Math.Round((double)resultadosTemporales["StandardError"], 3);
                            totales.TOTALERRORMUESTREO = Math.Round((double)resultadosTemporales["AbsoulteErrorSample"], 3);
                            totales.TOTALERRRORELATIVO = Math.Round((double)resultadosTemporales["RelativeErrorSample"], 3);
                            totalEstratificadoBS.Add(totales);
                        }
                        if (opciones.Contains("VT"))
                        {
                            resultados = diseno.Execute(2);
                            //Cargando resultado de los datos al reporte
                            foreach (KeyValuePair<string, object> resultStratum in resultados)
                            {
                                resultadosTemporales = (Dictionary<string, object>)resultStratum.Value;
                                resultado = new RESULTADOMUESTREO();
                                if (resultStratum.Key != "totales")
                                {
                                    ESTRATO stratum = stratums.GetStratum(int.Parse(resultStratum.Key));
                                    resultado.ESTRATO = stratum != null ? stratum.DESCRIPESTRATO : resultStratum.Key;
                                    resultado.PESOESTRATO = Math.Round((double)resultadosTemporales["Weight"], 3);
                                    resultado.N = resultadosTemporales["N"].ToString();
                                    resultado.VARIABLE = "Volumen Total (Mtrs3)";
                                    resultado.TOTAL = totalParcelas * Math.Round((double)resultadosTemporales["Mean"], 3);
                                    resultado.TOTALPORHECTAREA = resultado.TOTAL / (double)currentProject.SUPTOT;
                                    resultado.PROMEDIO = Math.Round((double)resultadosTemporales["Mean"], 3);
                                    resultado.DESVIACIONESTANDAR = Math.Round((double)resultadosTemporales["StandardDeviation"], 3);
                                    resultado.COEFICIENTEDEVARIACION = Math.Round((double)resultadosTemporales["VariationCoefficient"], 3);
                                    resultado.ERRORDESVIACION = Math.Round((double)resultadosTemporales["StandardError"], 3);
                                    resultado.ERRORABSOLUTOMUESTREO = Math.Round((double)resultadosTemporales["AbsoulteErrorSample"], 3);
                                    resultado.LIMITEINF = Math.Round((double)resultadosTemporales["LowLimit"], 3);
                                    resultado.LIMITESUP = Math.Round((double)resultadosTemporales["HightLimit"], 3);
                                    resultado.ERRORRELATIVO = Math.Round((double)resultadosTemporales["RelativeErrorSample"], 3);
                                    resultadosBS.Add(resultado);
                                }
                            }
                            resultadosTemporales = (Dictionary<string, object>)resultados.Last().Value;
                            totales = new TOTALESMUESTREOESTRATIFICADOS();
                            totales.VARIABLE = "Volumen Total (Mtrs3)";
                            totales.TOTALPROMEDIOESTRATIFICADO = Math.Round((double)resultadosTemporales["Mean"], 3);
                            totales.TOTALDESESTANDARESTRATIFICADO = Math.Round((double)resultadosTemporales["StandardError"], 3);
                            totales.TOTALERRORMUESTREO = Math.Round((double)resultadosTemporales["AbsoulteErrorSample"], 3);
                            totales.TOTALERRRORELATIVO = Math.Round((double)resultadosTemporales["RelativeErrorSample"], 3);
                            totalEstratificadoBS.Add(totales);
                        }

                    }
                }
            }
            catch (Exception ex)
            {
                Error_Form er = new Error_Form(ex.Message);
                er.MdiParent = this.MdiParent;
                er.Show();
            }
        }
Пример #7
0
 public Ver_Reporte_Form()
 {
     InitializeComponent();
     tStudentTable = new TStudentBL(Program.ContextData);
     stratums = new StratumBL(Program.ContextData);
     project = new PROYECTO();
     PROYECTO currentProject = (PROYECTO)Program.Cache.Get("project");
     //Cargando datos del proyecto al reporte
     if (currentProject != null)
     {
         TypeSampleDesignBl tipoDiseno = new TypeSampleDesignBl(Program.ContextData);
         ObjectiveInventoryBL objetivoInventario = new ObjectiveInventoryBL(Program.ContextData);
         project.NOMTIPODISEMUEST = tipoDiseno.GetTypeSampleDesign(currentProject.NOMTIPODISEMUEST).DESCRIPTIPODISEMUEST;
         project.NOMBRETIPOINV = objetivoInventario.GetObjectiveInventory(currentProject.NOMBRETIPOINV).DESCRIPOBJETINV;
         project.INTMUE = Math.Round(currentProject.INTMUE, 3);
         project.TAMANO = Math.Round(currentProject.TAMANO, 3);
         project.DESCRIPCION = currentProject.DESCRIPCION;
         project.LUGAR = currentProject.LUGAR;
         project.FECHA = currentProject.FECHA;
         project.SUPMUE = Math.Round(currentProject.SUPMUE, 3);
         project.SUPTOT = Math.Round(currentProject.SUPTOT, 3);
         Decimal confianza = currentProject.CONFIANZA != null ? (decimal)currentProject.CONFIANZA : 0;
         project.CONFIANZA = Math.Round(confianza, 3);
         proyectoBS.DataSource = project;
     }
 }
Пример #8
0
        private void reporteEstratos()
        {
            try
            {
                this.DtgDatos.ColumnCount = 0;
                Column1 = new System.Windows.Forms.DataGridViewTextBoxColumn();
                Column1.HeaderText = "Estrato";
                Column1.Name = "estrato";
                Column1.SortMode = DataGridViewColumnSortMode.NotSortable;
                DtgDatos.Columns.Add(Column1);
                Column1 = new System.Windows.Forms.DataGridViewTextBoxColumn();
                Column1.HeaderText = "Variable";
                Column1.Name = "ColVariable";
                Column1.SortMode = DataGridViewColumnSortMode.NotSortable;
                DtgDatos.Columns.Add(Column1);
                decimal posClase = this.DIM;
                for (int i = 0; i < NumClass; i++)
                {
                    Column1 = new System.Windows.Forms.DataGridViewTextBoxColumn();
                    Column1.HeaderText = posClase + " - " + (posClase + rangeDAP);
                    Column1.Name = "Clase" + (i + 1);
                    DataGridViewCellStyle dataGridViewCellStyle1 = new DataGridViewCellStyle();
                    dataGridViewCellStyle1.Format = "0.000###";
                    Column1.DefaultCellStyle = dataGridViewCellStyle1;
                    Column1.SortMode = DataGridViewColumnSortMode.NotSortable;
                    DtgDatos.Columns.Add(Column1);

                    posClase = posClase + rangeDAP;
                }
                Column1 = new System.Windows.Forms.DataGridViewTextBoxColumn();
                Column1.HeaderText = "Otros";
                Column1.Name = "ClaseOtros";
                Column1.SortMode = DataGridViewColumnSortMode.NotSortable;
                DtgDatos.Columns.Add(Column1);
                Column1 = new System.Windows.Forms.DataGridViewTextBoxColumn();
                Column1.HeaderText = "Total";
                Column1.Name = "Clase" + (nUd_NumClases.Value + 3);
                Column1.SortMode = DataGridViewColumnSortMode.NotSortable;
                DtgDatos.Columns.Add(Column1);

                StratumBL StBL = new StratumBL(Program.ContextData);
                InventoryLineBL lnBL = new InventoryLineBL(Program.ContextData);
                decimal[] totalConteoClase = new decimal[NumClass + 1];
                decimal[] totalABClase = new decimal[NumClass + 1];
                decimal[] totalVolComClase = new decimal[NumClass + 1];
                decimal[] totalVolTotClase = new decimal[NumClass + 1];
                ArrayList RowsData = new ArrayList();
                this.progressBar.Value = 0;
                this.progressBar.Minimum = 0;
                this.progressBar.Maximum = project.LISTADODEESTRATOS.Count;

                foreach (LISTADODEESTRATOS st in project.LISTADODEESTRATOS)
                {
                    string RowConteo = "", RowAB = " ,Area Basal,", RowVolCom = " ,Volumen comercial,", RowVolTot = " ,Volumen total,";
                    decimal totalConteo = 0, totalAB = 0, totalVolCom = 0, totalVolTot = 0;
                    RowConteo += (StBL.GetStratum((int)st.CODEST)).DESCRIPESTRATO + ", Densidad,";
                    decimal ValorClase = this.DIM;
                    List<REPORTECLASESDIAMETRICAS> resultReportCD = new List<REPORTECLASESDIAMETRICAS>();
                    for (int i = 0; i <= NumClass; i++, ValorClase = ValorClase + rangeDAP)
                    {
                        REPORTECLASESDIAMETRICAS rpCD = new REPORTECLASESDIAMETRICAS();
                        foreach (FORMULARIO fr in project.FORMULARIO.Where(f => f.CODEST == st.CODEST))
                        {
                            if (i == NumClass)
                            {
                                rpCD.CLASE = "otros";
                                rpCD = lnBL.searchDiametricClass(Guid.Empty, fr.NROFORMULARIO, tipoClaseCbx.Text, ValorClase, -1, rpCD);
                            }
                            else
                            {
                                rpCD.CLASE = i + " - " + (i + rangeDAP);
                                rpCD = lnBL.searchDiametricClass(Guid.Empty, fr.NROFORMULARIO, tipoClaseCbx.Text, ValorClase, ValorClase + rangeDAP, rpCD);
                            }
                        }
                        rpCD.PORCENTAJE = rpCD.TOTAL * 100;
                        if (rpCD.CONTEO > 0)
                        {
                            rpCD.AREABASAL = rpCD.AREABASAL / rpCD.CONTEO;
                            rpCD.VOLUMENCOMERCIAL = rpCD.VOLUMENCOMERCIAL / rpCD.CONTEO;
                            rpCD.VOLUMENTOTAL = rpCD.VOLUMENTOTAL / rpCD.CONTEO;
                        }
                        RowConteo += Decimal.Round(rpCD.CONTEO, 4) + ",";
                        RowAB += Decimal.Round(rpCD.AREABASAL, 4).ToString().Replace(",", ".") + ",";
                        RowVolCom += Decimal.Round(rpCD.VOLUMENCOMERCIAL, 4).ToString().Replace(",", ".") + ",";
                        RowVolTot += Decimal.Round(rpCD.VOLUMENTOTAL, 4).ToString().Replace(",", ".") + ",";
                        totalConteo += rpCD.CONTEO;
                        totalAB += rpCD.AREABASAL;
                        totalVolCom += rpCD.VOLUMENCOMERCIAL;
                        totalVolTot += rpCD.VOLUMENTOTAL;
                        //Se realiza para los totales por clase de densidad,AB, vol
                        totalConteoClase[i] += rpCD.CONTEO;
                        totalABClase[i] += rpCD.AREABASAL;
                        totalVolComClase[i] += rpCD.VOLUMENCOMERCIAL;
                        totalVolTotClase[i] += rpCD.VOLUMENTOTAL;
                    }                                    //Se hace fuera del for porque en este for se lleva todos los valores de esa especie para cada clase diametrica y todas las variables
                    //entonces ahora se lleva los valores de la especie y las clases diametricas
                    if (opcionCheck.Checked)
                    {
                        RowConteo += Decimal.Round(totalConteo, 4).ToString().Replace(",", ".") + ",";
                        RowAB += Decimal.Round(totalAB, 4).ToString().Replace(",", ".") + ",";
                        RowVolCom += Decimal.Round(totalVolCom, 4).ToString().Replace(",", ".") + ",";
                        RowVolTot += Decimal.Round(totalVolTot, 4).ToString().Replace(",", ".") + ",";
                        RowsData.Add(RowConteo);
                        RowsData.Add(RowAB);
                        RowsData.Add(RowVolCom);
                        RowsData.Add(RowVolTot);
                    }
                    else
                    {
                        if (totalConteo > 0)
                        {
                            RowConteo += Decimal.Round(totalConteo, 4).ToString().Replace(",", ".") + ",";
                            RowAB += Decimal.Round(totalAB, 4).ToString().Replace(",", ".") + ",";
                            RowVolCom += Decimal.Round(totalVolCom, 4).ToString().Replace(",", ".") + ",";
                            RowVolTot += Decimal.Round(totalVolTot, 4).ToString().Replace(",", ".") + ",";
                            RowsData.Add(RowConteo);
                            RowsData.Add(RowAB);
                            RowsData.Add(RowVolCom);
                            RowsData.Add(RowVolTot);
                        }
                    }
                    this.progressBar.Value++;

                }

                string RowTotalC = "TOTALES,Densidad,", RowTotalAB = " ,Area Basal,", RowTotalVolCom = " ,Volumen comercial,", RowTotalVolTot = " ,Volumen total,";
                foreach (decimal d in totalConteoClase)
                {
                    RowTotalC += decimal.Round(d, 4).ToString().Replace(",", ".") + ",";
                }
                foreach (decimal d in totalABClase)
                {
                    RowTotalAB += decimal.Round(d, 4).ToString().Replace(",", ".") + ",";
                }
                foreach (decimal d in totalVolComClase)
                {
                    RowTotalVolCom += decimal.Round(d, 4).ToString().Replace(",", ".") + ",";
                }
                foreach (decimal d in totalVolTotClase)
                {
                    RowTotalVolTot += decimal.Round(d, 4).ToString().Replace(",", ".") + ",";
                }
                RowTotalC += Decimal.Round(totalConteoClase.Sum(), 4).ToString().Replace(",", ".") + ",";
                RowTotalAB += Decimal.Round(totalABClase.Sum(), 4).ToString().Replace(",", ".") + ",";
                RowTotalVolCom += Decimal.Round(totalVolComClase.Sum(), 4).ToString().Replace(",", ".") + ",";
                RowTotalVolTot += Decimal.Round(totalVolTotClase.Sum(), 4).ToString().Replace(",", ".") + ",";

                Column1 = new DataGridViewTextBoxColumn();
                Column1.HeaderText = "Porcentaje";
                Column1.Name = "Clase" + (nUd_NumClases.Value + 4);
                Column1.SortMode = DataGridViewColumnSortMode.NotSortable;
                DtgDatos.Columns.Add(Column1);
                int numCampos = 3;

                for (int i = 0; i < RowsData.Count; i = i + 4)
                {
                    //Se arregla la fila que corresponde a la densidad
                    string cadena = (string)RowsData[i];
                    string[] fila = cadena.Split(',');
                    decimal total = decimal.Parse(fila[NumClass + numCampos].Replace('.', ','));
                    decimal p = 0;
                    if (totalConteoClase.Sum() > 0) p = ((total) / totalConteoClase.Sum()) * 100;
                    string result = cadena + decimal.Round(p, 2).ToString().Replace(',', '.') + "";
                    DtgDatos.Rows.Add(result.Split(','));

                    //Se arregla la fila que corresponde la area basal
                    cadena = (string)RowsData[i + 1];
                    fila = cadena.Split(',');
                    total = decimal.Parse(fila[NumClass + numCampos].Replace('.', ','));
                    p = 0;
                    if (totalConteoClase.Sum() > 0) p = (total / totalABClase.Sum()) * 100;
                    result = cadena + decimal.Round(p, 2).ToString().Replace(',', '.') + "";
                    DtgDatos.Rows.Add(result.Split(','));

                    //Se arregla la fila que corresponde al volumen comercial
                    cadena = (string)RowsData[i + 2];
                    fila = cadena.Split(',');
                    total = decimal.Parse(fila[NumClass + numCampos].Replace('.', ','));
                    p = 0;
                    if (totalConteoClase.Sum() > 0) p = (total / totalVolComClase.Sum()) * 100;
                    result = cadena + decimal.Round(p, 2).ToString().Replace(',', '.') + "";
                    DtgDatos.Rows.Add(result.Split(','));

                    //Se arregla la fila que corresponde al volumen total
                    cadena = (string)RowsData[i + 3];
                    fila = cadena.Split(',');
                    total = decimal.Parse(fila[NumClass + numCampos].Replace('.', ','));
                    p = 0;
                    if (totalConteoClase.Sum() > 0) p = (total / totalVolTotClase.Sum()) * 100;
                    result = cadena + decimal.Round(p, 2).ToString().Replace(',', '.') + "";
                    DtgDatos.Rows.Add(result.Split(','));
                }
                DtgDatos.AutoResizeColumns();
                DtgDatos.Rows.Add(RowTotalC.Split(','));
                DtgDatos.Rows.Add(RowTotalAB.Split(','));
                DtgDatos.Rows.Add(RowTotalVolCom.Split(','));
                DtgDatos.Rows.Add(RowTotalVolTot.Split(','));
                DtgDatos.Refresh();
            }
            catch (Exception ex)
            {
                Error_Form er = new Error_Form(ex.Message);
                er.MdiParent = this.MdiParent;
                er.Show();
            }
        }