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