Пример #1
0
        public void InitChart(NCartesianChart chart)
        {
            // set layout related properties
            chart.BoundsMode = BoundsMode.Stretch;
            chart.DockMode   = PanelDockMode.Fill;
            chart.Margins    = new NMarginsL(10, 0, 10, 10);
            nChartControl1.Panels.Add(chart);

            // add interlace stripes
            NLinearScaleConfigurator linearScale = chart.Axis(StandardAxis.PrimaryY).ScaleConfigurator as NLinearScaleConfigurator;
            NScaleStripStyle         stripStyle  = new NScaleStripStyle(new NColorFillStyle(Color.Beige), null, true, 0, 0, 1, 1);

            stripStyle.Interlaced  = true;
            stripStyle.ShowAtWalls = new ChartWallType[] { ChartWallType.Back };
            linearScale.StripStyles.Add(stripStyle);

            // show X axis zooming and scrolling
            chart.Axis(StandardAxis.PrimaryX).ScrollBar.Visible = true;

            // apply work calendar to the X axis
            NWorkCalendar calendar    = new NWorkCalendar();
            NWeekDayRule  weekDayRule = new NWeekDayRule();
            WeekDayBit    weekDays    = WeekDayBit.None;

            weekDays            |= WeekDayBit.Monday;
            weekDays            |= WeekDayBit.Tuesday;
            weekDays            |= WeekDayBit.Wednesday;
            weekDays            |= WeekDayBit.Thursday;
            weekDays            |= WeekDayBit.Friday;
            weekDayRule.WeekDays = weekDays;
            weekDayRule.Schedule.SetHourRange(0, 24, false);
            calendar.Rules.Add(weekDayRule);

            // apply calendar to scale
            NRangeTimelineScaleConfigurator timeline = new NRangeTimelineScaleConfigurator();

            timeline.FirstRow.GridStyle.ShowAtWalls  = new ChartWallType[] { ChartWallType.Back };
            timeline.FirstRow.GridStyle.LineStyle    = new NStrokeStyle(1, Color.FromArgb(225, 225, 225));
            timeline.FirstRow.UseGridStyle           = true;
            timeline.SecondRow.GridStyle.ShowAtWalls = new ChartWallType[] { ChartWallType.Back };
            timeline.SecondRow.GridStyle.LineStyle   = new NStrokeStyle(1, Color.FromArgb(215, 215, 215));
            timeline.SecondRow.UseGridStyle          = true;
            timeline.ThirdRow.GridStyle.ShowAtWalls  = new ChartWallType[] { ChartWallType.Back };
            timeline.ThirdRow.GridStyle.LineStyle    = new NStrokeStyle(1, Color.FromArgb(205, 205, 205));
            timeline.ThirdRow.UseGridStyle           = true;

            timeline.EnableCalendar = false;
            timeline.Calendar       = calendar;
            timeline.ThirdRow.EnableUnitSensitiveFormatting = false;

            chart.Axis(StandardAxis.PrimaryX).ScaleConfigurator = timeline;

            // generate data for this calendar
            AddData(chart, calendar);
        }
Пример #2
0
        private NWorkCalendar CreateWorkCalendar()
        {
            // create calendar
            NWorkCalendar m_Calendar = new NWorkCalendar();

            // use week days
            if (EnableWeekRuleCheckBox.Checked)
            {
                NWeekDayRule weekDayRule = new NWeekDayRule();

                WeekDayBit weekDays = WeekDayBit.None;
                if (MondayCheckBox.Checked)
                {
                    weekDays |= WeekDayBit.Monday;
                }

                if (TuesdayCheckBox.Checked)
                {
                    weekDays |= WeekDayBit.Tuesday;
                }

                if (WednesdayCheckBox.Checked)
                {
                    weekDays |= WeekDayBit.Wednesday;
                }

                if (ThursdayCheckBox.Checked)
                {
                    weekDays |= WeekDayBit.Thursday;
                }

                if (FridayCheckBox.Checked)
                {
                    weekDays |= WeekDayBit.Friday;
                }

                if (SaturdayCheckBox.Checked)
                {
                    weekDays |= WeekDayBit.Saturday;
                }

                if (SundayCheckBox.Checked)
                {
                    weekDays |= WeekDayBit.Sunday;
                }

                if (!(weekDays.Equals(WeekDayBit.None)))
                {
                    // cannot select all week days as non working as this leads to a scale with no
                    // working days...
                    weekDayRule.WeekDays = weekDays;
                    weekDayRule.Schedule.SetHourRange(0, 24, false);
                    m_Calendar.Rules.Add(weekDayRule);
                }
            }

            if (EnableMonthDayRuleCheckBox.Checked)
            {
                NMonthDayRule monthDayRule = new NMonthDayRule();

                monthDayRule.Months = MonthBit.January |
                                      MonthBit.February |
                                      MonthBit.March |
                                      MonthBit.April |
                                      MonthBit.May |
                                      MonthBit.June |
                                      MonthBit.July |
                                      MonthBit.August |
                                      MonthBit.September |
                                      MonthBit.October |
                                      MonthBit.November |
                                      MonthBit.December;

                monthDayRule.Day     = MonthDayDropDownList.SelectedIndex + 1;
                monthDayRule.Working = MonthDayWorkingCheckBox.Checked;
                m_Calendar.Rules.Add(monthDayRule);
            }

            return(m_Calendar);
        }
