/// <summary> /// 数据构造函数(火车头) /// </summary> /// <param name="leftdata">占有条里左边边界的距离</param> /// <param name="color">颜色</param> /// <param name="length">占用条长度</param> /// <param name="value">车辆编号</param> /// <param name="status"> /// 1:资源尚未开始占用 /// 2:资源占用中 /// 3:资源结束占用 /// </param> /// <param name="beginTime">开始时间</param> /// <param name="endTime">结束时间</param> /// <param name="txt">名称</param> /// <param name="trainName">所属列</param> /// <param name="complete">完成情况</param> public DataControl(IShiGongManager person) { try { LoadInit(person, ref canInit); if (canInit) { InitializeComponent(); //使用者对象的文本 Text = person.DisPlayName; } } catch (Exception ex) { MethodLb.CreateLog(this.GetType().FullName, "DataControl", ex.ToString(), person); } finally { } }
/// <summary> /// 添加任务 /// </summary> /// <param name="shiGonManager">施工者</param> public void AddItem(IShiGongManager shiGonManager) { try { //生成任务 DataControl datacontrol = new DataControl(shiGonManager); datacontrol.Tag = shiGonManager; dataList.Add(datacontrol); datacontrol.MouseRightButtonDown += (object sender2, MouseButtonEventArgs e2) => { menu1.Tag = sender2; }; Flush(t1.com.SelectedValue, t2.com.SelectedValue); menu1.Tag = null; } catch (Exception ex) { MethodLb.CreateLog(this.GetType().FullName, "AddItem", ex.ToString(), shiGonManager); } finally { } }
/// <summary> /// 生成 /// </summary> /// <param name="sender"></param> /// <param name="e"></param> void MainPage_Click2(object sender, RoutedEventArgs e) { try { var data = ((sender as FrameworkElement).Parent as FrameworkElement).Tag; if (data == null || data.GetType() != typeof(Point)) { menu1.Tag = null; return; } //获取其中一个点 Point point = (Point)data; if (SetTargetInformationEvent != null) { //获取开始时间 DateTime d = UserControlOperate.beginT; DateTime realBeginTime = d.AddDays(point.X); IShiGongManager shiGonManager = null; //获取到返回的任务人 SetTargetInformationEvent(ref shiGonManager); //如果任务人不为null则执行安排 if (shiGonManager != null) { #region 时间获取 //获取结束时间 DateTime endTime = default(DateTime); if (!DateTime.TryParse(shiGonManager.EndTime, out endTime)) { return; } //如果时间没设置或设置错误,则使用默认的勾选模式 DateTime starTime = default(DateTime); if (!DateTime.TryParse(shiGonManager.StartTime, out starTime)) { //开始时间设置 shiGonManager.StartTime = realBeginTime.ToString("yyyy-MM-dd"); } //如果周期超出界限,不再执行 if (endTime > realBeginTime.AddMonths(IntMouthLong)) { return; } #endregion #region 设置列 if (!TitleControl.striList.Contains(shiGonManager.ShiGongID)) { //设置列 shiGonManager.ShiGongID = TitleControl.striList[Convert.ToInt32(point.Y)]; } #endregion //生成任务 AddItem(shiGonManager); } } } catch (Exception ex) { MethodLb.CreateLog(this.GetType().FullName, "MainPage_Click2", ex.ToString(), sender, e); } finally { } }
void LoadInit(IShiGongManager person, ref bool canInitt) { try { #region 时间设置 DateTime dT = default(DateTime); if (string.IsNullOrEmpty(person.StartTime) || !DateTime.TryParse(person.StartTime, out (dT))) { return; } if (string.IsNullOrEmpty(person.ShiGongID)) { return; } if (string.IsNullOrEmpty(person.EndTime) || !DateTime.TryParse(person.EndTime, out (dT))) { return; } if (Convert.ToDateTime(beginTime) > Convert.ToDateTime(person.EndTime)) { return; } //开始时间与结束时间的时间差 TimeSpan k = Convert.ToDateTime(person.EndTime) - Convert.ToDateTime(person.StartTime); //开始时间(每一个使用者对象) this.BeginTime = Convert.ToDateTime(person.StartTime); //结束时间(每一个使用者对象) this.EndTime = Convert.ToDateTime(person.EndTime); if (k.Days < 0) { return; } //每一个使用者对象的长度(比如5月1至5月4日) Length = k.Days + 1; #endregion #region 设置状态 if (person.InZhaungTai < 0 || person.InZhaungTai > 1) { return; } if (person.InZhaungTai == 0) { person.strZhuangTai = "未进行"; } else if (person.InZhaungTai == 1) { person.strZhuangTai = "已完成"; } else { person.strZhuangTai = "进行中"; } #endregion #region 对应的列 //通过标题集合中该对象名称的索引来设置列的位置 int postion = TitleControl.striList.IndexOf(person.ShiGongID); //下标为-1,则说明不在这个区域 if (postion < 0) { return; } //设置条件为大于0 if (postion > 0) { TrainPosition = postion; } #endregion //完成情况 Complte = person.InZhaungTai; //所属列名称 TrainName = person.ShiGongID; // 加载事件 this.Loaded += new RoutedEventHandler(DataControl_Loaded); //能一直执行到这里,说明允许生成该任务 canInitt = true; } catch (Exception ex) { MethodLb.CreateLog(this.GetType().FullName, "LoadInit", ex.ToString(), person, canInitt); } finally { } }