Esempio n. 1
0
        /// <summary>
        /// 选择判定,并设置调动状态,调动From,To数据 
        /// </summary>
        /// <param name="selectFlg">1:【考勤】工种;  2:【考勤】(标配)人员;  3:【考勤】(标配以外)人员; 4:【考勤】(空位)人员
        /// 5:【未定义】人员; 6:【未定义】(空位)人员;  7:【支援】人员; 8:【支援】(空位)人员</param>
        /// <param name="ObjSender">工种,人员,空位</param>
        /// <summary>
        private void checkSelectPersons(int selectFlg, object ObjSender)
        {
            //this.TopMost = false;
            if (strFromSelFlg == 0) //from没有选择的情况
            {
                //From选择类型保存
                strFromSelFlg = selectFlg;
                switch (strFromSelFlg)
                {//根据from选择类型,设定To的那些可选

                    case 2://From: 2:【考勤】(标配)人员
                        bPlistFlg = true;//【考勤】工种可选flg
                        bPerFlg = true;//【考勤】关位可选flg
                        bPerNullFlg = true;//【考勤】空位可选flg
                        bProFlg = false;//【未定义】关位可选flg
                        bProNullFlg = true;//【未定义】空位可选flg
                        bSupFlg = false;//【支援】关位可选flg
                        bSupNullFlg = true;//【支援】空位可选flg
                        break;
                    case 5://From: 5:【未定义】人员
                        bPlistFlg = true;//【考勤】工种可选flg
                        bPerFlg = true;//【考勤】关位可选flg
                        bPerNullFlg = true;//【考勤】空位可选flg
                        bProFlg = false;//【未定义】关位可选flg
                        bProNullFlg = false;//【未定义】空位可选flg
                        bSupFlg = false;//【支援】关位可选flg
                        bSupNullFlg = false;//【支援】空位可选flg
                        break;

                    case 7://From: 7:【支援】人员
                        bPlistFlg = true;//【考勤】工种可选flg
                        bPerFlg = true;//【考勤】标配关位可选flg
                        bPerNullFlg = true;//【考勤】空位可选flg
                        bProFlg = false;//【未定义】关位可选flg
                        bProNullFlg = false;//【未定义】空位可选flg
                        bSupFlg = false;//【支援】关位可选flg
                        bSupNullFlg = false;//【支援】空位可选flg
                        break;

                    default: break;
                }
                m_Person = ObjSender as UserPerson;
                //组长不可以调出
                if (m_Person.GuanweiNM == "组长")
                {
                    return;
                }
                m_Person.BackColor = Color.Red;
                m_Person.Tag = 1;
                txtFrom.Text = m_Person.TitleName + ":" + m_Person.UserID + "," + m_Person.UserName;
                moveFromPerson = m_Person;
                txtTo.Text = "";

            }
            //from已经选择的情况,根据From,对To处理
            else
            {
                strToSelFlg = selectFlg;
                if (strFromSelFlg == 2)//From:【考勤】标配人员
                {
                    switch (strToSelFlg)
                    {//根据from选择类型,设定To的那些可选
                        case 1://From:【考勤】标配人员-->  To选择是: 1:【考勤】工种
                            m_PersonList = ObjSender as UserPersonsList;
                            //组长、班长、副班长、替关者不可以调入
                            if (m_PersonList.TitleGuanwei == "组长" || m_PersonList.TitleGuanwei == "班长"
                                || m_PersonList.TitleGuanwei == "副班长" || m_PersonList.TitleGuanwei == "替关者")
                            {
                                return;
                            }

                            m_PersonList.BackColor = Color.Red;
                            m_PersonList.Tag = 1;
                            moveToPersonList = m_PersonList;
                            txtTo.Text = moveToPersonList.TitleGuanwei;
                            moveToPersonFlg = "1";//1:moveToPersonList; 2:moveToPerson;3:moveToPersonNull
                            if (moveFromPerson.TitleName.Substring(1, 1) == "支")
                            {
                                //支援者
                                pflag = "5";//人员调动类型:支援调入
                                dtpStartDate.Enabled = true;//开始日期
                                dtpEndDate.Enabled = true;//结束日期
                            }
                            else if (moveFromPerson.TitleName.Substring(1, 1) == "替"
                                || moveFromPerson.TitleName.Substring(0, 3) == "替关者")
                            {
                                //替关者
                                pflag = "6";//人员调动类型:替关调动
                                dtpStartDate.Enabled = true;//开始日期
                                dtpEndDate.Enabled = true;//结束日期
                            }
                            else//非替关者
                            {
                                pflag = "3";//人员调动类型:关位调整
                                dtpStartDate.Enabled = true;//开始日期
                                dtpEndDate.Enabled = false;//结束日期

                            }
                            break;
                        case 2://From:【考勤】标配人员-->  To选择是:2:【考勤】标配人员
                            UserPerson m_Person = ObjSender as UserPerson;
                            if (m_Person.BackColor == Color.Red
                                || m_Person.GuanweiNM == "组长" || m_Person.GuanweiNM == "班长"
                                || m_Person.GuanweiNM == "副班长")//|| m_Person.GuanweiNM == "替关者"  修改日期2015-12-29
                            {//选择自己的场合,组长\副班长\班长\替关者 选择的场合,不可选择
                                return;
                            }

                            m_Person.BackColor = Color.Red;
                            m_Person.Tag = 1;
                            moveToPerson = m_Person;
                            txtTo.Text = m_Person.TitleName + ":" + m_Person.UserID + "," + m_Person.UserName;
                            moveToPersonFlg = "2";//1:moveToPersonList; 2:moveToPerson;3:moveToPersonNull
                            if (moveFromPerson.TitleName.Substring(0, 2) == "班长"
                                || moveFromPerson.TitleName.Substring(0, 3) == "副班长" || moveFromPerson.TitleName.Substring(0, 2) == "组长")
                            {
                                pflag = "6";//人员调动类型:替关调动
                                dtpStartDate.Enabled = true;//开始日期
                                dtpEndDate.Enabled = true;//结束日期
                            }
                            else if (moveFromPerson.TitleName.Substring(1, 1) == "替"
                                || moveFromPerson.TitleName.Substring(0, 3) == "替关者")
                            {
                                pflag = "6";//人员调动类型:替关调动
                                dtpStartDate.Enabled = true;//开始日期
                                dtpEndDate.Enabled = true;//结束日期
                            }
                            else if (moveFromPerson.TitleName.Substring(1, 1) == "支")
                            {
                                pflag = "5";//人员调动类型:支援调入
                                dtpStartDate.Enabled = true;//开始日期
                                dtpEndDate.Enabled = true;//结束日期
                            }
                            else//非替关者
                            {
                                pflag = "3";//人员调动类型:关位调整
                                dtpStartDate.Enabled = true;//开始日期
                                dtpEndDate.Enabled = false;//结束日期
                            }

                            break;
                        case 4://From:【考勤】标配人员-->  To选择是:4:【考勤】(空位)人员

                            //设置调入数据
                            m_PersonNull = ObjSender as UserPersonNull;
                            //组长、班长、副班长、替关者不可以调入(===============================================================2015-12-04 都可以调入)
                            //if (m_PersonNull.TitleName.Substring(0, 2) == "组长" || m_PersonNull.TitleName.Substring(0, 2) == "班长"
                            //    || m_PersonNull.TitleName.Substring(0, 2) == "副班" || m_PersonNull.TitleName.Substring(0, 2) == "替关")
                            //{
                            //    return;
                            //}
                            m_PersonNull.BackColor = Color.Red;
                            m_PersonNull.Tag = 1;
                            moveToPersonNull = m_PersonNull;
                            txtTo.Text = moveToPersonNull.TitleName;
                            moveToPersonFlg = "3";//1:moveToPersonList; 2:moveToPerson;3:moveToPersonNull
                            if (moveFromPerson.TitleName.Substring(0, 2) == "班长"
                               || moveFromPerson.TitleName.Substring(0, 3) == "副班长" || moveFromPerson.TitleName.Substring(0, 2) == "组长")
                            {
                                pflag = "6";//人员调动类型:替关调动
                                dtpStartDate.Enabled = true;//开始日期
                                dtpEndDate.Enabled = true;//结束日期
                            }
                            else if (moveFromPerson.TitleName.Substring(1, 1) == "替"
                               || moveFromPerson.TitleName.Substring(0, 3) == "替关者")
                            {
                                pflag = "6";//人员调动类型:替关调动
                                dtpStartDate.Enabled = true;//开始日期
                                dtpEndDate.Enabled = true;//结束日期
                            }
                            else if (moveFromPerson.TitleName.Substring(1, 1) == "支")
                            {
                                pflag = "5";//人员调动类型:支援调入
                                dtpStartDate.Enabled = true;//开始日期
                                dtpEndDate.Enabled = true;//结束日期
                            }
                            else//非替关者
                            {
                                pflag = "3";//人员调动类型:关位调整
                                dtpStartDate.Enabled = true;//开始日期
                                dtpEndDate.Enabled = false;//结束日期
                            }


                            break;

                        case 6://From:【考勤】标配人员-->  To选择是:6:【未定义】(空位)人员
                            m_PersonNull = ObjSender as UserPersonNull;
                            //设置调入数据
                            if (moveFromPerson.TitleName.Substring(0, 2) == "班长" && !Common._personid.Equals(Common._Administrator))
                            {
                                return;
                            }
                            m_PersonNull.BackColor = Color.Red;
                            m_PersonNull.Tag = 1;
                            moveToPersonNull = m_PersonNull;
                            txtTo.Text = moveToPersonNull.TitleName;
                            moveToPersonFlg = "3";//1:moveToPersonList; 2:moveToPerson;3:moveToPersonNull
                            pflag = "2";//人员调动类型:人员调出
                            dtpStartDate.Enabled = true;//开始日期
                            dtpEndDate.Enabled = false;//结束日期

                            break;
                        case 8://From:【考勤】标配人员-->  To选择是:8:【支援】(空位)人员

                            //设置调入数据
                            m_PersonNull = ObjSender as UserPersonNull;
                            m_PersonNull.BackColor = Color.Red;
                            m_PersonNull.Tag = 1;
                            moveToPersonNull = m_PersonNull;
                            txtTo.Text = moveToPersonNull.TitleName;
                            moveToPersonFlg = "3";//1:moveToPersonList; 2:moveToPerson;3:moveToPersonNull
                            pflag = "4";//人员调动类型:支援调出
                            dtpStartDate.Enabled = true;//开始日期
                            dtpEndDate.Enabled = true;//结束日期

                            break;
                        default: break;
                    }
                }

                //From:【未定义】关位
                else if (strFromSelFlg == 5)
                {
                    switch (strToSelFlg)
                    {//根据from选择类型,设定To的那些可选
                        case 1://From:【未定义】关位--> TO选择是:1:【考勤】工种
                            m_PersonList = ObjSender as UserPersonsList;
                            //组长、班长、副班长、替关者不可以调入
                            if (m_PersonList.TitleGuanwei == "组长" || m_PersonList.TitleGuanwei == "班长"
                                || m_PersonList.TitleGuanwei == "副班长" || m_PersonList.TitleGuanwei == "替关者")
                            {
                                return;
                            }
                            m_PersonList.BackColor = Color.Red;
                            m_PersonList.Tag = 1;
                            moveToPersonList = m_PersonList;
                            txtTo.Text = moveToPersonList.TitleGuanwei;
                            moveToPersonFlg = "1";//1:moveToPersonList; 2:moveToPerson;3:moveToPersonNull
                            pflag = "1";//人员调动类型:人员调入
                            dtpStartDate.Enabled = true;//开始日期
                            dtpEndDate.Enabled = false;//结束日期

                            break;
                        case 2://From:【未定义】关位--> TO选择是:2:【考勤】(标配)人员
                            m_Person = ObjSender as UserPerson;

                            if (m_Person.BackColor == Color.Red
                                || m_Person.GuanweiNM.Substring(0, 2) == "组长" || m_Person.GuanweiNM.Substring(0, 2) == "班长"
                                || m_Person.GuanweiNM.Substring(0, 2) == "副班" || m_Person.GuanweiNM.Substring(0, 2) == "替关")
                            {//选择自己的场合,组长\副班长\班长\替关者 选择的场合,不可选择
                                return;
                            }
                            m_Person.BackColor = Color.Red;
                            m_Person.Tag = 1;
                            moveToPerson = m_Person;
                            txtTo.Text = m_Person.TitleName + ":" + m_Person.UserID + "," + m_Person.UserName;
                            moveToPersonFlg = "2";//1:moveToPersonList; 2:moveToPerson;3:moveToPersonNull
                            pflag = "1";//人员调动类型:人员调入
                            dtpStartDate.Enabled = true;//开始日期
                            dtpEndDate.Enabled = false;//结束日期


                            break;
                        case 4://From:【未定义】关位--> TO选择是:4:【考勤】(空位)人员

                            //设置调入数据
                            m_PersonNull = ObjSender as UserPersonNull;
                            if (m_PersonNull.TitleName.Substring(0, 2) == "组长" || m_PersonNull.TitleName.Substring(0, 2) == "班长"
                               || m_PersonNull.TitleName.Substring(0, 2) == "副班" || m_PersonNull.TitleName.Substring(0, 2) == "替关")
                            {
                                return;
                            }
                            m_PersonNull.BackColor = Color.Red;
                            m_PersonNull.Tag = 1;
                            moveToPersonNull = m_PersonNull;
                            txtTo.Text = moveToPersonNull.TitleName;
                            moveToPersonFlg = "3";//1:moveToPersonList; 2:moveToPerson;3:moveToPersonNull
                            pflag = "1";//人员调动类型:人员调入
                            dtpStartDate.Enabled = true;//开始日期
                            dtpEndDate.Enabled = false;//结束日期

                            break;
                        default: break;
                    }
                }

                //From:【支援】关位
                else if (strFromSelFlg == 7)
                {
                    //开始时间,结束时间取得
                    string str_sql = string.Format(@"select distinct StrDate,EndDate  from V_Attend_Move_i  
                                                    where 1=1 and '{0}' between StrDate and EndDate
                                                    and MoveStatus='支援调出' and UserID='{1}'   ",
                                                    dateOperDate1.EditValue.ToString(), moveFromPerson.UserID);
                    DataTable m_tbl = SysParam.m_daoCommon.GetTableInfoBySqlNoWhere(str_sql);

                    switch (strToSelFlg)
                    {//根据from选择类型,设定To的那些可选
                        case 1://From:【支援】关位--> TO选择是:1:【考勤】工种
                            m_PersonList = ObjSender as UserPersonsList;
                            //组长、班长、副班长、替关者不可以调入
                            if (m_PersonList.TitleGuanwei == "组长" || m_PersonList.TitleGuanwei == "班长"
                                || m_PersonList.TitleGuanwei == "副班长" || m_PersonList.TitleGuanwei == "替关者")
                            {
                                return;
                            }
                            m_PersonList.BackColor = Color.Red;
                            m_PersonList.Tag = 1;
                            moveToPersonList = m_PersonList;
                            txtTo.Text = moveToPersonList.TitleGuanwei;
                            moveToPersonFlg = "1";//1:moveToPersonList; 2:moveToPerson;3:moveToPersonNull
                            pflag = "5";//人员调动类型:支援调入
                            dtpStartDate.Enabled = true;//开始日期
                            dtpEndDate.Enabled = true;//结束日期
                            if (m_tbl.Rows.Count > 0)
                            {
                                dtpStartDate.EditValue = m_tbl.Rows[0]["StrDate"].ToString();//开始日期
                                dtpEndDate.EditValue = m_tbl.Rows[0]["EndDate"].ToString();//结束日期
                            }
                            break;
                        case 2://From:【支援】关位--> TO选择是:2:【考勤】(标配)人员
                            m_Person = ObjSender as UserPerson;
                            if (m_Person.BackColor == Color.Red
                               || m_Person.GuanweiNM == "组长" || m_Person.GuanweiNM == "班长"
                               || m_Person.GuanweiNM == "副班长" || m_Person.GuanweiNM == "替关者")
                            {//选择自己的场合,组长\副班长\班长\替关者 选择的场合,不可选择
                                return;
                            }
                            m_Person.BackColor = Color.Red;
                            m_Person.Tag = 1;
                            moveToPerson = m_Person;
                            txtTo.Text = m_Person.TitleName + ":" + m_Person.UserID + "," + m_Person.UserName;
                            moveToPersonFlg = "2";//1:moveToPersonList; 2:moveToPerson;3:moveToPersonNull
                            pflag = "5";//人员调动类型:支援调入
                            dtpStartDate.Enabled = true;//开始日期
                            dtpEndDate.Enabled = true;//结束日期
                            if (m_tbl.Rows.Count > 0)
                            {
                                dtpStartDate.EditValue = m_tbl.Rows[0]["StrDate"].ToString();//开始日期
                                dtpEndDate.EditValue = m_tbl.Rows[0]["EndDate"].ToString();//结束日期
                            }
                            break;
                        case 4://From:【支援】关位--> TO选择是:4:【考勤】(空位)人员

                            //设置调入数据
                            m_PersonNull = ObjSender as UserPersonNull;
                            if (m_PersonNull.TitleName.Substring(0, 2) == "组长" || m_PersonNull.TitleName.Substring(0, 2) == "班长"
                               || m_PersonNull.TitleName.Substring(0, 2) == "副班" || m_PersonNull.TitleName.Substring(0, 2) == "替关")
                            {
                                return;
                            }
                            m_PersonNull.BackColor = Color.Red;
                            m_PersonNull.Tag = 1;
                            moveToPersonNull = m_PersonNull;
                            txtTo.Text = moveToPersonNull.TitleName;
                            moveToPersonFlg = "3";//1:moveToPersonList; 2:moveToPerson;3:moveToPersonNull

                            pflag = "5";//人员调动类型:支援调入
                            dtpStartDate.Enabled = true;//开始日期
                            dtpEndDate.Enabled = true;//结束日期
                            if (m_tbl.Rows.Count > 0)
                            {
                                dtpStartDate.EditValue = m_tbl.Rows[0]["StrDate"].ToString();//开始日期
                                dtpEndDate.EditValue = m_tbl.Rows[0]["EndDate"].ToString();//结束日期
                            }
                            break;

                        default: break;
                    }

                }
                bPlistFlg = false;//关位list
                bPerFlg = false;
                bPerNullFlg = false;
                bProFlg = false;//未定义
                bProNullFlg = false;//未定义
                bSupFlg = false;//支援
                bSupNullFlg = false;//支援
            }
            //this.TopMost = false;

        }
