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