Пример #3
0
        private void CreateWorkCalendar()
        {
            if (m_Updating)
            {
                return;
            }

            if (m_Chart != null)
            {
                m_Chart.Axis(StandardAxis.PrimaryX).PagingView.Enabled = false;
                m_Chart.Axis(StandardAxis.PrimaryY).PagingView.Enabled = false;
            }

            // create calendar
            m_Calendar = new NWorkCalendar();

            // use week days
            if (EnableWeekRuleCheckBox.Checked)
            {
                NWeekDayRule weekDayRule = new NWeekDayRule();

                WeekDayBit weekDays = WeekDayBit.None;
                if (MondayCheckBox.Checked)
                {
                    weekDays |= WeekDayBit.Monday;
                }

                if (TuesdayCheckBox.Checked)
                {
                    weekDays |= WeekDayBit.Tuesday;
                }

                if (WednesdayCheckBox.Checked)
                {
                    weekDays |= WeekDayBit.Wednesday;
                }

                if (ThursdayCheckBox.Checked)
                {
                    weekDays |= WeekDayBit.Thursday;
                }

                if (FridayCheckBox.Checked)
                {
                    weekDays |= WeekDayBit.Friday;
                }

                if (SaturdayCheckBox.Checked)
                {
                    weekDays |= WeekDayBit.Saturday;
                }

                if (SundayCheckBox.Checked)
                {
                    weekDays |= WeekDayBit.Sunday;
                }

                if (weekDays == WeekDayBit.None)
                {
                    // cannot select all week days as non working as this leads to a scale with no
                    // working days...
                    MessageBox.Show("You cannot select all weekdays as non working.");
                    return;
                }

                weekDayRule.WeekDays = weekDays;
                weekDayRule.Schedule.SetHourRange(0, 24, false);
                m_Calendar.Rules.Add(weekDayRule);
            }

            if (EnableMonthDayRuleCheckBox.Checked)
            {
                NMonthDayRule monthDayRule = new NMonthDayRule();

                monthDayRule.Months = MonthBit.January |
                                      MonthBit.February |
                                      MonthBit.March |
                                      MonthBit.April |
                                      MonthBit.May |
                                      MonthBit.June |
                                      MonthBit.July |
                                      MonthBit.August |
                                      MonthBit.September |
                                      MonthBit.October |
                                      MonthBit.November |
                                      MonthBit.December;

                monthDayRule.Day     = (int)MonthDayUpDown.Value;
                monthDayRule.Working = WorkRadioButton.Checked;
                m_Calendar.Rules.Add(monthDayRule);
            }

            // apply calendar to scale
            NRangeTimelineScaleConfigurator timeline = new NRangeTimelineScaleConfigurator();

            timeline.FirstRow.GridStyle.ShowAtWalls  = new ChartWallType[] { ChartWallType.Back };
            timeline.FirstRow.GridStyle.LineStyle    = new NStrokeStyle(1, Color.FromArgb(225, 225, 225));
            timeline.FirstRow.UseGridStyle           = true;
            timeline.SecondRow.GridStyle.ShowAtWalls = new ChartWallType[] { ChartWallType.Back };
            timeline.SecondRow.GridStyle.LineStyle   = new NStrokeStyle(1, Color.FromArgb(215, 215, 215));
            timeline.SecondRow.UseGridStyle          = true;
            timeline.ThirdRow.GridStyle.ShowAtWalls  = new ChartWallType[] { ChartWallType.Back };
            timeline.ThirdRow.GridStyle.LineStyle    = new NStrokeStyle(1, Color.FromArgb(205, 205, 205));
            timeline.ThirdRow.UseGridStyle           = true;

            timeline.EnableCalendar = true;
            timeline.Calendar       = m_Calendar;
            timeline.ThirdRow.EnableUnitSensitiveFormatting = false;

            if (m_Chart != null)
            {
                m_Chart.Axis(StandardAxis.PrimaryX).ScaleConfigurator = timeline;
            }

            // generate data for this calendar
            AddData();

            if (nChartControl1 != null)
            {
                nChartControl1.Refresh();
            }
        }