private void Timer_Tick(object sender, EventArgs e) { for (int i = 0; i < m_Y.Count; i++) { m_GraphCnt[i] = m_Y[i] / 10; if (m_GraphSum[i] < m_Y[i]) { MainChart.Series[0].Points[i].YValues[0] = m_GraphSum[i]; MainChart.Invalidate(); } else { MainChart.Series[0].Points[i].YValues[0] = m_Y[i]; MainChart.Invalidate(); m_GraphComplete[i] = true; } m_GraphSum[i] += m_GraphCnt[i]; } bool End = true; for (int i = 0; i < m_GraphComplete.Count; i++) { End &= m_GraphComplete[i]; } if (m_Y.Count < 1) { End = true; } if (End) { m_TImer.Stop(); } }
private void Timer_Tick(object sender, EventArgs e) { long cnt = m_Sum / 10; if (m_Cnt < m_Sum) { if (cbCountryName.SelectedItem.Equals("한국")) { lbSum.Text = m_Cnt.ToString("C0"); } else { lbSum.Text = m_Cnt.ToString("C0", new System.Globalization.CultureInfo("en-US")); } m_Cnt += cnt; } else { if (cbCountryName.SelectedItem.Equals("한국")) { lbSum.Text = m_Sum.ToString("C0"); } else { lbSum.Text = m_Sum.ToString("C0", new System.Globalization.CultureInfo("en-US")); } m_SumComplete = true; } for (int i = 0; i < m_Y.Count; i++) { m_GraphCnt[i] = m_Y[i] / 10; if (m_GraphSum[i] < m_Y[i]) { MainChart.Series[0].Points[i].YValues[0] = m_GraphSum[i]; MainChart.Invalidate(); } else { MainChart.Series[0].Points[i].YValues[0] = m_Y[i]; MainChart.Invalidate(); m_GraphComplete[i] = true; } m_GraphSum[i] += m_GraphCnt[i]; } bool End = m_SumComplete; for (int i = 0; i < m_GraphComplete.Count; i++) { End &= m_GraphComplete[i]; } if (End) { m_TImer.Stop(); } }
private void CbCategory_SelectedIndexChanged(object sender, EventArgs e) { m_Y.Clear(); MainChart.Series.Clear(); MainChart.ChartAreas[0].AxisY.LabelStyle.Format = "{0:C0}"; if (cbCategory.SelectedItem.Equals("ALL")) { MainChart.Series.Add("지출금"); MainChart.Series.Add("월세"); MainChart.Series.Add("생활비"); if (m_DataTable.Rows.Count > 3) { for (int i = 0; i < MainChart.Series.Count; i++) { MainChart.Series[i].ChartType = SeriesChartType.Line; MainChart.Series[i].BorderWidth = 3; } } foreach (DataRow item in m_DataTable.Rows) { long temp1 = Convert.ToInt64(item[1]); long temp2 = Convert.ToInt64(item[2]); long temp3 = temp1 - temp2; string X = item[0].ToString().Substring(2, 2) + "/" + item[0].ToString().Substring(5, 2); MainChart.Series[0].Points.AddXY(X, temp1); MainChart.Series[1].Points.AddXY(X, temp2); MainChart.Series[2].Points.AddXY(X, temp3); } } else if (cbCategory.SelectedItem.Equals("지출금")) { MainChart.Series.Add("지출금"); MainChart.Series[0].ChartType = SeriesChartType.Column; MainChart.Series[0].Color = Color.Blue; foreach (DataRow item in m_DataTable.Rows) { long temp = Convert.ToInt64(item[1]); string X = item[0].ToString().Substring(2, 2) + "/" + item[0].ToString().Substring(5, 2); MainChart.Series[0].Points.AddXY(X, temp); m_Y.Add(temp); } } else if (cbCategory.SelectedItem.Equals("월세")) { MainChart.Series.Add("월세"); MainChart.Series[0].ChartType = SeriesChartType.Column; MainChart.Series[0].Color = Color.Orange; foreach (DataRow item in m_DataTable.Rows) { long temp = Convert.ToInt64(item[2]); string X = item[0].ToString().Substring(2, 2) + "/" + item[0].ToString().Substring(5, 2); MainChart.Series[0].Points.AddXY(X, temp); m_Y.Add(temp); } } else if (cbCategory.SelectedItem.Equals("생활비")) { MainChart.Series.Add("생활비"); MainChart.Series[0].ChartType = SeriesChartType.Column; MainChart.Series[0].Color = Color.Red; foreach (DataRow item in m_DataTable.Rows) { long temp = Convert.ToInt64(item[1]) - Convert.ToInt64(item[2]); string X = item[0].ToString().Substring(2, 2) + "/" + item[0].ToString().Substring(5, 2); MainChart.Series[0].Points.AddXY(X, temp); m_Y.Add(temp); } } MainChart.ChartAreas[0].RecalculateAxesScale(); MainChart.Invalidate(); m_GraphSum.Clear(); m_GraphCnt.Clear(); m_GraphComplete.Clear(); for (int i = 0; i < m_Y.Count; i++) { m_GraphSum.Add(0); m_GraphCnt.Add(0); m_GraphComplete.Add(false); } m_TImer.Start(); }
private void SetupAxisStripes(IAxis yAxis, LineChartTypes chartType) { if (yAxis != null && Activity != null) { yAxis.Stripes.Clear(); if (Options.Instance.ShowZonesInChart && ShownZones != null) { foreach (INamedLowHighZone zone in ShownZones.Zones) { AxisStripe stripe = new AxisStripe(zone.Low, zone.High, Color.FromArgb(16, 0, 0, 0)); yAxis.Stripes.Add(stripe); // Setup default parameters stripe.Name = zone.Name; stripe.LineColor = Color.FromArgb(128, 0, 0, 0); stripe.LineStyle = DashStyle.Dash; stripe.LineWidth = 2; // Some types need to override the low/high values switch (chartType) { case LineChartTypes.HeartRatePercentMax: { IAthleteInfoEntry lastAthleteEntry = PluginMain.GetApplication().Logbook.Athlete.InfoEntries.LastEntryAsOfDate(m_ActivityInfoCache.ActualTrackStart); // Value is in BPM so convert to the % max HR if we have the info if (!float.IsNaN(lastAthleteEntry.MaximumHeartRatePerMinute)) { stripe.From = (zone.Low / lastAthleteEntry.MaximumHeartRatePerMinute) * 100; stripe.To = (zone.High / lastAthleteEntry.MaximumHeartRatePerMinute) * 100; } else { // Cancel the add, we don't have the data yAxis.Stripes.Remove(stripe); } break; } case LineChartTypes.Speed: { stripe.From = Length.Convert(zone.Low, Length.Units.Meter, Utils.Utils.MajorLengthUnit(Activity.Category.DistanceUnits)) * Utils.Constants.SecondsPerHour; stripe.To = Length.Convert(zone.High, Length.Units.Meter, Utils.Utils.MajorLengthUnit(Activity.Category.DistanceUnits)) * Utils.Constants.SecondsPerHour;; break; } default: { break; } } } if (MainChart != null) { MainChart.Invalidate(); } } } }
private void GraphInit(string Condition) { DataTable dt = new DataTable(); m_X.Clear(); m_Y.Clear(); if (Condition == "ALL") { string cmd = "'" + cbCountryName.SelectedItem.ToString() + "'"; dt = SqlManager.Instance.Seclect("tblAccount", "은행이름, 자본금", "WHERE 국가 = " + cmd); for (int i = 1; i < cbBankName.Items.Count; i++) { long capital = 0; foreach (DataRow item in dt.Rows) { if (item[0].ToString() == cbBankName.Items[i].ToString()) { capital += Convert.ToInt64(item[1]); } } m_X.Add(cbBankName.Items[i].ToString()); m_Y.Add(capital); } } else { string cmd = "'" + Condition + "'"; dt = SqlManager.Instance.Seclect("tblAccount", "계좌이름, 자본금", "WHERE 은행이름 = " + cmd); foreach (DataRow item in dt.Rows) { m_X.Add(item[0].ToString()); m_Y.Add(Convert.ToInt64(item[1])); } } MainChart.Series.Clear(); MainChart.Series.Add("자본금"); MainChart.Series[0].ChartType = SeriesChartType.Column; if (cbCountryName.SelectedItem.Equals("한국")) { MainChart.ChartAreas[0].AxisY.LabelStyle.Format = "{0:C0}"; } else { MainChart.ChartAreas[0].AxisY.LabelStyle.Format = "${0}"; } int cnt = m_X.Count; for (int i = 0; i < m_X.Count; i++) { MainChart.Series[0].Points.AddXY(m_X[i], m_Y[i]); if (m_Y[i] == 0) { cnt--; } } if (cnt == 0) { MainChart.ChartAreas[0].AxisY.Maximum = 1000; } else { MainChart.ChartAreas[0].AxisY.Maximum = Double.NaN; } MainChart.ChartAreas[0].RecalculateAxesScale(); for (int i = 0; i < m_X.Count; i++) { MainChart.Series[0].Points[i].YValues[0] = 0; } MainChart.Invalidate(); }