using System; using System.Collections.Generic; using System.ComponentModel; using System.Data; using System.Drawing; using System.Linq; using System.Text; using System.Windows.Forms; namespace LYFZ.Software.MainBusiness.CameraControlBook.SuperSmallForm { public partial class SelectWorkPersonSuperSmallForm : LYFZ.Software.UI.CameraControlBook.SuperSmallForm.SelectWorkPersonSuperSmallForm { LYFZ.BLL.BLL_ErpOrder orbll = new BLL.BLL_ErpOrder(); LYFZ.BLL.BLL_ErpOrderAnPaiDepartmentRecord ordrbll = new BLL.BLL_ErpOrderAnPaiDepartmentRecord(); public SelectWorkPersonSuperSmallForm() { this.Load += SelectWorkPersonSuperSmallForm_Load; this.Shown += SelectWorkPersonSuperSmallForm_Shown; this.btnSaveed.Click += btnSaveed_Click; this.btnCancel.Click += btnCancel_Click; this.dgvData.MouseDoubleClick += dgvData_MouseDoubleClick; this.cmbtreevDepartment.ComboBoxTree_NodeMouseClick += cmbtreevDepartment_ComboBoxTree_NodeMouseClick; this.cmbtreevStoreName.ComboBoxTree_NodeMouseClick += cmbtreevStoreName_ComboBoxTree_NodeMouseClick; } /// /// 日期 /// public string StrTime = ""; /// /// 加载的类型 /// public LYFZ.EnumPublic.EnumWorkPersonType WorkPersonType; /// /// 是否保存 /// public bool IsSaveed = false; /// /// 选择的工作人员的编号 /// public string StrPersonNumber; /// /// 选择的工作人员的姓名 /// public string StrPersonName; /// /// 窗体加载事件 /// /// /// void SelectWorkPersonSuperSmallForm_Load(object sender, EventArgs e) { this.Text = "安排" + WorkPersonType.ToString().Trim() + "工作"; LYFZ.Software.MainBusiness.DoorCityProcess.PublicCodeClasses.BindComboBoxTreeView_StoreName(this.cmbtreevStoreName, IsFirstNodeName: "全部"); if (this.cmbtreevStoreName.Nodes.Count == 1) { this.cmbtreevStoreName.Visible = false; this.labelEx2.Visible = false; } string StrAddName = ""; if (this.cmbtreevStoreName.Visible) { if (this.cmbtreevStoreName.Nodes.Count > 1) { StrAddName = ",所属分店"; } } string StrColumns = "员工编号,部门,员工姓名,已安排数" + StrAddName + ",是否休息"; this.dgvData.DataColumns(StrColumns, strHideField: "员工编号"); this.dgvData.Columns["已安排数"].DefaultCellStyle.Alignment = DataGridViewContentAlignment.MiddleCenter; DataTable tbl = orbll.GetView_Custom("tb_ErpDepartment", StrWhere: "", ShowColumnName: "Dt_Name").Tables[0]; TreeNode root = null; for (int i = 0; i < tbl.Rows.Count; i++) { if (i == 0) { root = new TreeNode(); root.Text = "全部"; root.Tag = "全部"; this.cmbtreevDepartment.Nodes.Add(root); } root = new TreeNode(); root.Text = tbl.Rows[i]["Dt_Name"].ToString().Trim(); root.Tag = tbl.Rows[i]["Dt_Name"].ToString().Trim(); this.cmbtreevDepartment.Nodes.Add(root); } this.cmbtreevDepartment.TextFindTag("全部"); if (!string.IsNullOrEmpty(StrTime)) { switch (WorkPersonType) { case LYFZ.EnumPublic.EnumWorkPersonType.选礼服师: tbl2 = orbll.GetView_Custom("tb_ErpOrderDigital", StrWhere: "Ordv_ReservationClothingName != ''" + LYFZ.Software.MainBusiness.DoorCityProcess.PublicCodeClasses.GetDateTime("Ordv_ReservationClothingTime", StrTime, StrTime), ShowColumnName: "Ordv_ReservationClothingName AS 员工编号", GroupBy: "Ordv_ReservationClothingName,Ordv_ViceNumber").Tables[0]; break; case LYFZ.EnumPublic.EnumWorkPersonType.摄影师: tbl2 = orbll.GetView_Custom("tb_ErpOrdersPhotography", StrWhere: "Ordpg_ReservationPhotographyName != ''" + LYFZ.Software.MainBusiness.DoorCityProcess.PublicCodeClasses.GetDateTime("Ordpg_ReservationPhotographyTime", StrTime, StrTime), ShowColumnName: "Ordpg_ReservationPhotographyName AS 员工编号", GroupBy: "Ordpg_ReservationPhotographyName,Ordpg_ViceNumber").Tables[0]; break; case LYFZ.EnumPublic.EnumWorkPersonType.摄影助理: tbl2 = orbll.GetView_Custom("tb_ErpOrdersPhotography", StrWhere: "Ordpg_ReservationPhotographyAssistant != ''" + LYFZ.Software.MainBusiness.DoorCityProcess.PublicCodeClasses.GetDateTime("Ordpg_ReservationPhotographyTime", StrTime, StrTime), ShowColumnName: "Ordpg_ReservationPhotographyAssistant AS 员工编号", GroupBy: "Ordpg_ReservationPhotographyAssistant,Ordpg_ViceNumber").Tables[0]; break; case LYFZ.EnumPublic.EnumWorkPersonType.化妆师: tbl2 = orbll.GetView_Custom("tb_ErpOrdersPhotography", StrWhere: "Ordpg_ReservationMakeupArtist != ''" + LYFZ.Software.MainBusiness.DoorCityProcess.PublicCodeClasses.GetDateTime("Ordpg_ReservationPhotographyTime", StrTime, StrTime), ShowColumnName: "Ordpg_ReservationMakeupArtist AS 员工编号", GroupBy: "Ordpg_ReservationMakeupArtist,Ordpg_ViceNumber").Tables[0]; break; case LYFZ.EnumPublic.EnumWorkPersonType.化妆助理: tbl2 = orbll.GetView_Custom("tb_ErpOrdersPhotography", StrWhere: "Ordpg_ReservationMakeupAssistant != ''" + LYFZ.Software.MainBusiness.DoorCityProcess.PublicCodeClasses.GetDateTime("Ordpg_ReservationPhotographyTime", StrTime, StrTime), ShowColumnName: "Ordpg_ReservationMakeupAssistant AS 员工编号", GroupBy: "Ordpg_ReservationMakeupAssistant,Ordpg_ViceNumber").Tables[0]; break; case LYFZ.EnumPublic.EnumWorkPersonType.引导师: tbl2 = orbll.GetView_Custom("tb_ErpOrdersPhotography", StrWhere: "Ordpg_ReservationBootDivision != ''" + LYFZ.Software.MainBusiness.DoorCityProcess.PublicCodeClasses.GetDateTime("Ordpg_ReservationPhotographyTime", StrTime, StrTime), ShowColumnName: "Ordpg_ReservationBootDivision AS 员工编号", GroupBy: "Ordpg_ReservationBootDivision,Ordpg_ViceNumber").Tables[0]; break; case LYFZ.EnumPublic.EnumWorkPersonType.引导助理: tbl2 = orbll.GetView_Custom("tb_ErpOrdersPhotography", StrWhere: "Ordpg_ReservationBootDivisionAssistant != ''" + LYFZ.Software.MainBusiness.DoorCityProcess.PublicCodeClasses.GetDateTime("Ordpg_ReservationPhotographyTime", StrTime, StrTime), ShowColumnName: "Ordpg_ReservationBootDivisionAssistant AS 员工编号", GroupBy: "Ordpg_ReservationBootDivisionAssistant,Ordpg_ViceNumber").Tables[0]; break; case LYFZ.EnumPublic.EnumWorkPersonType.选片师: tbl2 = orbll.GetView_Custom("tb_ErpOrderDigital", StrWhere: "Ordv_ReservationFilmSelectionName != ''" + LYFZ.Software.MainBusiness.DoorCityProcess.PublicCodeClasses.GetDateTime("Ordv_ReservationFilmSelectionTime", StrTime, StrTime), ShowColumnName: "Ordv_ReservationFilmSelectionName AS 员工编号", GroupBy: "Ordv_ReservationFilmSelectionName,Ordv_ViceNumber").Tables[0]; break; case LYFZ.EnumPublic.EnumWorkPersonType.看设计师: tbl2 = orbll.GetView_Custom("tb_ErpOrderDigital", StrWhere: "Ordv_ReservationLookDesignName != ''" + LYFZ.Software.MainBusiness.DoorCityProcess.PublicCodeClasses.GetDateTime("Ordv_ReservationLookDesignTime", StrTime, StrTime), ShowColumnName: "Ordv_ReservationLookDesignName AS 员工编号", GroupBy: "Ordv_ReservationLookDesignName,Ordv_ViceNumber").Tables[0]; break; case LYFZ.EnumPublic.EnumWorkPersonType.取件师: tbl2 = orbll.GetView_Custom("tb_ErpOrderProductList", StrWhere: "OPlist_ReservationTakeName != ''" + LYFZ.Software.MainBusiness.DoorCityProcess.PublicCodeClasses.GetDateTime("OPlist_ReservationTakeTime", StrTime, StrTime), ShowColumnName: "OPlist_ReservationTakeName AS 员工编号", GroupBy: "OPlist_ReservationTakeName,OPlist_ViceNumber").Tables[0]; break; case LYFZ.EnumPublic.EnumWorkPersonType.服务师1: case LYFZ.EnumPublic.EnumWorkPersonType.服务师2: tbl2 = orbll.GetView_Custom("(select Ws_Serviceman1,Ws_Number,Ws_WeddingDate from tb_ErpWeddingService where Ws_Serviceman1 != '' group by Ws_Serviceman1,Ws_Number,Ws_WeddingDate UNION ALL select Ws_Serviceman2,Ws_Number,Ws_WeddingDate from tb_ErpWeddingService where Ws_Serviceman2 != '' group by Ws_Serviceman2,Ws_Number,Ws_WeddingDate) AS tb", StrWhere: LYFZ.Software.MainBusiness.DoorCityProcess.PublicCodeClasses.GetDateTime("tb.Ws_WeddingDate", StrTime, StrTime, ConnectWord: ""), ShowColumnName: "Ws_Serviceman1 AS 员工编号").Tables[0]; break; } } } /// /// 窗体加载事件 /// /// /// void SelectWorkPersonSuperSmallForm_Shown(object sender, EventArgs e) { DataTable dt = orbll.GetView_Custom("tb_ErpOrderAnPaiDepartmentRecord", StrWhere: "Ordor_DividedShop = '" + LYFZ.Software.MainBusiness.CommonLogical.SuccessfulLogin.GetLocalCompanyInfoID() + "' And Ordor_OperatingType = '" + WorkPersonType.ToString().Trim() + "'", ShowColumnName: "Ordor_Department").Tables[0]; if (dt.Rows.Count > 0) { this.cmbtreevDepartment.TextFindTag(dt.Rows[0]["Ordor_Department"].ToString().Trim()); } this.GetWorkPerson(); } DataTable tbl; DataTable tbl2 = new DataTable(); /// /// 获取工作人员 /// /// void GetWorkPerson() { this.dgvData.Rows.Clear(); string strWhere = ""; if (!string.IsNullOrEmpty(this.cmbtreevDepartment.Text.Trim()) && this.cmbtreevDepartment.Text.Trim() != "全部") { strWhere = " And Dt_Name = '" + this.cmbtreevDepartment.Text.Trim() + "'"; } string StrAddName = ""; if (this.cmbtreevStoreName.Visible) { if (this.dgvData.Columns.Contains("所属分店")) { StrAddName = ",Company_Name AS 所属分店"; } if (!string.IsNullOrEmpty(this.cmbtreevStoreName.Text.Trim()) && this.cmbtreevStoreName.Text.Trim() != "全部") { strWhere += " And User_DividedShop = '" + this.cmbtreevStoreName.Tag.ToString().Trim() + "'"; } } tbl = orbll.GetView_Custom("tb_ErpUser left join tb_ErpDepartment on User_Department = tb_ErpDepartment.ID Left Join tb_ErpCompanyInfo on Company_DividedShop = User_DividedShop", StrWhere: "User_Status = '在职'" + strWhere, ShowColumnName: "User_EmployeeID AS 员工编号,Dt_Name AS 部门, User_Name AS 员工姓名,'' AS 已安排数" + StrAddName + ",'' AS 是否休息", filedOrder: "tb_ErpDepartment.ID").Tables[0]; DataGridViewRow dgvr = new DataGridViewRow(); DataGridViewCell cell = null; cell = new DataGridViewTextBoxCell(); cell.Value = ""; dgvr.Cells.Add(cell); cell = new DataGridViewTextBoxCell(); cell.Value = ""; dgvr.Cells.Add(cell); cell = new DataGridViewTextBoxCell(); cell.Value = ""; dgvr.Cells.Add(cell); cell = new DataGridViewTextBoxCell(); cell.Value = ""; dgvr.Cells.Add(cell); if (this.dgvData.Columns.Contains("所属分店")) { cell = new DataGridViewTextBoxCell(); cell.Value = ""; dgvr.Cells.Add(cell); } cell = new DataGridViewTextBoxCell(); cell.Value = ""; dgvr.Cells.Add(cell); this.dgvData.Rows.Add(dgvr); foreach(DataRow dr in tbl.Rows) { if (this.dgvData.Rows.Count > 0 && tbl2.Rows.Count > 0) { DataRow[] dtRow = tbl2.Select("员工编号 = '" + dr["员工编号"].ToString().Trim() + "'"); if (dtRow.Length > 0) { dr["已安排数"] = dtRow.Length.ToString().Trim(); } } } foreach (DataRow dr in tbl.Rows) { if (!string.IsNullOrEmpty(StrTime)) { DataTable dt = LYFZ.Software.MainBusiness.CameraControlBook.PublicClass.GetRestPerson(this.StrTime.Trim()); DataRow[] dtRow = dt.Select(" User_ID = '" + dr["员工编号"] + "' "); if(dtRow.Length>0) { dr["是否休息"] = "休息"; } } } this.dgvData.DataSource(tbl, IsBindColumns: false, IsClearRows: false); } //void UserVirtual() //{ // if (tbl == null /*|| dataTable.Rows.Count == 0*/) // return; // // 清空之前的列和行; // this.dgvData.Rows.Clear(); // dicList.Clear(); // // 开启虚拟模式; // this.dgvData.VirtualMode = true; // // 设置总行数; // this.dgvData.RowCount = tbl.Rows.Count; // this.dgvData.CellValueNeeded -= DgvData_CellValueNeeded; // this.dgvData.CellValueNeeded += DgvData_CellValueNeeded; //} //Dictionary dicList = new Dictionary(); //private void DgvData_CellValueNeeded(object sender, DataGridViewCellValueEventArgs e) //{ // if (tbl == null || // tbl.Rows.Count == 0 || // tbl.Rows.Count == e.RowIndex || // e.RowIndex > tbl.Rows.Count) // return; // if(dicList.ContainsKey(e.RowIndex+"-"+e.ColumnIndex)) // { // //return; // } // else // { // dicList.Add(e.RowIndex + "-" + e.ColumnIndex, true); // DataGridViewRow dgrCurrent = this.dgvData.Rows[e.RowIndex]; // if (dgrCurrent.DefaultCellStyle.BackColor.IsEmpty) // dgrCurrent.DefaultCellStyle.BackColor = (e.RowIndex % 2 == 0) ? System.Drawing.Color.PapayaWhip : System.Drawing.Color.PowderBlue; // } // // 当前行; // // StrIsAddColumnsNull不是_dataTable中的列,是手动加进去的(何意义??); // if (this.dgvData.Columns[e.ColumnIndex].Name.Trim() != "StrIsAddColumnsNull") // e.Value = tbl.Rows[e.RowIndex][tbl.Columns[e.ColumnIndex].ToString().Trim()].ToString(); // if (tbl.Columns.Count > 0 && this.dgvData.Columns[e.ColumnIndex].Name.Equals("已安排数")) // { // if (this.dgvData.Rows.Count > 0 && tbl2.Rows.Count > 0) // { // DataRow[] dtRow = tbl2.Select("员工编号 = '" + tbl.Rows[e.RowIndex]["员工编号"].ToString().Trim() + "'"); // if (dtRow.Length > 0) // { // //this.dgvData.Rows[i].Cells["已安排数"].Tag = dtRow.Length.ToString().Trim(); // //this.dgvData.Rows[i].Cells["已安排数"].Value = ""; // e.Value = dtRow.Length.ToString().Trim(); // } // } // } // if (tbl.Columns.Count > 0 && dgvData.Columns[e.ColumnIndex].Name.Equals("是否休息")) // { // if (!string.IsNullOrEmpty(StrTime)) // { // DataTable dt = LYFZ.Software.MainBusiness.CameraControlBook.PublicClass.GetRestPerson(this.StrTime.Trim()); // for (int i = 0; i < dt.Rows.Count; i++) // { // if (tbl.Rows[e.RowIndex]["员工编号"].ToString().Trim() == dt.Rows[i]["User_ID"].ToString().Trim()) // { e.Value = "休息"; break; } // } // } // } //} /// /// 确定 /// /// /// void btnSaveed_Click(object sender, EventArgs e) { if (this.dgvData.Rows.Count > 0) { if (this.dgvData.CurrentCell.RowIndex >= 0 && this.dgvData.CurrentRow.Index >= 0) { this.StrPersonNumber = this.dgvData.CurrentRow.Cells["员工编号"].Value.ToString().Trim(); this.StrPersonName = this.dgvData.CurrentRow.Cells["员工姓名"].Value.ToString().Trim(); if (!string.IsNullOrEmpty(this.dgvData.CurrentRow.Cells["是否休息"].Value.ToString().Trim())) { MessageBoxCustom.Show(StrPersonName + " '" + this.StrTime.Trim() + "'休息,不能安排工作!"); return; } this.IsSaveed = true; string StrStoreName = ""; if (this.cmbtreevStoreName.Text.Trim() != "全部") { StrStoreName = this.cmbtreevStoreName.Tag.ToString().Trim(); } else { StrStoreName = LYFZ.Software.MainBusiness.CommonLogical.SuccessfulLogin.GetLocalCompanyInfoID(); } LYFZ.Model.Model_ErpOrderAnPaiDepartmentRecord model = null; DataTable dt = orbll.GetView_Custom("tb_ErpOrderAnPaiDepartmentRecord", StrWhere: "Ordor_DividedShop = '" + StrStoreName + "' And Ordor_OperatingType = '" + this.WorkPersonType.ToString().Trim() + "'", ShowColumnName: "*").Tables[0]; if (dt.Rows.Count > 0) { model = ordrbll.DataRowToModel(dt.Select()[0]); model.Ordor_Department = this.dgvData.CurrentRow.Cells["部门"].Value.ToString().Trim(); ordrbll.Update(model); } else { model = new Model.Model_ErpOrderAnPaiDepartmentRecord(); model.Ordor_DividedShop = StrStoreName; model.Ordor_OperatingType = this.WorkPersonType.ToString().Trim(); model.Ordor_Department = this.dgvData.CurrentRow.Cells["部门"].Value.ToString().Trim(); ordrbll.Add(model); } this.Close(); } } } /// /// 取消 /// /// /// void btnCancel_Click(object sender, EventArgs e) { this.Close(); } /// /// 列表双击选择事件 /// /// /// void dgvData_MouseDoubleClick(object sender, MouseEventArgs e) { this.btnSaveed_Click(this, null); } /// /// 部门选择事件 /// /// /// void cmbtreevDepartment_ComboBoxTree_NodeMouseClick(object sender, TreeNodeMouseClickEventArgs e) { this.GetWorkPerson(); } /// /// 选择分店人员 /// /// /// void cmbtreevStoreName_ComboBoxTree_NodeMouseClick(object sender, TreeNodeMouseClickEventArgs e) { this.SelectWorkPersonSuperSmallForm_Shown(this, null); } } }