Ejemplo n.º 1
0
        private void BtAnalizar_Click(object sender, EventArgs e)
        {
            List <Calibracion> lista = new List <Calibracion>();

            if (RB_EnergiaFot.Checked)
            {
                lista = new List <Calibracion>(listaCalibracionesFotones());
            }
            else if (RB_EnergiaElec.Checked)
            {
                lista = new List <Calibracion>(listaCalibracionesElectrones());
            }
            if (lista.Count() > 0)
            {
                DGV_Registros.DataSource          = lista;
                DGV_Registros.AutoSizeColumnsMode = DataGridViewAutoSizeColumnsMode.DisplayedCells;
                DGV_Analisis.AutoSizeColumnsMode  = DataGridViewAutoSizeColumnsMode.DisplayedCells;
                DGV_Analisis.BackgroundColor      = DefaultBackColor;
                DGV_Analisis.BorderStyle          = BorderStyle.None;
                Analisis.llenarDGV(Analisis.analizar2(lista, equipoSeleccionado(), energiaFotonesSeleccionada(), DFSoISO()), DGV_Analisis, L_Tendencia);
                Graficar.graficarRegistros(lista, Chart_Registros);
                L_Calibraciones.Text = "Calibraciones" + stringEtiquetaLista();
                GB_Tendencia.Enabled = true;
            }
            else
            {
                MessageBox.Show("No existen calibraciones con las condiciones descriptas");
                DGV_Registros.DataSource = null;
                DGV_Analisis.DataSource  = null;
                Chart_Registros.Legends.Clear(); Chart_Registros.ChartAreas.Clear(); Chart_Registros.Series.Clear();
                L_Calibraciones.Text = "Calibraciones";
                GB_Tendencia.Enabled = false;
            }
            L_Tendencia.Visible = false;
        }
Ejemplo n.º 2
0
        public static double calcularTendencia(BindingList <CalibracionElec> lista, bool fechas, DateTime desde, DateTime hasta, Equipo equipo, EnergiaElectrones energia, Chart grafico)
        {
            BindingList <CalibracionElec> listaFiltrada = new BindingList <CalibracionElec>();

            if (fechas)
            {
                foreach (CalibracionElec cali in lista)
                {
                    if (DateTime.Compare(cali.Fecha.Date, desde.Date) >= 0 && DateTime.Compare(cali.Fecha.Date, hasta.Date) <= 0)
                    {
                        listaFiltrada.Add(cali);
                    }
                }
            }
            else
            {
                listaFiltrada = lista;
            }
            if (listaFiltrada.Count() == 0)
            {
                MessageBox.Show("No hay calibraciones en el rango de fechas seleccionado");
                return(Double.NaN);
            }
            if (listaFiltrada.Count() == 1)
            {
                MessageBox.Show("En el rango de fechas seleccionado hay una única calibración.\nNo se puede realizar el análisis");
                return(Double.NaN);
            }
            else
            {
                List <Double> valores      = listaFiltrada.Select(q => q.Dwzref).ToList();
                List <Double> fechasDouble = listaFiltrada.Select(q => q.Fecha.ToOADate()).ToList();
                Graficar.agregarLineaTendencia(grafico, Calcular.cuadradosMinimos(fechasDouble, valores), fechasDouble.Min(), fechasDouble.Max());
                if (CalibracionElec.hayReferencia(equipo, energia))
                {
                    return(Math.Round(Calcular.cuadradosMinimos(fechasDouble, valores).Item1 / CalibracionElec.obtenerCaliReferencia(equipo, energia).Dwzref * 100 * 30, 2)); //mensual
                }
                else
                {
                    return(Math.Round(Calcular.cuadradosMinimos(fechasDouble, valores).Item1 / valores.Average() * 100 * 30, 2)); //mensual
                }
            }
        }