using CSFrameworkV5.Business; using CSFrameworkV5.Common; using CSFrameworkV5.Core; using CSFrameworkV5.Language; using CSFrameworkV5.Library; using CSFrameworkV5.Library.CommonClass; using DevExpress.XtraEditors; using System; using System.Collections.Generic; using System.ComponentModel; using System.Data; using System.Drawing; using System.Linq; using System.Text; using System.Threading.Tasks; using System.Windows.Forms; namespace CSFrameworkV5.womcaa { public partial class frmWOMPlanQZ : frmBaseDataForm { private DataTable tb = new DataTable(); private DataTable tbWOMDAA = new DataTable(); private string GCD = ""; private string idString = ""; private DataTable tbWOMGCA = new DataTable();//合并表 private DataTable tbWOMCAA = new DataTable(); private DataTable XT;//线体表 private DataTable JT;//机台表 private DataTable CF;//已拆分数量表 private bllyhj_womcaa _BLLInstance;//业务逻辑层对象引用 private DataTable tbWOMDAAA = new DataTable(); private DataTable tbWOMDAAA_B = new DataTable(); private DataTable tbGCBOM = new DataTable();//高冲bom //private DataTable tbWOMDAAA;//线体表 private DataTable tbyp = new DataTable();//已排指令表 /// /// 是否拆分了工单 /// public bool IsSplit = false; private DataTable RY; private DataTable GYLX; private DataTable tbWOMDAAA_ONE = new DataTable(); private DataTable tbBM; public frmWOMPlanQZ() { InitializeComponent(); } public override void InitButtons() { var btnClose = ToolbarRegister.CreateButton("btnClose", LanLib.Get("关闭"), ToolBarGroup.关闭窗体, Globals.LoadBitmap("32_Exit.png"), new Size(57, 28), false, true, DoClose); _buttons.AddButton(btnClose); var btnRefresh = ToolbarRegister.CreateButton("btnRefreshDataDict", LanLib.Get("查询未排"), ToolBarGroup.数据操作, Globals.LoadBitmap("32_Refresh.png"), new Size(57, 28), true, true, DoSeleteData); _buttons.AddButton(btnRefresh); if (ButtonAuthorized(ButtonAuthority.DELETE)) { var btnDelete = ToolbarRegister.CreateButton("btnDelete", LanLib.Get("拆分"), ToolBarGroup.数据操作, Globals.LoadBitmap("32_Del.png"), new Size(57, 28), false, true, SplitWorkOrder); Buttons.AddButton(btnDelete); } //if (ButtonAuthorized(ButtonAuthority.EDIT)) //{ // var btnSave = ToolbarRegister.CreateButton("btnSave", LanLib.Get("下达"), ToolBarGroup.数据操作, // Globals.LoadBitmap("32_Save.png"), new Size(57, 28), false, true, doXiaDaZhiLing); // Buttons.AddButton(btnSave); //} if (ButtonAuthorized(ButtonAuthority.EDIT)) { var btnSave = ToolbarRegister.CreateButton("btnSave", LanLib.Get("合并下达"), ToolBarGroup.数据操作, Globals.LoadBitmap("32_Save.png"), new Size(57, 28), false, true, HBXD); Buttons.AddButton(btnSave); } //if (ButtonAuthorized(ButtonAuthority.EDIT)) //{ // var btnCXTJ = ToolbarRegister.CreateButton("btnSave", LanLib.Get("查询推荐"), ToolBarGroup.数据操作, // Globals.LoadBitmap("Zoom_32x32.png"), new Size(57, 28), false, true, CXTJ); // Buttons.AddButton(btnCXTJ); //} //if (ButtonAuthorized(ButtonAuthority.EDIT)) //{ // var btnQXTJ = ToolbarRegister.CreateButton("btnSave", LanLib.Get("取消推荐"), ToolBarGroup.数据操作, // Globals.LoadBitmap("32_Undo.png"), new Size(57, 28), false, true, QXTJ); // Buttons.AddButton(btnQXTJ); //} //if (ButtonAuthorized(ButtonAuthority.EDIT)) //{ // var btnQXAllTJ = ToolbarRegister.CreateButton("btnSave", LanLib.Get("取消全部推荐"), ToolBarGroup.数据操作, // Globals.LoadBitmap("32_Void.png"), new Size(57, 28), false, true, QXAllTJ); // Buttons.AddButton(btnQXAllTJ); //} //if (ButtonAuthorized(ButtonAuthority.EDIT)) //{ // var btnSavet = ToolbarRegister.CreateButton("btnSave", LanLib.Get("合并"), ToolBarGroup.数据操作, // Globals.LoadBitmap("32_Save.png"), new Size(57, 28), false, true, hb); // Buttons.AddButton(btnSavet); //} } // 合并下达 private void HBXD(IButtonInfo sender) { //MessageBox.Show("功能暂时关闭"); //return; //获取gridview中当前cell的行号 int rowHandle = gridView2.FocusedRowHandle; gridView2.FocusedRowHandle = rowHandle; gridView2.FocusedColumn = gridView2.Columns["DAA001"]; string bilo = ""; int no = 0; //合并指令数 string GCA059 = "";//销售订单号 string GCA010 = "";//总装工单号 string GCA074 = "";//总装产品编码 string ZLS = "";//指令集 decimal NewShu = 0;//拆分集合里的数量 decimal OldShu = 0;//数据库里的数量(排除了拆分集合里的数量) if (tb.Rows.Count == 0) { MessageBox.Show("还没有数据,请查询未排工单!"); return; } DataRow[] selRow = tb.Select("SelL='Y' AND ChaiFenGeShu>0"); if (selRow.Length == 0) { MessageBox.Show("请选择工单,并录入拆分个数"); return; } //if (tbWOMDAA.Rows.Count > 0) //{ // tbWOMDAA.Clear(); //} if (!IsSplit) { MessageBox.Show("工单未拆分,不能下达!"); return; } if (tbWOMDAA.Rows.Count == 0) { MessageBox.Show("请先拆分指令!"); return; } //对数据的检测 foreach (DataRow dr in tbWOMDAA.Rows) { if (dr["DAA042"].ToString() == "") { MessageBox.Show("存在线别为空,不能下达指令!"); return; } if (dr["DAA040"].ToString() == " ") { MessageBox.Show("存在人员为空,不能下达指令!"); return; } //if (dr["DAA069"].ToString() == "") //{ // MessageBox.Show("设备名称为空,不能下达指令!"); // return; //} if (Convert.ToInt32(dr["DAA027"]) <= 0) { MessageBox.Show("存在数量小于等于0,不能下达指令!"); return; } } //计算合并工单的总指令数 bilo = tbWOMDAA.Rows[0]["DAA014"].ToString(); string plan_type = tbWOMDAA.Rows[0]["DAA071"].ToString(); foreach (DataRow dr in tbWOMDAA.Rows) { no = no + Convert.ToInt32(dr["DAA027"]); GCA010 = GCA059 + dr["DAA010"].ToString() + ","; GCA059 = GCA059 + dr["DAA059"].ToString()+","; GCA074 = GCA074 + dr["DAA074"].ToString() + ","; if (dr["DAA014"].ToString() != bilo) { MessageBox.Show("产品编码不一致,不能合并下达!!!"); return; } if (dr["DAA071"].ToString() != plan_type) { MessageBox.Show("计划类型不一致,不能合并下达!!!"); return; } } // var duplicates = tbWOMDAA.AsEnumerable() //.GroupBy(row => row.Field("DAA010")) // 假设DAA010是字符串类型,如果不是请修改类型 //.Where(group => group.Count() > 1) // 查找包含两条或更多条数据的组 //.Select(group => group.Key); // 选择重复的DAA010值 // 使用LINQ查询非空的DAA010字段值并分组,然后筛选出那些包含两条或更多条目的组 var duplicates = tbWOMDAA.AsEnumerable() .Where(row => !string.IsNullOrEmpty(row.Field("DAA010"))) // 排除空值 .GroupBy(row => row.Field("DAA010")) .Where(group => group.Count() > 1); // 选择那些有多于一个条目的组 // 如果找到了重复的DAA010值,显示错误消息框 if (duplicates.Any()) { string errorMessage = "在新开指令中发现了重复的总装指令工单: " + string.Join(", ", duplicates); MessageBox.Show(errorMessage, "错误", MessageBoxButtons.OK, MessageBoxIcon.Error); // 如果你使用的是Windows // 如果不是Windows Forms,你可能需要使用不同的方式显示消息 return; } //判断拆分出来的数量不能超过原工单数量 DataTable dtDAA = tbWOMDAA.DefaultView.ToTable(true, new string[] { "DAA038", "DAA014" }); foreach (DataRow dr in dtDAA.Rows) { NewShu = 0; OldShu = 0; string filter = string.Format("DAA038 ='{0}' AND DAA014='{1}' and DAA001 not like '%-B' ", dr["DAA038"], dr["DAA014"]); DataRow[] arrayRow = tbWOMDAA.Select(filter); foreach (DataRow dr1 in arrayRow) { ZLS += "'" + dr1["DAA001"].ToString() + "',"; NewShu += Convert.ToDecimal(dr1["DAA027"]); } OldShu = GetYiChaiFenShu(dr["DAA038"].ToString(), ZLS.TrimEnd(','), dr["DAA014"].ToString()); DataRow[] yRow = tb.Select("CAA001='" + dr["DAA038"] + "'"); decimal YuanGDShu = yRow.Length > 0 ? Convert.ToDecimal(yRow[0]["CAA012"]) : 0; if (NewShu + OldShu > YuanGDShu) { MessageBox.Show(string.Format("工单[{0}]的拆分数量[{1}]+[{2}]不能大于工单总量[{3}],请修改!", dr["DAA038"].ToString(), NewShu.ToString(), OldShu.ToString(), YuanGDShu)); return; } } //合并单据 try { GCD = CommonData.GetDocNo("MOHB"); DataRow drNew = tbWOMGCA.NewRow(); Guid newId = Guid.NewGuid(); idString = newId.ToString(); drNew["ID"] = idString; drNew["GCA001"] = GCD;// 合并指令单号 drNew["GCA003"] = tbWOMDAA.Rows[0]["DAA003"];// 客户编号 drNew["GCA004"] = "5102"; // 工单单别 drNew["GCA005"] = DateTime.Now.ToString("yyyy-MM-dd HH:mm"); // 开单日期 drNew["GCA006"] = "00:00";// 开单时间 drNew["GCA007"] = "0000";// 开单版本 //drNew["GCA011"] = tbGCBOM.Rows[0]["生产方案"].ToString(); ;// 生产方案 drNew["GCA014"] = tbWOMDAA.Rows[0]["DAA014"];// 产品编码 drNew["GCA015"] = tbWOMDAA.Rows[0]["DAA015"];// 产品名称 drNew["GCA016"] = tbWOMDAA.Rows[0]["DAA016"];// 产品规格 drNew["GCA017"] = tbWOMDAA.Rows[0]["DAA017"];// 单位 drNew["GCA018"] = DateTime.Now.ToString("yyyy-MM-dd");//变更成下达时间dr["CAA010"].GetString().Substring(0, 10);// 预计开工日期 drNew["GCA019"] = DateTime.Now.ToString("yyyy-MM-dd");//变更成下达时间dr["CAA011"].GetString().Substring(0, 10);// 预计完工日期 drNew["GCA020"] = tbWOMDAA.Rows[0]["DAA018"].ToString().Substring(0, 10); //dr["CAA010"].ToString().Length > 10 ? dr["CAA010"].ToString().Substring(11, 5) : "08:00";// 预计开工时间 drNew["GCA021"] = tbWOMDAA.Rows[0]["DAA019"].ToString().Substring(0, 10); //dr["CAA011"].ToString().Length > 10 ? dr["CAA010"].ToString().Substring(11, 5) : "17:30";// 预计完工时间 drNew["GCA022"] = "新开指令";// 生产状态 新单 drNew["GCA027"] = no;// 工单数量 drNew["GCA028"] = 0; drNew["GCA029"] = 0; drNew["GCA030"] = 0; drNew["GCA031"] = tbWOMDAA.Rows[0]["DAA031"];// BOM版次 drNew["GCA032"] = tbWOMDAA.Rows[0]["DAA032"];// 工作中心 drNew["GCA034"] = "";//指令物料超发类型 drNew["GCA035"] = "";//指令组 drNew["GCA036"] = tbWOMDAA.Rows[0]["DAA036"];//图号 drNew["GCA037"] = 0;//备料齐套生产 drNew["GCA038"] = tbWOMDAA.Rows[0]["DAA038"];// 计划批次 drNew["GCA039"] = tbWOMDAA.Rows[0]["DAA039"];// 客户名称 drNew["GCA040"] = tbWOMDAA.Rows[0]["DAA040"];// 备注 drNew["GCA041"] = "";// 目标指令编码 drNew["GCA042"] = tbWOMDAA.Rows[0]["DAA042"];// 生产线别 drNew["GCA043"] = tbWOMDAA.Rows[0]["DAA043"];// 生产批次编码 drNew["GCA044"] = "";// RoHS区分 drNew["GCA045"] = "1";//dr["CAA045"]; 返工标记(1-量产2试做,3-有任务单返工;4-无任务单返工 drNew["GCA046"] = Loginer.CurrentUser.Account;// 审核者 drNew["GCA047"] = "N";// 程序校验 drNew["GCA048"] = 0;//Convert.ToDecimal(dr["FAuxInHighLimitQty"]); 入库上限值 drNew["GCA049"] = "3";// 板面标识 drNew["GCA050"] = 0; //不良品数 drNew["GCA051"] = 0; //备用ObjectToDecimal(dr["FStdWorkHour"]).ToString(); drNew["GCA052"] = 0;//产线人员 drNew["GCA053"] = 0;//是否退料 drNew["GCA054"] = 0;//发料仓库 drNew["GCA055"] = 0;//生产优先级 drNew["GCA056"] = 0;//下一个指令编码 //drNew["GCA057"] = tbWOMDAA.Rows[0]["CAA001"]; //工单单号 udpObjectToDecimal(dr["FOldStdWorkHour"]).ToString(); //drNew["GCA058"] = tbWOMDAA.Rows[0]["CAA016"];// 客户订单 drNew["GCA059"] = GCA059;// 销售订单号 drNew["GCA067"] = tbWOMDAA.Rows[0]["DAA067"]; drNew["GCA068"] = tbWOMDAA.Rows[0]["DAA068"]; drNew["GCA069"] = tbWOMDAA.Rows[0]["DAA069"]; drNew["GCA071"] = tbWOMDAA.Rows[0]["DAA071"]; drNew["GCA073"] = tbWOMDAA.Rows[0]["DAA073"]; drNew["GCA074"] = GCA074;// 总装产品编码 drNew["GYLX"] = tbWOMDAA.Rows[0]["GYLX"];// 总装产品编码 if (tbWOMDAA.Rows[0]["DAA071"].ToString() == "计划外") { drNew["flagApp"] = "N"; } tbWOMGCA.Rows.Add(drNew); _BLLInstance.InstDataSet(tbWOMGCA, "WOMGCA"); } catch(Exception EEE) { MessageBox.Show("合并工单失败!"+EEE.Message); return; } try { int i = 0; //格式化时间控件的值 foreach (DataRow dr in tbWOMDAA.Rows) { dr["ID"] = Guid.NewGuid(); dr["DAA020"] = dr["DAA018"].ToString().Substring(0, 10); dr["DAA021"] = dr["DAA019"].ToString().Substring(0, 10); dr["DAA050"] = 0; dr["DAA051"] = 0; dr["DAA052"] = 0; dr["DAA028"] = 0; dr["DAA029"] = 0; dr["DAA030"] = 0; dr["DAA033"] = 0; dr["AppNAME"] = "指令工单"; dr["GCID"] = idString; dr["DAA070"] = ++i; dr["HBGD"] = GCD;//合并工单 if (dr["DAA071"].ToString() == "计划外") { dr["flagApp"] = "N"; } } //保存数据 // PB.StepProgressBar(1, "正在保存指令数据!"); if (_BLLInstance.InstDataSet(tbWOMDAA, "WOMDAA")) { //更新已下达的数量 foreach (DataRow row in dtDAA.Rows) { UpdateIssueWorkOrder(row["DAA038"].ToString(), row["DAA014"].ToString()); string WOMCAAKG = string.Format("EXEC WMS_CREATE_WOMCAAKG '{0}'", row["DAA038"].ToString()); _BLLInstance.InsDataSet(WOMCAAKG); } //生成指令明细数据 foreach (DataRow dr in tbWOMDAA.Rows) { //string SQL_WOMDAB = string.Format("EXEC WMS_CREATE_WOMDABGC '{0}','{1}'", dr["DAA001"].ToString(),dr["DAA038"].ToString()); //_BLLInstance.InsDataSet(SQL_WOMDAB); string SQL1 = string.Format("EXEC WOM_UPDATE_ZZGD '{0}' ", dr["DAA001"].ToString()); _BLLInstance.InsDataSet(SQL1); string GCBOMBG = string.Format("EXEC WMS_CREATE_WOMDAB '{0}' ",dr["DAA001"].ToString()); _BLLInstance.InsDataSet(GCBOMBG); } // PB.StepProgressBar(1, "正在更新已开指令数!"); MessageBox.Show("合并工单<" + GCD +">下达成功!"); tbWOMDAA.Clear(); tbWOMGCA.Clear(); tbyp.Clear(); tb.Clear(); string sql = string.Format(@";WITH B AS(SELECT DISTINCT DAA059,SUM(ISNULL(DAA027,0)) F FROM WOMDAA(NOLOCK) WHERE DAA032 IN ('洗衣机装配车间','风扇装配车间','罩极装配车间') AND ISNULL(DAA059,'')<>'' GROUP BY DAA059), ZZYPGD_WP AS (SELECT DAA001 总装指令工单,DAA027 总装指令已排数,ISNULL(DAA059,'') 销售订单号,DAA020 总装预计开工时间 FROM WOMDAA(NOLOCK) AA WHERE ISNULL(DAA059,'') <> '' AND DAA022 <> '完工' AND DAA032 IN ('洗衣机装配车间','风扇装配车间','罩极装配车间') AND NOT EXISTS(SELECT 1 FROM WOMDAA(NOLOCK) BB WHERE BB.DAA010 = AA.DAA001 AND DAA032 = '{0}' )), ZZYPGD_SUM AS (SELECT DAA001 总装指令工单,DAA027 总装指令已排数,ISNULL(DAA059,'') 销售订单号,DAA020 总装预计开工时间 FROM WOMDAA(NOLOCK) AA WHERE ISNULL(DAA059,'') <> '' AND DAA032 IN ('洗衣机装配车间','风扇装配车间','罩极装配车间')) SELECT A.CAA002,A.CAA003,A.CAA005,A.CAA018,A.CAA006,A.CAA007,A.CAA008,A.CAA009,A.CAA010,A.CAA011,A.CAA012,A.CAA013,A.CAA014,A.CAA015,A.CAA016,A.CAA022,A.CAA017,A.CAA021,A.ERPID,C.WL069,'1' ChaiFenGeShu,'N' SelL,ZZYPGD_WP.总装指令已排数 WeiPaiShu,isnull(B.F,0) ZWEI ,WL008,D.CAA006 总装产品编码,A.CAA012-isNull(A.CAA013,0) 工单总未排数, '计划内' 类型,PQZ006 计划排产时间,ZZYPGD_WP.总装指令工单 总装指令工单,ZZYPGD_WP.总装指令已排数 总装指令数量 FROM WOMCAA(nolock) A LEFT JOIN B ON B.DAA059=A.CAA018 LEFT JOIN GS_WL(NOLOCK) C ON C.WL001=A.CAA006 LEFT JOIN (SELECT distinct CAA006, CAA018 FROM WOMCAA(NOLOCK) WHERE CAA014 IN ('风扇装配车间','洗衣机装配车间','罩极装配车间') AND SUBSTRING(CAA006,1,2)='01' AND ISNULL(CAA018,'')<>'') D ON D.CAA018=A.CAA018 LEFT JOIN GS_PLAN_QZ(NOLOCK) E ON PQZ002 = A.CAA001 RIGHT JOIN ZZYPGD_WP ON ZZYPGD_WP.销售订单号 = A.CAA018 WHERE A.CAA0130 AND ISNULL(A.flagApp,'') <> 'N' AND ISNULL(CAA029,'0') NOT IN ('5','6','7') union SELECT A.CAA002,A.CAA003,A.CAA005,A.CAA018,A.CAA006,A.CAA007,A.CAA008,A.CAA009,A.CAA010,A.CAA011,A.CAA012,A.CAA013,A.CAA014,A.CAA015,A.CAA016,A.CAA022,A.CAA017,A.CAA021,A.ERPID,C.WL069,'1' ChaiFenGeShu,'N' SelL,A.CAA012-(SELECT SUM(总装指令已排数) FROM ZZYPGD_SUM WHERE ZZYPGD_SUM.销售订单号 = A.CAA018 ) WeiPaiShu ,isnull(B.F,0) ZWEI ,WL008,D.CAA006 总装产品编码,A.CAA012-isNull(A.CAA013,0) 工单总未排数, '计划外' 类型,'' 计划排产时间,'' 总装指令工单,'' 总装指令数量 FROM WOMCAA(nolock) A LEFT JOIN B ON B.DAA059=A.CAA018 LEFT JOIN GS_WL(NOLOCK) C ON C.WL001=A.CAA006 LEFT JOIN (SELECT distinct CAA006, CAA018 FROM WOMCAA(NOLOCK) WHERE CAA014 IN ('风扇装配车间','洗衣机装配车间','罩极装配车间') AND SUBSTRING(CAA006,1,2)='01' AND ISNULL(CAA018,'')<>'') D ON D.CAA018=A.CAA018 WHERE A.CAA0130 AND ISNULL(A.flagApp,'') <> 'N' AND ISNULL(CAA029,'0') NOT IN ('5','6','7') AND (A.CAA012-(SELECT SUM(总装指令已排数) FROM ZZYPGD_SUM WHERE ZZYPGD_SUM.销售订单号 = A.CAA018 ) > 0) AND EXISTS(SELECT 1 FROM ZZYPGD_SUM WHERE ZZYPGD_SUM.销售订单号 = A.CAA018) union SELECT A.CAA002,A.CAA003,A.CAA005,A.CAA018,A.CAA006,A.CAA007,A.CAA008,A.CAA009,A.CAA010,A.CAA011,A.CAA012,A.CAA013,A.CAA014,A.CAA015,A.CAA016,A.CAA022,A.CAA017,A.CAA021,A.ERPID,C.WL069,'1' ChaiFenGeShu,'N' SelL,A.CAA012 WeiPaiShu ,isnull(B.F,0) ZWEI ,WL008,D.CAA006 总装产品编码,A.CAA012-isNull(A.CAA013,0) 工单总未排数, '计划外' 类型,'' 计划排产时间,'' 总装指令工单,'' 总装指令数量 FROM WOMCAA(nolock) A LEFT JOIN B ON B.DAA059=A.CAA018 LEFT JOIN GS_WL(NOLOCK) C ON C.WL001=A.CAA006 LEFT JOIN (SELECT distinct CAA006, CAA018 FROM WOMCAA(NOLOCK) WHERE CAA014 IN ('风扇装配车间','洗衣机装配车间','罩极装配车间') AND SUBSTRING(CAA006,1,2)='01' AND ISNULL(CAA018,'')<>'') D ON D.CAA018=A.CAA018 WHERE A.CAA0130 AND ISNULL(A.flagApp,'') <> 'N' AND ISNULL(CAA029,'0') NOT IN ('5','6','7') AND NOT EXISTS(SELECT 1 FROM ZZYPGD_SUM WHERE ZZYPGD_SUM.销售订单号 = A.CAA018)", searchLookUpEdit1.Text); tb = _BLLInstance.GETDAT(sql); this.gridControl1.DataSource = tb; return; } else { MessageBox.Show("指令下达失败!"); return; } } finally { // PB.MoveProgressBar(); } } /// ///更新工单已开指令数 /// /// The order. public void UpdateIssueWorkOrder(string Order, string PartNo) { string sql = string.Format(@"update WOMCAA SET CAA013 = ISNULL((SELECT SUM(DAA027) FROM WOMDAA WHERE DAA038 = CAA001 AND DAA014 = CAA006 and DAA001 not like '%-B'), 0),CAA028 = 2 WHERE CAA001 = '{0}' and CAA006='{1}' ", Order, PartNo); _BLLInstance.InsDataSet(sql); } #region 得到数据库里的已拆分数量(排除了拆分集合里的数量)DataTable GetYiChaiFenShu(string DAA038,string DAA001) /// /// 得到数据库里的已拆分数量(排除了拆分集合里的数量) /// /// 工单号 /// 指令号集合 /// public decimal GetYiChaiFenShu(string DAA038, string DAA001, string DAA014) { string sql = string.Format("select ISNULL(sum(DAA027),0) sl from WOMDAA where DAA038='{0}' AND DAA014='{2}' and DAA001 not in ({1}) and DAA001 not like '%-B' ", DAA038, DAA001, DAA014); CF = _BLLInstance.GETDAT(sql); return Convert.ToDecimal(CF.Rows[0]["sl"]); } #endregion //拆分 private void SplitWorkOrder(IButtonInfo sender) { if (tb.Rows.Count == 0) { MessageBox.Show("还没有数据,请查询未排工单!"); return; } DataRow[] selRow = tb.Select("SelL='Y'"); if (selRow.Length == 0) { MessageBox.Show("请选择工单,并录入拆分个数"); return; } if (tbWOMDAA.Rows.Count > 0) { tbWOMDAA.Clear(); } if (tbWOMGCA.Rows.Count > 0) { tbWOMGCA.Clear(); } Dictionary workorderCount = new Dictionary(); Dictionary workorderCount1 = new Dictionary(); // 遍历selRow中的所有行 foreach (DataRow row in selRow) { string workorder = row["任务单号"].ToString(); // 如果工单号不在字典中,则将其添加并设置计数为0 if (!workorderCount.ContainsKey(workorder)) workorderCount[workorder] = 0; if (!workorderCount1.ContainsKey(workorder)) workorderCount1[workorder] = 0; // 对每种工单号进行计数 workorderCount[workorder]++; workorderCount1[workorder]++; } #region /* foreach (DataRow dr in selRow) { *//* if (Convert.ToInt32(dr["ChaiFenGeShu"]) == 0) continue;*/ /* tbWOMDAAA_ONE.Clear(); tbWOMDAAA.Clear(); string sqlstr = String.Format(@"SELECT DISTINCT A.DAA001 指令单号,A.DAA027 指令数量,(A.DAA027-SUM(ISNULL(C.DAA027,0))) 已排数量,A.DAA020 预计开工时间,A.DAA014 物料编码, A.DAA015 物料名称 ,A.DAA016 物料规格,A.DAA059 销售订单号 FROM WOMDAA A LEFT JOIN WOMDAA C ON C.DAA010 = A.DAA001 WHERE A.DAA059 = '{0}' AND A.DAA032 IN('风扇装配车间','洗衣机装配车间','罩极装配车间') AND A.DAA022 NOT IN('完工', '停工') AND ISNULL(C.DAA010,'')= '' AND ISNULL(C.DAA027,0)< A.DAA027 AND ISNULL(A.DAA075,0) = 0 AND ISNULL(A.DAA059,'') <> '' GROUP BY A.DAA001 ,A.DAA027 ,A.DAA020 ,A.DAA014 , A.DAA015 ,A.DAA016,A.DAA059 ", dr["CAA018"].ToString());//WHERE ISNULL(DAA028,0) 0) { foreach (DataRow row in tbWOMDAAA_ONE.Rows) { // 创建一个新的DataRow对象,并设置其ItemArray为当前行的ItemArray // 注意:这里假设tbWOMDAAA的列与tbWOMDAAA_ONE的列完全相同 DataRow newRow = tbWOMDAAA.NewRow(); newRow.ItemArray = row.ItemArray; // 将新行添加到tbWOMDAAA中 tbWOMDAAA.Rows.Add(newRow); } }*//* // DataRow newRow_NULL = tbWOMDAAA.NewRow(); // 将新行添加到tbWOMDAAA中 // tbWOMDAAA.Rows.Add(newRow_NULL); // string sqlstr1 = String.Format(@" SELECT A.BOM001 AS 生产方案,A.BOM002 AS 产品编码,A.BOM003 AS 产品名称, A.BOM004 AS 产品规格, A.BOM007 AS 模具类型 , //B.BOMM002 AS 用料编码,B.BOMM003 AS 用料名称,B.BOMM004 AS 用料规格 //FROM GS_BOM AS A LEFT JOIN GS_MBOM AS B ON A.ID = B.PID where BOM002 = '{0}' ", dr["CAA006"].ToString());//WHERE ISNULL(DAA028,0)1) if (1 != 1) { foreach (DataRow row in dt.Rows) { if (row[0].ToString() == "") continue; #region AB面 DataRow drNew = tbWOMDAA.NewRow(); drNew["DAA001"] = BillNo + "-" + row[0];// 指令单号 drNew["DAA003"] = dr["CAA003"];// 客户编号 drNew["DAA004"] = BillType; // 工单单别 drNew["DAA005"] = DateTime.Now.ToString("yyyy-MM-dd HH:mm");// 开单日期 drNew["DAA006"] = "00:00";// 开单时间 drNew["DAA007"] = "0000";// 开单版本 drNew["DAA010"] = dr["总装指令工单"];// 总装工单号 // drNew["DAA014"] = dr["CAA006"];// 产品编码 drNew["DAA015"] = dr["CAA007"];// 产品名称 drNew["DAA016"] = dr["CAA008"];// 产品规格 drNew["DAA017"] = dr["CAA009"];// 单位 drNew["DAA018"] = dr["CAA020"];//变更成下达时间dr["CAA010"].GetString().Substring(0, 10);// 预计开工日期 drNew["DAA019"] = dr["CAA020"];//变更成下达时间dr["CAA011"].GetString().Substring(0, 10);// 预计完工日期 drNew["DAA020"] = "00:00";//dr["CAA010"].ToString().Length > 10 ? dr["CAA010"].ToString().Substring(11, 5) : "08:00";// 预计开工时间 drNew["DAA021"] = "00:00";//dr["CAA011"].ToString().Length > 10 ? dr["CAA010"].ToString().Substring(11, 5) : "17:30";// 预计完工时间 drNew["DAA022"] = "新开指令";// 生产状态 新单 drNew["DAA027"] = dr["WeiPaiShu"];// 工单数量 drNew["DAA028"] = 0; drNew["DAA029"] = 0; drNew["DAA030"] = 0; drNew["DAA031"] = dr["CAA015"];// BOM版次 drNew["DAA032"] = dr["CAA014"];// 工作中心 drNew["DAA034"] = "";//指令物料超发类型 drNew["DAA035"] = "";//指令组 drNew["DAA036"] = dr["WL008"];//图号 drNew["DAA037"] = 0;//备料齐套生产 drNew["DAA038"] = dr["CAA001"];// ERP工单号//dr["CAA002"];// 计划批次 drNew["DAA039"] = dr["CAA017"];// 客户订单号 drNew["DAA040"] = dr["CAA021"];// 备注 drNew["DAA041"] = dr["总装产品编码"];// 目标指令编码 drNew["DAA042"] = "";// 生产线别 drNew["DAA043"] = dr["CAA002"]; ;// 生产批次编码 drNew["DAA044"] = "";// RoHS区分 drNew["DAA045"] = "";// 相关说明 drNew["DAA046"] = Loginer.CurrentUser.Account; drNew["DAA047"] = "N";// 程序校验 drNew["DAA048"] = 0;// 周计划已开指令 drNew["DAA049"] = row[0].ToString() == "A" ? "1" : "2";// 板面标识 drNew["DAA050"] = 0; //不良品数 drNew["DAA051"] = 0;//备用 drNew["DAA052"] = 0;//备用 drNew["DAA053"] = 0;//是否退料 drNew["DAA054"] = 0;//发料仓库 drNew["DAA055"] = 0;//生产优先级 drNew["DAA056"] = 0;//下一个指令编码 drNew["DAA057"] = dr["CAA018"]; //工单单号 drNew["DAA058"] = dr["CAA016"];// 生产工艺 drNew["DAA059"] = dr["CAA018"];// drNew["DAA066"] = tbWOMCAA.Rows[0]["CAA006"].ToString();// drNew["PID"] = dr["ERPID"];// 销售订单号 tbWOMDAA.Rows.Add(drNew); #endregion } } else { #region 整体面 DataRow drNew = tbWOMDAA.NewRow(); drNew["CREATE_BY"] = Loginer.CurrentUser.Account;// 创建者 drNew["CREATE_DATE"] = DateTime.Now.ToString("yyyy-MM-dd HH:mm");// 创建时间 drNew["DAA001"] = BillNo;// 指令单号 drNew["DAA003"] = dr["CAA003"];// 客户编号 drNew["DAA004"] = BillType; // 工单单别 drNew["DAA005"] = DateTime.Now.ToString("yyyy-MM-dd HH:mm"); // 开单日期 drNew["DAA006"] = "00:00";// 开单时间 drNew["DAA007"] = "0000";// 开单版本 //drNew["DAA011"] = tbGCBOM.Rows[0]["生产方案"].ToString(); ;// 生产方案 drNew["DAA010"] = dr["总装指令工单"];// 总装工单号 drNew["DAA014"] = dr["CAA006"];// 产品编码 drNew["DAA015"] = dr["CAA007"];// 产品名称 drNew["DAA016"] = dr["CAA008"];// 产品规格 drNew["DAA017"] = dr["CAA009"];// 单位 drNew["DAA018"] = DateTime.Now.ToString("yyyy-MM-dd");//变更成下达时间dr["CAA010"].GetString().Substring(0, 10);// 预计开工日期 drNew["DAA019"] = DateTime.Now.ToString("yyyy-MM-dd");//变更成下达时间dr["CAA011"].GetString().Substring(0, 10);// 预计完工日期 drNew["DAA020"] = "00:00";//dr["CAA010"].ToString().Length > 10 ? dr["CAA010"].ToString().Substring(11, 5) : "08:00";// 预计开工时间 drNew["DAA021"] = "00:00";//dr["CAA011"].ToString().Length > 10 ? dr["CAA010"].ToString().Substring(11, 5) : "17:30";// 预计完工时间 drNew["DAA022"] = "新开指令";// 生产状态 新单 drNew["DAA027"] = dr["WeiPaiShu"]; //i == Convert.ToInt32(dr["ChaiFenGeShu"]) - 1 ? Convert.ToInt32(dr["WeiPaiShu"]) - avg * (Convert.ToInt32(dr["ChaiFenGeShu"]) - 1) : avg;// 工单数量 drNew["DAA028"] = 0; drNew["DAA029"] = 0; drNew["DAA030"] = 0; drNew["DAA031"] = dr["CAA015"];// BOM版次 drNew["DAA032"] = dr["CAA014"];// 工作中心 drNew["DAA034"] = "";//指令物料超发类型 drNew["DAA035"] = "";//指令组 drNew["DAA036"] = dr["WL008"];//图号 drNew["DAA037"] = 0;//备料齐套生产 drNew["DAA038"] = dr["CAA001"];// 计划批次 drNew["DAA039"] = dr["CAA017"];// 客户名称 drNew["DAA040"] = dr["CAA021"];// 备注 drNew["DAA041"] = dr["总装产品编码"];// 目标指令编码 drNew["DAA042"] = "";// 生产线别 drNew["DAA043"] = dr["CAA002"];// 生产批次编码 drNew["DAA044"] = "";// RoHS区分 drNew["DAA045"] = "1";//dr["CAA045"]; 返工标记(1-量产2试做,3-有任务单返工;4-无任务单返工 drNew["DAA046"] = Loginer.CurrentUser.Account;// 审核者 drNew["DAA047"] = "N";// 程序校验 drNew["DAA048"] = 0;//Convert.ToDecimal(dr["FAuxInHighLimitQty"]); 入库上限值 drNew["DAA049"] = "3";// 板面标识 drNew["DAA050"] = 0; //不良品数 drNew["DAA051"] = 0; //备用ObjectToDecimal(dr["FStdWorkHour"]).ToString(); drNew["DAA052"] = 0;//产线人员 drNew["DAA053"] = 0;//是否退料 drNew["DAA054"] = 0;//发料仓库 drNew["DAA055"] = 0;//生产优先级 drNew["DAA056"] = 0;//下一个指令编码 drNew["DAA057"] = dr["CAA001"]; //工单单号 udpObjectToDecimal(dr["FOldStdWorkHour"]).ToString(); drNew["DAA058"] = dr["CAA016"];// 客户订单 drNew["DAA059"] = dr["CAA018"];// 销售订单号 drNew["DAA067"] = ""; drNew["DAA068"] = ""; drNew["DAA069"] = ""; drNew["DAA071"] = dr["类型"]; drNew["DAA073"] = "否";// 是否急料 if (tbWOMCAA.Rows.Count<1) { drNew["DAA066"] = ""; } else { drNew["DAA066"] = tbWOMCAA.Rows[0]["CAA006"].ToString(); } drNew["DAA074"] = dr["总装产品编码"]; drNew["PID"] = dr["ERPID"];// tbWOMDAA.Rows.Add(drNew); #endregion } } this.gridControl2.DataSource = tbWOMDAA; IsSplit = true; } repositoryItemSearchLookUpEdit1.ValueMember = "指令单号"; repositoryItemSearchLookUpEdit1.DisplayMember = "指令单号"; repositoryItemSearchLookUpEdit1.ShowClearButton = false; repositoryItemSearchLookUpEdit1.DataSource = tbWOMDAAA; //默认筛选框 this.repositoryItemSearchLookUpEdit1.View.OptionsView.ShowAutoFilterRow = true; this.repositoryItemSearchLookUpEdit1.View.BestFitColumns();*/ #endregion string sqlc = string.Format(@"select * from yhj_womdaa where 1=2"); tbWOMDAA = _BLLInstance.GETDAT(sqlc); foreach (DataRow row in selRow) { string workorder = row["任务单号"].ToString(); // 生成新的工单号 int count = workorderCount[workorder]; DataRow drNew = tbWOMDAA.NewRow(); drNew["pc_user"] = Loginer.CurrentUser.Account;// 创建者 drNew["pc_time"] = DateTime.Now.ToString("yyyy-MM-dd HH:mm");// 创建时间 drNew["daa001"] = workorder+"-"+ count; drNew["item_id"] = row["物料id"].ToString(); drNew["daa014"] = row["投料单号"].ToString(); drNew["sccj"] = row["车间"].ToString(); tbWOMDAA.Rows.Add(drNew); } this.gridControl2.DataSource = tbWOMDAA; } private string GetMaxBillNo(string erp_wo) { string sql = string.Format(@"SELECT ISNULL(max(convert(int,substring(DAA001,charindex('-',DAA001)+1,len(DAA001)-charindex('-',DAA001)))),0) A FROM WOMDAA WHERE DAA043='{0}' ", erp_wo); DataTable Bno = _BLLInstance.GETDAT(sql); return Bno.Rows[0]["A"].ToString(); } //查询 private void DoSeleteData(IButtonInfo sender) { if (string.IsNullOrEmpty(searchLookUpEdit1.Text)) { MessageBox.Show("请选择车间"); return; } frmWaitingEx.ShowMe(this); string sql = string.Format(@"select 'N' SelL,c.caa001 任务单号,c.item_id 物料id,c.gd_num 任务数量,isnull(c.YP_num,0)已排数量,c.yj_kgtime 预计开工时间,c.yj_wgtime 预计完工时间,c.ppbom 投料单号,c.cj 车间,b.item_name 物料编号 ,b.item_name 物料名称,b.item_no 物料编码 from yhj_womcaa c left join yhj_wlbom b on cast(c.item_id as float)=cast(b.item_id as float) where c.gd_num<>isnull(c.YP_num,0) and cj='{0}'", searchLookUpEdit1.Text); tb = _BLLInstance.GETDAT(sql); tb.Columns.Add("Sel", Type.GetType("System.Boolean")); /* string sqlWOMDAA = string.Format(@"SELECT A.* FROM WOMDAA A WHERE 1=2 "); tbWOMDAA = _BLLInstance.GETDAT(sqlWOMDAA);*/ /* string sqlWOMGCA = string.Format(@"SELECT A.* FROM WOMGCA A WHERE 1=2 "); tbWOMGCA = _BLLInstance.GETDAT(sqlWOMGCA);*/ this.gridControl1.DataSource = tb; //tbWOMDAAA.Clear(); /* string sq1 = string.Format(@"select XT001 线体名称,XT002 所属车间 FROM GS_XT WHERE XT002 = '{0}' ", searchLookUpEdit1.Text); XT = _BLLInstance.GETDAT(sq1); //tbWOMDAA = CommonData.GetEmptyTable(Globals.DEF_US_DBName, "WOMDAA"); repositoryItemGridLookUpEdit1 this.repositoryItemGridLookUpEdit1.DataSource = XT; this.repositoryItemGridLookUpEdit1.ValueMember = "线体名称"; this.repositoryItemGridLookUpEdit1.DisplayMember = "线体名称";//控件返回值 this.repositoryItemCheckEdit1.QueryCheckStateByValue += RepositoryItemCheckEdit1_QueryCheckStateByValue; */ frmWaitingEx.HideMe(this); } private void frmWOMPlanr_Load(object sender, EventArgs e) { InitButtons(); this.gridView2.OptionsView.ShowGroupPanel = false; this.gridView3.OptionsView.ShowGroupPanel = false; this.gridView1.OptionsView.ShowAutoFilterRow = true; //frmGridCustomize.RegisterGrid(gridView1);//注册表格组件,自动添加样式管理、弹出菜单 //frmGridCustomize.RegisterGrid(gridView2);//注册表格组件,自动添加样式管理、弹出菜单 //DevStyle.SetDetailGridViewLayout(this.gridView1);//明细表表格样式设置 //DevStyle.SetDetailGridViewLayout(this.gridView2);//明细表表格样式设置 gridView2.CellValueChanged += GridView2_CellValueChanged; this.gridControl1.DataSource = tb; _BLLInstance = new bllyhj_womcaa(); /* string sq2 = string.Format(@"SELECT RY002 人员编号,RY003 人员 FROM GS_RY (NOLOCK)"); RY = _BLLInstance.GETDAT(sq2);*/ //tbWOMDAA = CommonData.GetEmptyTable(Globals.DEF_US_DBName, "WOMDAA"); repositoryItemGridLookUpEdit1 /* this.repositoryItemGridLookUpEdit3.DataSource = RY; this.repositoryItemGridLookUpEdit3.ValueMember = "人员"; this.repositoryItemGridLookUpEdit3.DisplayMember = "人员";//控件返回值 //默认筛选框 this.repositoryItemGridLookUpEdit3.View.OptionsView.ShowAutoFilterRow = true; string sq3 = string.Format(@"SELECT GYA001 工艺路线,GYA002 生产车间 FROM GS_GYA (NOLOCK)"); GYLX = _BLLInstance.GETDAT(sq3); //tbWOMDAA = CommonData.GetEmptyTable(Globals.DEF_US_DBName, "WOMDAA"); repositoryItemGridLookUpEdit1 this.repositoryItemSearchLookUpEdit3.DataSource = GYLX; this.repositoryItemSearchLookUpEdit3.ValueMember = "工艺路线"; this.repositoryItemSearchLookUpEdit3.DisplayMember = "工艺路线";//控件返回值 //默认筛选框 this.repositoryItemSearchLookUpEdit3.View.OptionsView.ShowAutoFilterRow = true; string sqlstr = String.Format(@"SELECT DISTINCT A.DAA001 指令单号,A.DAA027 指令数量,(A.DAA027-SUM(ISNULL(C.DAA027,0))) 已排数量,A.DAA020 预计开工时间,A.DAA014 物料编码, A.DAA015 物料名称 ,A.DAA016 物料规格,A.DAA059 销售订单号 FROM WOMDAA A LEFT JOIN WOMDAA C ON C.DAA010 = A.DAA001 WHERE 1=2 GROUP BY A.DAA001 ,A.DAA027 ,A.DAA020 ,A.DAA014 , A.DAA015 ,A.DAA016,A.DAA059");//WHERE ISNULL(DAA028,0) 0) { tbyp.Clear(); } /* string sq = string.Format(@"SELECT * FROM WOMDAA WHERE left(DAA001,8)='{0}'", gridView1.GetDataRow(gridView1.FocusedRowHandle)["任务单号"].ToString()); tbyp = _BLLInstance.GETDAT(sq); gridControl3.DataSource = tbyp;*/ if (gridView1.GetDataRow(gridView1.FocusedRowHandle)["SelL"].ToString() == "N") { gridView1.GetDataRow(gridView1.FocusedRowHandle)["SelL"] = "Y"; } else { gridView1.GetDataRow(gridView1.FocusedRowHandle)["SelL"] = "N"; } } private void gridView1_RowStyle(object sender, DevExpress.XtraGrid.Views.Grid.RowStyleEventArgs e) { /* if (e.RowHandle >= 0) { // 获取类型字段的值 string type = gridView1.GetRowCellValue(e.RowHandle, "类型").ToString(); // 只有当类型是“计划内”时,我们才继续处理 if (type == "计划内") { e.Appearance.BackColor = Color.Gold; //// 尝试获取后道预计开工时间字段的值 //string startDateString = gridView1.GetRowCellValue(e.RowHandle, "后道预计开工时间").ToString(); //// 转换为DateTime类型 //DateTime startDate; //if (DateTime.TryParse(startDateString, out startDate)) //{ // // 获取当前日期 // DateTime currentDate = DateTime.Now.Date; // // 判断后道预计开工时间是否在今天之前 // if (startDate < currentDate) // { // // 后道预计开工时间在今天之前 // e.Appearance.BackColor = Color.Gray; // } // else // { // // 后道预计开工时间在今天之后 // TimeSpan difference = startDate - currentDate; // // 根据日期差异设置背景色 // if (difference.TotalDays <= 1) // { // // 未来一天内 // e.Appearance.BackColor = Color.Red; // } // else if (difference.TotalDays <= 3) // { // // 未来三天内 // e.Appearance.BackColor = Color.Gold; // } // else if (difference.TotalDays <= 7) // { // // 未来七天内 // e.Appearance.BackColor = Color.LightGreen; // } // else // { // // 超过未来七天 // e.Appearance.BackColor = Color.LightBlue; // } // } //} //else //{ // // 如果startDateString不是有效的日期时间,可以选择设置一个默认颜色或忽略 // // e.Appearance.BackColor = Color.White; // 或者其他颜色 //} } }*/ } // 更新模据信息 private void repositoryItemSearchLookUpEdit2_EditValueChanged(object sender, EventArgs e) { //获取选择的方案 int a = repositoryItemSearchLookUpEdit2.GetIndexByKeyValue(gridView2.EditingValue.ToString()); //遍历,所选工单的方案一致 foreach (DataRow dr in tbWOMDAA.Rows) { this.gridView2.SetRowCellValue(gridView2.FocusedRowHandle, gridView2.Columns["DAA068"], tbGCBOM.Rows[a]["模具类型"].ToString()); this.gridView2.SetRowCellValue(gridView2.FocusedRowHandle, gridView2.Columns["DAA067"], tbGCBOM.Rows[a]["生产方案"].ToString()); dr["DAA068"] = tbGCBOM.Rows[a]["模具类型"].ToString(); dr["DAA067"] = tbGCBOM.Rows[a]["生产方案"].ToString(); } string sq = string.Format(@"select MG005 设备名称,MG001 设备编号 FROM BOMMG WHERE MG002 = '{0}'", tbGCBOM.Rows[a]["模具类型"].ToString()); JT = _BLLInstance.GETDAT(sq); ////tbWOMDAA = CommonData.GetEmptyTable(Globals.DEF_US_DBName, "WOMDAA"); repositoryItemGridLookUpEdit1 this.repositoryItemGridLookUpEdit2.DataSource = JT; this.repositoryItemGridLookUpEdit2.ValueMember = "设备名称"; this.repositoryItemGridLookUpEdit2.DisplayMember = "设备名称";//控件返回值 //this.repositoryItemCheckEdit1.QueryCheckStateByValue += RepositoryItemCheckEdit1_QueryCheckStateByValue; } //private void repositoryItemGridLookUpEdit2_EditValueChanged(object sender, EventArgs e) //{ // int a = repositoryItemGridLookUpEdit2.GetIndexByKeyValue(gridView2.EditingValue.ToString()); // foreach (DataRow dr in tbWOMDAA.Rows) // { // dr["DAA069"] = gridView2.EditingValue.ToString(); // if(gridView2.EditingValue.ToString().Contains("1")) // { // dr["DAA042"] = "高冲1号机"; // } // if (gridView2.EditingValue.ToString().Contains("2")) // { // dr["DAA042"] = "高冲2号机"; // } // if (gridView2.EditingValue.ToString().Contains("3")) // { // dr["DAA042"] = "高冲3号机"; // } // if (gridView2.EditingValue.ToString().Contains("4")) // { // dr["DAA042"] = "高冲4号机"; // } // if (gridView2.EditingValue.ToString().Contains("5")) // { // dr["DAA042"] = "高冲5号机"; // } // if (gridView2.EditingValue.ToString().Contains("6")) // { // dr["DAA042"] = "高冲6号机"; // } // if (gridView2.EditingValue.ToString().Contains("7")) // { // dr["DAA042"] = "高冲7号机"; // } // if (gridView2.EditingValue.ToString().Contains("8")) // { // dr["DAA042"] = "高冲8号机"; // } // if (gridView2.EditingValue.ToString().Contains("9")) // { // dr["DAA042"] = "高冲9号机"; // } // } //} // 添加CellValueChanged事件的处理方法 // CellValueChanged事件处理方法 private void GridView2_CellValueChanged(object sender, DevExpress.XtraGrid.Views.Base.CellValueChangedEventArgs e) { // 获取当前改变的单元格所在的行和列信息 int rowHandle = e.RowHandle; int columnIndex = e.Column.VisibleIndex; // 遍历所有行 if (e.Column.ToString() == "开工日期") { foreach (DataRow dr in tbWOMDAA.Rows) { dr["DAA018"] = gridView2.EditingValue.ToString(); dr["DAA019"] = gridView2.EditingValue.ToString(); } return; } if (e.Column.ToString() == "完工日期") { foreach (DataRow dr in tbWOMDAA.Rows) { dr["DAA019"] = gridView2.EditingValue.ToString(); } return; } if (e.Column.ToString() == "人员") { foreach (DataRow dr in tbWOMDAA.Rows) { dr["DAA040"] = gridView2.EditingValue.ToString(); } return; } if (e.Column.ToString() == "线别") { foreach (DataRow dr in tbWOMDAA.Rows) { dr["DAA042"] = gridView2.EditingValue.ToString(); } return; } if (e.Column.ToString() == "工艺路线") { foreach (DataRow dr in tbWOMDAA.Rows) { dr["GYLX"] = gridView2.EditingValue.ToString(); } return; } if (e.Column.ToString() == "是否急料") { foreach (DataRow dr in tbWOMDAA.Rows) { dr["DAA073"] = gridView2.EditingValue.ToString(); } return; } return; } } }