Esempio n. 2
0
        private objCl initPanelContentAddcl(objCl o)
        {
            //throw new NotImplementedException();
            Stopwatch tmpWatch = new Stopwatch();
            try
            {
                tmpWatch.Start();

                this.SuspendLayout();

                _objcl2 = (objCl)o;

                _lstContr2 = new Control[o.gwNum + o.UserPersonNum + o.UserNullNum];

                //this.Text = "人员揭示:开始初始化控-->关位:" + o.gwNum + "个";

                //************todo something


                //关位
                _objcl2.u_gwNum = 0;
                for (int i = 0; i < o.gwNum; i++)
                {
                    UserPersonsList tmpd = new UserPersonsList();
                    tmpd.Visible = false;
                    tmpd.GuanweiID = i.ToString();
                    tmpd.RealCount = i;
                    tmpd.StandardCount = i;
                    //tmpd.Left = (i % 14) * tmpd.Width;
                    //tmpd.Top = (i % 10) * tmpd.Height;
                    _lstContr2[i] = tmpd;
                }

                //人员

                //this.Text = "人员揭示:初始化控-->关位:" + o.gwNum + ",已完成.开始人员控件:" + o.UserPersonNum + "个";

                _objcl2.u_UserPersonNum = o.gwNum;
                for (int i = o.gwNum; i < (o.gwNum + o.UserPersonNum); i++)
                {
                    UserPerson tmpd = new UserPerson();
                    tmpd.Visible = false;
                    tmpd.UserID = i.ToString();
                    tmpd.UserName = "******" + i.ToString();
                    //tmpd.Left = (i % 14) * tmpd.Width;
                    //tmpd.Top = (i % 10) * tmpd.Height;
                    _lstContr2[i] = tmpd;
                }
                //空位

                //this.Text = "人员揭示:初始化控-->关位:" + o.gwNum + ",人员:" + o.UserPersonNum + ",已完成.开始空位人员控件:" + o.UserNullNum + "个";


                var tmpi = o.gwNum + o.UserPersonNum;
                _objcl2.u_UserNullNum = tmpi;
                for (int i = tmpi; i < (o.gwNum + o.UserPersonNum + o.UserNullNum); i++)
                {
                    UserPersonNull tmpd = new UserPersonNull();
                    tmpd.Visible = false;
                    tmpd.UserID = i.ToString();
                    tmpd.UserName = "******" + i.ToString();
                    //tmpd.Left = (i % 14) * tmpd.Width;
                    //tmpd.Top = (i % 10) * tmpd.Height;
                    _lstContr2[i] = tmpd;
                }

                //************end todo

                o.cl.Controls.AddRange(_lstContr2);

                this.ResumeLayout(false);
                this.PerformLayout();
                tmpWatch.Stop();

                var msg = "人员调换:初始化控件,关位:" + o.gwNum + ",人员:" + o.UserPersonNum + ",空位:" + o.UserNullNum + ",Time:" + tmpWatch.Elapsed.ToString();
                Program.logFlagStart(log, tmpWatch, msg);


                return o;
            }
            catch (Exception ex)
            {
                return null;
                throw;
            }
        }
