/// <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; }
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; } }
/// <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; } }