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(); } }
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; } }