Esempio n. 3
0
        /// <summary>
        /// 获取考勤人员信息一览
        /// </summary>
        protected override void GetDspDataList()
        {
            Stopwatch s = new Stopwatch();
            Program.logFlagStart(log, s, "获取考勤人员信息一览");
            try
            {
                //this.TopMost = false;
                row_Cnt = -1;//布局行号归零
                m_tblDataList = new DataTable();//人员考勤情况数据
                m_tblGuanweiList = new DataTable();//关位信息
                //1、取得关位顺序信息
                string str_sql = string.Empty;
                str_sql = string.Format(@" SELECT a.*,  IsNull(h.InCount,0) as realityCount
                                            FROM (select CONVERT(VARCHAR(10),'{0}',120) as AttendDate,
                                                     JobForID,   ProjectID, LineID,  TeamID, myTeamName, orgTeamName,
                                                     GuanweiID, GuanweiName,  GuanweiType,  RowID, SetNum 
                                                  FROM V_Produce_Para
                                                ) AS a 
                                         LEFT  JOIN (SELECT 
                                                       a1.JobForID, a1.ProjectID, a1.LineID, a1.TeamID,  a1.GuanweiID,   a1.AttendDate, 
                                                       COUNT(*) AS InCount
                                                  FROM   (
													select JobForID, ProjectID, LineID, TeamID, GuanweiID, AttendDate,guanweisite,AttendWork,AttendType,AttendMemo  
													from V_Attend_Result_Info
												  ) AS a1 --考勤汇总报表
                                                  WHERE      a1.AttendWork > 0 AND ISNULL(a1.AttendMemo,'') <>'支援调出'
													AND a1.AttendType<>'请假' 
													AND a1.AttendType<>'欠勤' 
                                                  GROUP BY a1.JobForID, a1.ProjectID, a1.LineID, a1.TeamID, a1.GuanweiID,a1.AttendDate
                                            ) AS h 
                                               ON  a.JobForID = h.JobForID
                                               AND a.ProjectID= h.ProjectID 
                                               AND a.LineID= h.LineID 
                                               AND a.TeamID= h.TeamID 
                                               AND a.GuanweiID= h.GuanweiID
                                               AND a.AttendDate= h.AttendDate
                                       where a.myTeamName='{1}' and a.AttendDate=CONVERT(VARCHAR(10),'{2}',120)   
                                        group by RowID,a.AttendDate,a.JobForID,a.ProjectID,a.LineID,a.TeamID,a.myTeamName,a.orgTeamName,a.GuanweiID,
                                       a.GuanweiName,a.GuanweiType,a.SetNum,h.InCount order by RowID ",
                                  dateOperDate1.Text.Trim(), lookmyteamName.Text.ToString(), dateOperDate1.Text.Trim());
                m_tblGuanweiList = SysParam.m_daoCommon.GetTableInfoBySqlNoWhere(str_sql);
                if (m_tblGuanweiList.Rows.Count == 0)
                {
                    //panelContent.Controls.Clear();
                    return;
                }
                //2、人员考勤情况数据取得
                str_sql = string.Format(@"select distinct  * from V_User_TotalShow_Image WHERE 
                                                (JobForID <> 0) AND (ProjectID <> 0) 
                                                AND (LineID <> 0) AND (TeamID <> 0) 
                                                AND (GuanweiID <> 0) and ISNULL(AttendMemo,'') <>'支援调出' ");

                str_sql += " and myTeamName='" + lookmyteamName.Text.ToString() + "'";

                str_sql += " and AttendDate=CONVERT(VARCHAR(10),'" + dateOperDate1.Text.Trim() + "',120) ";
                str_sql += " order by JobForID,ProjectID,LineID,TeamID,GuanweiID,GuanweiSite ";

                m_tblDataList = SysParam.m_daoCommon.GetTableInfoBySqlNoWhere(str_sql);
                if (m_tblDataList.Rows.Count > 0)
                {
                    string TeamSetNM = m_tblDataList.Rows[0]["TeamSetNM"].ToString();
                    //设置调动开始时间、结束时间
                    if (TeamSetNM == "白班")
                    {
                        dtpStartDate.EditValue = DateTime.Now.ToString("yyyy-MM-dd") + " 08:00";
                        dtpEndDate.EditValue = DateTime.Now.ToString("yyyy-MM-dd") + " 18:00";
                    }
                    else
                    {
                        dtpStartDate.EditValue = DateTime.Now.ToString("yyyy-MM-dd") + " 22:00";
                        dtpEndDate.EditValue = DateTime.Now.AddDays(1).ToString("yyyy-MM-dd") + " 07:00";
                    }

                }
                this.SuspendLayout();
                //循环把人员信息放入panel
                //panelContent.Controls.Clear();
                isLeftInto = true;//是否考勤区域处理

                xtraScrollableControl1.VerticalScroll.Value = 0;
                var isCheckCL = _lstContr2.Where(m => !m.BackColor.Equals(Color.Transparent) || !m.Tag.Equals("0")).ToList();
                foreach (Control item in isCheckCL)
                {
                    if (item.GetType().ToString() == "MachineSystem.UserControls.UserPerson")
                    {
                        item.BackColor = Color.Transparent;
                    }
                    item.Tag = "0";
                    //item.Visible = false;
                }
                _objcl2.u_gwNum = 0;
                _objcl2.u_UserPersonNum = _objcl2.gwNum;
                _objcl2.u_UserNullNum = _objcl2.gwNum + _objcl2.UserPersonNum;
                //关位
                string strGuwanweiID = string.Empty;

                var gwcount = m_tblGuanweiList.Rows.Count;
                for (int a = 0; a < gwcount; a++)
                {
                    strGuwanweiID = m_tblGuanweiList.Rows[a]["GuanweiID"].ToString();

                    //当前关位下的人员信息,关位下没有人员,不展示关位(工种)信息
                    DataView view = new DataView(m_tblDataList.Copy());
                    view.RowFilter = "GuanweiID='" + strGuwanweiID + "'";

                    DataTable dt_temp = view.ToTable();

                    //添加关位(工种)
                    m_PersonList = (UserPersonsList)_lstContr2[_objcl2.u_gwNum]; //new UserPersonsList();
                    _objcl2.u_gwNum++;

                    m_PersonList.TitleGuanwei = m_tblGuanweiList.Rows[a]["GuanweiName"].ToString();//关位名称
                    m_PersonList.GuanweiID = m_tblGuanweiList.Rows[a]["GuanweiID"].ToString();
                    bpCnt = int.Parse(m_tblGuanweiList.Rows[a]["SetNum"].ToString());

                    m_PersonList.StandardCount = bpCnt;//关位标配人数
                    m_PersonList.RealCount = int.Parse(m_tblGuanweiList.Rows[a]["realityCount"].ToString());//关位实配人数
                    try
                    {
                        m_PersonList.AllEventClick -= new UserPersonsList.AllEvent(m_PersonList_AllEventClick);
                    }
                    catch (Exception ex)
                    {
                        log.Error("AllEventClick Error:" + m_Person.UserID);
                    }
                    m_PersonList.AllEventClick += new UserPersonsList.AllEvent(m_PersonList_AllEventClick);
                    this.setImgIndex(true);//设置显示位置
                    //panelContent.Controls.Add(m_PersonList);//展示空间
                    m_PersonList.Location = _point;//设置空间展示坐标
                    if (!m_PersonList.Visible)
                    {
                        Program._frmMain.Invoke(new Action(delegate()
                        {
                            Application.DoEvents();
                            m_PersonList.Visible = true;
                        }));
                    }

                    gwShowSite = 1;
                    view = new DataView(dt_temp.Copy());
                    view.RowFilter = "GuanweiSite='99'";
                    int intCount = bpCnt + view.ToTable().Rows.Count;
                    for (int i = 0; i < intCount; i++)
                    {
                        Boolean perFlg = true;
                        int GwSite = 0;
                        if (dt_temp.Rows.Count > 0)
                        {
                            GwSite = int.Parse(dt_temp.Rows[0]["GuanweiSite"].ToString());//关位位置
                        }
                        while (GwSite == (i + 1))
                        {
                            //人员信息
                            m_Person = (UserPerson)_lstContr2[_objcl2.u_UserPersonNum];
                            _objcl2.u_UserPersonNum++; //new UserPerson();

                            perFlg = false;
                            //位置相同
                            m_Person.TitleName = dt_temp.Rows[0]["GuanweiNM"].ToString() + " - " + GwSite;

                            if (dt_temp.Rows[0]["AttendType"].ToString() == "支援")
                            {
                                m_Person.TitleName = "(支)" + dt_temp.Rows[0]["GuanweiNM"].ToString() + " - " + GwSite;
                            }
                            if (dt_temp.Rows[0]["AttendType"].ToString() == "替关")
                            {
                                m_Person.TitleName = "(替)" + dt_temp.Rows[0]["GuanweiNM"].ToString() + " - " + GwSite;
                            }

                            m_Person.GuanweiID = dt_temp.Rows[0]["GuanweiID"].ToString();
                            m_Person.GuanweiNM = dt_temp.Rows[0]["GuanweiNM"].ToString();
                            m_Person.GuanweiSite = GwSite.ToString();
                            m_Person.GuanweiColor = dt_temp.Rows[0]["GuanweiColor"].ToString();
                            m_Person.Status = dt_temp.Rows[0]["StatusName"].ToString();
                            m_Person.StatusColor = dt_temp.Rows[0]["StatusColor"].ToString();
                            m_Person.Time = dt_temp.Rows[0]["CardTime"].ToString();
                            m_Person.TimeColor = dt_temp.Rows[0]["CardTimeColor"].ToString();
                            m_Person.Remind = dt_temp.Rows[0]["warnMemo"].ToString();
                            m_Person.RemindColor = dt_temp.Rows[0]["warnColor"].ToString();
                            m_Person.LicenseType = dt_temp.Rows[0]["LicenseType"].ToString();
                            m_Person.LicenseColor = dt_temp.Rows[0]["LicenseColor"].ToString();
                            m_Person.UserID = dt_temp.Rows[0]["UserID"].ToString();
                            m_Person.UserName = dt_temp.Rows[0]["UserNM"].ToString();
                            m_Person.UserIdNmColor = dt_temp.Rows[0]["UserIdColor"].ToString();
                            m_Person.Tag = "0";
                            try
                            {
                                m_Person.AllEventClick -= new UserPerson.AllEvent(m_Person_AllEventClick);
                                m_Person.DoubleClick -= new UserPerson.DoubleEvent(m_Person_DoubleClick);
                            }
                            catch (Exception ex)
                            {
                                log.Error("AllEventClick Error:" + m_Person.UserID);
                            }
                            m_Person.AllEventClick += new UserPerson.AllEvent(m_Person_AllEventClick);
                            m_Person.ImageUrl = GridCommon.GetUserImage(SysParam.m_daoCommon, dt_temp.Rows[0]["UserID"].ToString());
                            m_Person.DoubleClick += new UserPerson.DoubleEvent(m_Person_DoubleClick);
                            this.setImgIndex(false);//设置显示位置

                            //panelContent.Controls.Add(m_Person);//展示空间
                            m_Person.Location = _point;//设置空间展示坐标
                            if (!m_Person.Visible)
                            {
                                Program._frmMain.Invoke(new Action(delegate()
                                {
                                    Application.DoEvents();
                                    m_Person.Visible = true;
                                }));
                            }
                            gwShowSite = GwSite + 1;
                            dt_temp.Rows[0].Delete();
                            if (dt_temp.Rows.Count > 0)
                            {
                                GwSite = int.Parse(dt_temp.Rows[0]["GuanweiSite"].ToString());//关位位置
                            }
                            else
                            {
                                break;
                            }
                        }


                        if (perFlg && GwSite == 99 && gwShowSite > bpCnt)
                        {
                            m_Person = (UserPerson)_lstContr2[_objcl2.u_UserPersonNum];
                            _objcl2.u_UserPersonNum++; //new UserPerson();

                            //位置相同

                            m_Person.TitleName = dt_temp.Rows[0]["GuanweiNM"].ToString() + " - " + gwShowSite.ToString();

                            if (dt_temp.Rows[0]["AttendType"].ToString() == "支援")
                            {
                                m_Person.TitleName = "(支)" + dt_temp.Rows[0]["GuanweiNM"].ToString() + " - " + gwShowSite.ToString();
                            }
                            if (dt_temp.Rows[0]["AttendType"].ToString() == "替关")
                            {
                                m_Person.TitleName = "(替)" + dt_temp.Rows[0]["GuanweiNM"].ToString() + " - " + gwShowSite.ToString();
                            }

                            m_Person.GuanweiID = dt_temp.Rows[0]["GuanweiID"].ToString();
                            m_Person.GuanweiNM = dt_temp.Rows[0]["GuanweiNM"].ToString();
                            m_Person.GuanweiSite = GwSite.ToString();
                            m_Person.GuanweiColor = dt_temp.Rows[0]["GuanweiColor"].ToString();
                            m_Person.Status = dt_temp.Rows[0]["StatusName"].ToString();
                            m_Person.StatusColor = dt_temp.Rows[0]["StatusColor"].ToString();
                            m_Person.Time = dt_temp.Rows[0]["CardTime"].ToString();
                            m_Person.TimeColor = dt_temp.Rows[0]["CardTimeColor"].ToString();
                            m_Person.Remind = dt_temp.Rows[0]["warnMemo"].ToString();
                            m_Person.RemindColor = dt_temp.Rows[0]["warnColor"].ToString();
                            m_Person.LicenseType = dt_temp.Rows[0]["LicenseType"].ToString();
                            m_Person.LicenseColor = dt_temp.Rows[0]["LicenseColor"].ToString();
                            m_Person.UserID = dt_temp.Rows[0]["UserID"].ToString();
                            m_Person.UserName = dt_temp.Rows[0]["UserNM"].ToString();
                            m_Person.UserIdNmColor = dt_temp.Rows[0]["UserIdColor"].ToString();
                            m_Person.Tag = "0";
                            m_Person.AllEventClick += new UserPerson.AllEvent(m_Person_AllEventClick);
                            m_Person.ImageUrl = GridCommon.GetUserImage(SysParam.m_daoCommon, dt_temp.Rows[0]["UserID"].ToString());
                            m_Person.DoubleClick += new UserPerson.DoubleEvent(m_Person_DoubleClick);
                            this.setImgIndex(false);//设置显示位置

                            //panelContent.Controls.Add(m_Person);//展示空间
                            m_Person.Location = _point;//设置空间展示坐标
                            if (!m_Person.Visible)
                            {
                                Program._frmMain.Invoke(new Action(delegate()
                                {
                                    Application.DoEvents();
                                    m_Person.Visible = true;
                                }));
                            }

                            gwShowSite++;
                            dt_temp.Rows[0].Delete();
                        }
                        else if (perFlg)
                        {
                            //位置不同,显示空关位
                            //人员信息
                            m_PersonNull = (UserPersonNull)_lstContr2[_objcl2.u_UserNullNum];
                            _objcl2.u_UserNullNum++;

                            m_PersonNull.TitleName = m_tblGuanweiList.Rows[a]["GuanweiName"].ToString() + " - " + gwShowSite;
                            m_PersonNull.GuanweiID = m_tblGuanweiList.Rows[a]["GuanweiID"].ToString();
                            m_PersonNull.GuanweiNM = m_tblGuanweiList.Rows[a]["GuanweiName"].ToString();
                            m_PersonNull.GuanweiSite = gwShowSite.ToString();

                            m_PersonNull.Tag = "0";
                            m_PersonNull.AllEventClick += new UserPersonNull.AllEvent(m_PersonNull_AllEventClick);
                            m_PersonNull.ImageUrl = "";
                            this.setImgIndex(false);//设置显示位置

                            //panelContent.Controls.Add(m_PersonNull);//展示空间
                            m_PersonNull.Location = _point;//设置空间展示坐标

                            if (!m_PersonNull.Visible)
                            {
                                Program._frmMain.Invoke(new Action(delegate()
                                {
                                    Application.DoEvents();
                                    m_PersonNull.Visible = true;
                                }));
                            }
                            gwShowSite++;

                        }

                    }
                }
                wid_Left_Cnt = 1;
                wid_Right_Cnt = 1;


                #region hide no use control
                //未使用的不显示
                if (_oldUsedObj.gwNum <= 0)
                {
                    _oldUsedObj.gwNum = _objcl2.gwNum;
                    _oldUsedObj.u_gwNum = _objcl2.u_gwNum;
                    _oldUsedObj.UserPersonNum = _objcl2.UserPersonNum;
                    _oldUsedObj.u_UserPersonNum = _objcl2.u_UserPersonNum;
                    _oldUsedObj.UserNullNum = _objcl2.UserNullNum;
                    _oldUsedObj.u_UserNullNum = _objcl2.u_UserNullNum;
                }
                else
                {
                    //关位
                    if (_oldUsedObj.u_gwNum >= _objcl2.u_gwNum)
                    {
                        for (int i = _objcl2.u_gwNum; i <= _oldUsedObj.u_gwNum; i++)
                        {
                            _lstContr2[i].Visible = false;
                        }
                    }
                    else
                    {
                        _oldUsedObj.u_gwNum = _objcl2.u_gwNum;
                    }
                    //人员
                    if (_oldUsedObj.u_UserPersonNum >= _objcl2.u_UserPersonNum)
                    {
                        for (int i = _objcl2.u_UserPersonNum; i <= _oldUsedObj.u_UserPersonNum; i++)
                        {
                            _lstContr2[i].Visible = false;
                        }
                    }
                    else
                    {
                        _oldUsedObj.u_UserPersonNum = _objcl2.u_UserPersonNum;
                    }
                    //空位
                    if (_oldUsedObj.u_UserNullNum >= _objcl2.u_UserNullNum)
                    {
                        for (int i = _objcl2.u_UserNullNum; i <= _oldUsedObj.u_UserNullNum; i++)
                        {
                            _lstContr2[i].Visible = false;
                        }
                    }
                    else
                    {
                        _oldUsedObj.u_UserNullNum = _objcl2.u_UserNullNum;
                    }

                }


                #endregion
                this.ResumeLayout(false);
                this.PerformLayout();
            }
            catch (Exception ex)
            {

                FrmAttendDialog FrmDialog = new FrmAttendDialog("考勤数据加载失败!" + ex);
                FrmDialog.ShowDialog();
            }
            finally
            {
                Program.logFlagEnd(log, s, "获取考勤人员信息一览");
                this.TopMost = true;
            }
        }