private void RefreshAllCharts() { // ---------------------------------------------------------------------------------- // Refresh all data for current year and attach data to lines and bars on chart. // ---------------------------------------------------------------------------------- if (MetData.Rows.Count > 0) { YearlyData = DataTableUtility.FilterTableForYear(MetData, (int)YearStartBox.Value, (int)YearStartBox.Value + (int)NumYearsBox.Value - 1); //JF 061211 - Fix bug in max radiation for years that don't begin at day 1 by sending the starting day to QMax int firstDay = 0; if ((YearlyData.Count > 0)) { if (YearlyData.Table.Columns.Contains("day")) { firstDay = Convert.ToInt32(YearlyData[0]["day"]); } else if (YearlyData.Table.Columns.Contains("date")) { DateTime D = (DateTime)YearlyData[0]["date"]; firstDay = D.DayOfYear; } } if (YearlyData.Table.Columns.IndexOf("Rain") != -1) { double[] Rainfall = DataTableUtility.ColumnValues(YearlyData, "rain"); if (NumYearsBox.Value == 1) { RainfallLabel.Text = MathUtility.Sum(Rainfall).ToString("f1") + " mm for the year " + YearStartBox.Value.ToString(); } else { RainfallLabel.Text = MathUtility.Sum(Rainfall).ToString("f1") + " mm for the years " + YearStartBox.Value.ToString() + " to " + (YearStartBox.Value + NumYearsBox.Value - 1).ToString(); } RainfallLabel.Left = Label1.Left + Label1.Width; } else { RainfallLabel.Text = ""; } MonthlyData = DataTableUtility.MonthlySums(YearlyData); CalcQmax(firstDay); PopulateSeries(RainfallBar, YearlyData, "Rain"); PopulateSeries(RainfallBar2, YearlyData, "Rain"); PopulateSeries(MaximumTemperatureLine, YearlyData, "MaxT"); PopulateSeries(MinimumTemperatureLine, YearlyData, "MinT"); PopulateSeries(RadiationLine, YearlyData, "Radn"); if (MetData.Columns["QMax"] == null) { MaximumRadiationLine.Visible = false; } else { PopulateSeries(MaximumRadiationLine, YearlyData, "QMax"); MaximumRadiationLine.Visible = true; } PopulateSeries(MonthlyRainfallBar, MonthlyData, "Rain"); if (MonthlyData.Columns.IndexOf("pan") != -1) { PopulateSeries(MonthlyEvaporationLine, MonthlyData, "pan"); } else { PopulateSeries(MonthlyEvaporationLine, MonthlyData, "Evap"); } } }