示例#1
0
        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();
            }
        }
示例#2
0
        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();
            }
        }
示例#3
0
        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();
        }
示例#4
0
        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();
                    }
                }
            }
        }
示例#5
0
        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();
        }