private void buttonAddActivity_Click(object sender, EventArgs e) { ActivityDetailForm f = new ActivityDetailForm(); f.WorkSystemDataSet.Merge(adaWorkSystemDataSet1); DataRowView view = this.BindingContext[adaWorkSystemDataSet1, "Schedule"].Current as DataRowView; ADAWorkSystemDataSet.ScheduleRow currentScheduleRow = view.Row as ADAWorkSystemDataSet.ScheduleRow; int sequenceMax = 0; ADAWorkSystemDataSet.ActivityRow lastActivityRow = null; foreach (ADAWorkSystemDataSet.ActivityRow activityRow in currentScheduleRow.GetActivityRows()) { if (sequenceMax < activityRow.Sequence) { sequenceMax = activityRow.Sequence; lastActivityRow = activityRow; } } ADAWorkSystemDataSet.ActivityRow currentActivityRow = f.WorkSystemDataSet.Activity.NewActivityRow(); currentActivityRow.ScheduleId = currentScheduleRow.ScheduleId; currentActivityRow.Sequence = sequenceMax + 1; currentActivityRow.Name = string.Format("Step {0}", currentActivityRow.Sequence); if (lastActivityRow != null && !lastActivityRow.IsSymbolIdNull()) { currentActivityRow.SymbolId = lastActivityRow.SymbolId; currentActivityRow.Image = lastActivityRow.Image; } f.WorkSystemDataSet.Activity.AddActivityRow(currentActivityRow); f.WorkSystemDataSet.DefaultViewManager.DataViewSettings["Activity"].RowFilter = "ActivityId=" + currentActivityRow.ActivityId; if (f.ShowDialog() == DialogResult.OK) { adaWorkSystemDataSet1.Merge(f.WorkSystemDataSet); } }
SeriesCollection getSeriesCollection(DataRow[] scheduleRows, bool showAll) { SeriesCollection SC = new SeriesCollection(); ADAWorkSystemDataSet.ScheduleRow firstScheduleRow = scheduleRows[0] as ADAWorkSystemDataSet.ScheduleRow; ADAWorkSystemDataSet.ActivityRow[] firstScheduleActivityRows = firstScheduleRow.GetActivityRows(); DateTime dateTimeMin = DateTime.MaxValue; DateTime dateTimeMax = DateTime.MinValue; foreach (ADAWorkSystemDataSet.ActivityRow firstScheduleActivityRow in firstScheduleActivityRows) { Series s = new Series(); s.Type = SeriesType.Line; s.Line.Width = 4; s.Name = firstScheduleActivityRow.Name; foreach (ADAWorkSystemDataSet.ScheduleRow scheduleRow in scheduleRows) { ADAWorkSystemDataSet.ActivityRow[] activityRows = scheduleRow.GetActivityRows(); foreach (ADAWorkSystemDataSet.ActivityRow activityRow in activityRows) { if (activityRow.Name == s.Name) { Element e = new Element(); e.XDateTime = activityRow.ExecutionEnd.Date; if (showAll) { if (e.XDateTime > dateTimeMax) { dateTimeMax = e.XDateTime; } if (e.XDateTime < dateTimeMin) { dateTimeMin = e.XDateTime; } } TimeSpan span = activityRow.ExecutionEnd.Subtract(activityRow.ExecutionStart); e.YValue = span.TotalMinutes; int i = s.Elements.Count - 1; while (i >= 0) { if (s.Elements[i].XDateTime.CompareTo(e.XDateTime) <= 0) { s.Elements.Insert(i + 1, e); break; } else { i--; } } if (i < 0) { s.Elements.Insert(0, e); } break; } } } //s.DefaultElement.Color = Color.Red; SC.Add(s); } if (showAll) { monthCalendarStart.DateSelected -= this.monthCalendar_DateSelected; monthCalendarStart.SelectionStart = dateTimeMin.AddDays(-2); monthCalendarStart.SelectionEnd = monthCalendarStart.SelectionStart; monthCalendarStart.DateSelected += this.monthCalendar_DateSelected; monthCalendarEnd.DateSelected -= this.monthCalendar_DateSelected; monthCalendarEnd.SelectionEnd = dateTimeMax.AddDays(2); monthCalendarEnd.SelectionEnd = monthCalendarEnd.SelectionStart; monthCalendarEnd.DateSelected += this.monthCalendar_DateSelected; } return(SC); }