示例#1
0
        /// <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
            {
            }
        }
示例#2
0
 /// <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
     {
     }
 }
示例#3
0
        /// <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
            {
            }
        }
示例#4
0
        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
            {
            }
        }