From 9a853780edf120c99712c15fd3b174fa08ef142c Mon Sep 17 00:00:00 2001 From: cnf <3200815559@qq.com> Date: 星期三, 27 八月 2025 18:23:43 +0800 Subject: [PATCH] 补料优化 --- DevApp/Gs.DevApp/DevFrm/Warehouse/Frm_ArrivalBarcode.cs | 276 ++++++++++++++++++++++++++++++++++++++++++++++++++++++- 1 files changed, 270 insertions(+), 6 deletions(-) diff --git a/DevApp/Gs.DevApp/DevFrm/Warehouse/Frm_ArrivalBarcode.cs b/DevApp/Gs.DevApp/DevFrm/Warehouse/Frm_ArrivalBarcode.cs index ddd8cca..5c925f2 100644 --- a/DevApp/Gs.DevApp/DevFrm/Warehouse/Frm_ArrivalBarcode.cs +++ b/DevApp/Gs.DevApp/DevFrm/Warehouse/Frm_ArrivalBarcode.cs @@ -7,6 +7,7 @@ using System; using System.Collections.Generic; using System.Data; +using System.Drawing; using System.Threading.Tasks; using System.Windows.Forms; @@ -28,7 +29,9 @@ Gs.DevApp.ToolBox.UtilityHelper.SetGridViewParameter(gridView1, null, null, "", "", (value) => { Gs.DevApp.ToolBox.UtilityHelper.JumpTab(xtraTabControl1, 0); - }, tips); + }, tips, true, (strGuid) => { + getModelList(strGuid); + }); Gs.DevApp.ToolBox.UtilityHelper.SetTabParameter(gridView1, xtraTabControl1, pageBar1, (value) => { getModel(value); @@ -150,13 +153,12 @@ txt_iCount_2.Text = ""; txt_psnQty_2.Text = ""; }; - // gvMx3 鎵归噺鎵撳嵃浜嬩欢 this.ucBtnPrint2.btnAllClick += (s, e) => { // string rowGuid = lbMxGuid3.Text.Trim(); // 浣跨敤gvMx3鐨凣UID string rowGuid = txt_releaseNo.Text.Trim(); - SelectDeleteBar frm = new SelectDeleteBar(rowGuid, "閲囪喘鍏ュ簱"); // 鏍囬鍖哄垎鏉ユ簮 + SelectDeleteBar frm = new SelectDeleteBar(rowGuid, "鍒拌揣鏉$爜锛堝悎骞讹級鐮�"); // 鏍囬鍖哄垎鏉ユ簮 string strCodeList = ""; frm.UpdateParent += (ss, ee) => { @@ -187,11 +189,137 @@ } }; + + // --------------------gvMx3 ucBtnPrintOne1 鎵归噺鎵撳嵃浜嬩欢锛堜紭鍖栫増锛�-------------------- + this.ucBtnPrintOne1.btnPrintClick += (s, e) => + { + // 1. 鍩虹楠岃瘉锛氫富琛ㄨ閫夋嫨 + string mainGuid = lbGuid.Text.Trim(); + if (string.IsNullOrEmpty(mainGuid) || mainGuid.Length < 10) + { + Gs.DevApp.ToolBox.MsgHelper.ShowError("璇峰厛鍦ㄤ富琛ㄤ腑閫夋嫨鏁版嵁琛岋紒"); + this.ucBtnPrintOne1.rptParameter = "return false"; + return; + } + + // 2. 鑾峰彇鏄庣粏鏁版嵁婧� + DataTable dtDetails = gcMx3.DataSource as DataTable; + if (dtDetails == null || dtDetails.Rows.Count == 0) + { + Gs.DevApp.ToolBox.MsgHelper.ShowError("褰撳墠涓昏〃鏃犲叧鑱旂殑鏄庣粏鏁版嵁锛岃鍏堝姞杞芥槑缁嗭紒"); + this.ucBtnPrintOne1.rptParameter = "return false"; + return; + } + + // 3. 绛涢�夊彲鎵撳嵃鏄庣粏锛堥�昏緫涓嶅彉锛� + List<string> validReleaseNos = new List<string>(); + List<string> validPrintQtys = new List<string>(); + string releaseNoField = "releaseNo"; + + if (!dtDetails.Columns.Contains(releaseNoField)) + { + Gs.DevApp.ToolBox.MsgHelper.ShowError($"鏄庣粏鏁版嵁婧愮己灏戝繀瑕佸瓧娈碉細{releaseNoField}"); + this.ucBtnPrintOne1.rptParameter = "return false"; + return; + } + + foreach (DataRow row in dtDetails.Rows) + { + string rowReleaseNo = row[releaseNoField]?.ToString()?.Trim() ?? ""; + if (string.IsNullOrEmpty(rowReleaseNo) || rowReleaseNo.Length < 5) + { + Gs.DevApp.ToolBox.MsgHelper.ShowError($"璺宠繃鏃犳晥鏄庣粏琛岋細缂哄皯鎴栨棤鏁堢殑releaseNo"); + continue; + } + + string kQtyStr = row["kQty"]?.ToString()?.Trim() ?? "0"; + if (!Gs.DevApp.ToolBox.UtilityHelper.IsNumeric3(kQtyStr) + || !decimal.TryParse(kQtyStr, out decimal kQty) + || kQty <= 0) + { + Gs.DevApp.ToolBox.MsgHelper.ShowError($"璺宠繃鏄庣粏琛岋紙releaseNo锛歿rowReleaseNo}锛夛細鍙墦鍗版暟閲忔棤鏁堟垨<=0"); + continue; + } + + if (!validReleaseNos.Contains(rowReleaseNo)) + { + validReleaseNos.Add(rowReleaseNo); + validPrintQtys.Add(kQty.ToString("F2")); + } + else + { + Gs.DevApp.ToolBox.MsgHelper.ShowError($"璺宠繃閲嶅鏄庣粏琛岋紙releaseNo锛歿rowReleaseNo}锛夛細宸插寘鍚releaseNo"); + } + } + + if (validReleaseNos.Count == 0) + { + Gs.DevApp.ToolBox.MsgHelper.ShowError("娌℃湁鍙壒閲忔墦鍗扮殑鏄庣粏琛岋紙鎵�鏈夎鍧囦负鏃犳晥鏁版嵁鎴栧彲鎵撳嵃鏁伴噺<=0锛�"); + this.ucBtnPrintOne1.rptParameter = "return false"; + return; + } + + // 4. 缁勮鍙傛暟锛堥�傞厤_rptGetParameterP瑙f瀽閫昏緫锛� + string releaseNosStr = string.Join("|", validReleaseNos); + string printQtysStr = string.Join("|", validPrintQtys); + + // 浠呬紶6涓叧閿弬鏁帮紝瀵瑰簲瑙f瀽鏂规硶鐨剆0-s5 + string[] reportParams = new string[] + { + "batch", // s0 鈫� @in1锛氭壒閲忔爣璇� + "0", // s1 鈫� @in2锛氬崰浣� + "0", // s2 鈫� @in3锛氫綑閲� + "1", // s3 鈫� @in4锛氬紶鏁� + printQtysStr, // s4 鈫� @in5锛氭暟閲忓垪琛� + releaseNosStr // s5 鈫� @in6锛歳eleaseNo鍒楄〃 + }; + + string paramContent = string.Join(",", reportParams); + string rptParam = $"rpt_Arrival_One{{{paramContent}}}"; + + this.ucBtnPrintOne1.guidKey = mainGuid; + this.ucBtnPrintOne1.rptParameter = rptParam; + + // 5. 璋冪敤棰勮锛堥�昏緫涓嶅彉锛� + try + { + using (Form rptPreviewForm = new RptPreview(mainGuid, rptParam)) + { + DialogResult previewResult = rptPreviewForm.ShowDialog(); + if (previewResult == DialogResult.OK) + { + getModel(mainGuid); + Gs.DevApp.ToolBox.MsgHelper.ShowError($"鎵归噺鎵撳嵃瀹屾垚锛佸叡鎵撳嵃 {validReleaseNos.Count} 鏉℃湁鏁堟槑缁�"); + } + else if (previewResult == DialogResult.Cancel) + { + Gs.DevApp.ToolBox.MsgHelper.ShowError("鐢ㄦ埛鍙栨秷鎵归噺鎵撳嵃鎿嶄綔"); + } + } + } + catch (Exception ex) + { + string errorMsg = $"鎵归噺鎵撳嵃寮傚父锛歿ex.Message}"; + if (ex.InnerException != null) + { + errorMsg += $"\n鍐呴儴閿欒锛歿ex.InnerException.Message}"; + } + Gs.DevApp.ToolBox.MsgHelper.ShowError(errorMsg); + this.ucBtnPrintOne1.rptParameter = "return false"; + } + + // 6. 娓呯┖鎺т欢 + txt_iCount_2.Text = ""; + txt_psnQty_2.Text = ""; + txt_releaseNo.Text = ""; + }; + + //鏄庣粏琛屽垏鎹簨浠� // 鍏抽敭锛氱粦瀹歡vMx1鍜実vMx3鐨勭劍鐐硅鍙樺寲浜嬩欢 gvMx1.FocusedRowChanged += GvMx1_FocusedRowChanged; gvMx3.FocusedRowChanged += GvMx3_FocusedRowChanged; // 鍙栨秷娉ㄩ噴骞剁粦瀹氫簨浠� - //gvMx3鎵撳嵃鑷姩璁$畻 + //gvMx1鎵撳嵃鑷姩璁$畻 txt_psnQty_1.TextChanged += (s, e) => { Gs.DevApp.ToolBox.UtilityHelper.PrintJiSuan(txt_psnQty_1, txt_iCount_1, txt_kQty.Text.Trim(), radOut, txt_yuliang_1); @@ -200,7 +328,6 @@ { Gs.DevApp.ToolBox.UtilityHelper.PrintAuto(txt_psnQty_1, txt_iCount_1, radOut, txt_yuliang_1); }; - // gvMx3鐨勮嚜鍔ㄨ绠� txt_psnQty_2.TextChanged += (s, e) => { @@ -210,6 +337,56 @@ { Gs.DevApp.ToolBox.UtilityHelper.PrintAuto(txt_psnQty_2, txt_iCount_2, radOut2, txt_yuliang_2); }; + + + + ////搴曢儴姹囨�诲惎鐢� + //gvMx1.OptionsView.ShowFooter = true; + //// 涓烘煇涓�鍒楄缃眰鍜屾眹鎬� + //gvMx1.Columns["quantity"].SummaryItem.SummaryType = DevExpress.Data.SummaryItemType.Sum; + //gvMx1.Columns["quantity"].SummaryItem.DisplayFormat = "鍚堣: {0}"; + + // 涓轰簡鏂逛究浣跨敤鏁村悎鍒� UtilityHelper 绫讳腑鐨� SetupGridSummary 鏂规硶 + UtilityHelper.SetupGridSummary(gvMx1, "quantity", "okRkqty"); + UtilityHelper.SetupGridSummary(gvMxL1, "quantity", "okRkqty"); + + // 妫�鏌ユ暟鎹姞杞藉悗鍐嶈缃鑹� + this.Load += (s, e) => { + System.Windows.Forms.Timer timer = new System.Windows.Forms.Timer(); + timer.Interval = 1000; // 1绉掑悗鎵ц锛岀‘淇濇暟鎹凡鍔犺浇 + timer.Tick += (sender, args) => { + timer.Stop(); + timer.Dispose(); + + // 浣跨敤鏂扮殑绠�鍖栨牸寮忚缃楠岀粨鏋滈鑹� + UtilityHelper.SetSimpleGridColor(gvMxL1, "jyjg", "contains涓嶅悎鏍�", "Cell", Color.Red); + UtilityHelper.SetSimpleGridColor(gvMxL1, "jyjg", "contains鍚堟牸", "Cell", Color.Green); + UtilityHelper.SetSimpleGridColor(gvMxL1, "jyjg", "contains鍏嶆", "Cell", Color.Green); + + UtilityHelper.SetSimpleGridColor(gvMxL2, "jyjg", "contains涓嶅悎鏍�", "Cell", Color.Red); + UtilityHelper.SetSimpleGridColor(gvMxL2, "jyjg", "contains鍚堟牸", "Cell", Color.Green); + UtilityHelper.SetSimpleGridColor(gvMxL2, "jyjg", "contains鍏嶆", "Cell", Color.Green); + + UtilityHelper.SetSimpleGridColor(gvMx1, "jyjg", "contains涓嶅悎鏍�", "Cell", Color.Red); + UtilityHelper.SetSimpleGridColor(gvMx1, "jyjg", "contains鍚堟牸", "Cell", Color.Green); + UtilityHelper.SetSimpleGridColor(gvMx1, "jyjg", "contains鍏嶆", "Cell", Color.Green); + + UtilityHelper.SetSimpleGridColor(gvMx3, "jyjg", "contains涓嶅悎鏍�", "Cell", Color.Red); + UtilityHelper.SetSimpleGridColor(gvMx3, "jyjg", "contains鍚堟牸", "Cell", Color.Green); + UtilityHelper.SetSimpleGridColor(gvMx3, "jyjg", "contains鍏嶆", "Cell", Color.Green); + + // 褰撴敹璐ф暟閲�(quantity)澶т簬宸插叆搴撴暟閲�(okRkqty)鏃讹紝鏁磋鏄剧ず姗欒壊 + // UtilityHelper.SetSimpleGridColor(gvMx1, "", "quantity-okRkqty>0", "Row", Color.Orange); + + // 褰撳彲鎵撳嵃鏁伴噺(kQty)灏忎簬绛変簬0鏃讹紝鏁磋鏄剧ず鐏拌壊 + //UtilityHelper.SetSimpleGridColor(gvMx1, "", "kQty<=0", "Row", Color.Gray); + UtilityHelper.SetSimpleGridColor(gridView1, "barRatio", "=100.00%", "Cell", Color.Green); + //鍏ュ簱姣斾緥 + UtilityHelper.SetSimpleGridColor(gridView1, "rkbl", "=100.00%", "Cell", Color.Green); + }; + timer.Start(); + }; + } private void GridView1_ColumnFilterChanged(object sender, EventArgs e) { @@ -411,6 +588,7 @@ gvList.Add(gvMx2); gvList.Add(gvMx3); UtilityHelper.SetValueByObj(this.layoutMx1.Controls, dy, isEdit, gvList); + JArray array1 = new JArray(); foreach (var a in dy["list1"]) { @@ -475,6 +653,92 @@ ToolBox.MsgHelper.Warning("鎻愮ず锛�" + ex.Message); } } - + /// <summary> + /// 鏂板鏂规硶锛氬垪琛ㄦ樉绀� + /// </summary> + /// <param name="strGuid">涓昏〃id</param> + + private void getModelList(string strGuid) + { + gcMxL1.DataSource = null; + gcMxL2.DataSource = null; + gcMxL3.DataSource = null; + var _obj = new + { + guid = strGuid,//涓诲缓 + }; + try + { + string strJson = UtilityHelper.HttpPost("", _webServiceName + "GetModel", JsonConvert.SerializeObject(_obj)); + ReturnModel<dynamic> _rtn = ToolBox.UtilityHelper.ReturnToDynamic(strJson); + if (_rtn.rtnCode > 0) + { + dynamic dy = _rtn.rtnData; + + JArray array1 = new JArray(); + foreach (var a in dy["list1"]) + { + array1.Add(a); + } + DataTable dt1 = JsonConvert.DeserializeObject<DataTable>(array1.ToString()); + if (dt1.Rows.Count > 0) + { + gcMxL1.BindingContext = new BindingContext(); + gcMxL1.DataSource = dt1; + gcMxL1.ForceInitialize(); + gvMxL1.BestFitColumns(); + Gs.DevApp.ToolBox.UtilityHelper.SetGridLayout(gvMxL1); + } + else + { + Gs.DevApp.ToolBox.UtilityHelper.SetDefaultTable(gcMxL1, gvMxL1); + } + JArray array2 = new JArray(); + foreach (var a in dy["list3"]) + { + array2.Add(a); + } + + DataTable dt2 = JsonConvert.DeserializeObject<DataTable>(array2.ToString()); + if (dt2.Rows.Count > 0) + { + gcMxL2.BindingContext = new BindingContext(); + gcMxL2.DataSource = dt2; + gcMxL2.ForceInitialize(); + gvMxL2.BestFitColumns(); + Gs.DevApp.ToolBox.UtilityHelper.SetGridLayout(gvMxL2); + } + else + { + Gs.DevApp.ToolBox.UtilityHelper.SetDefaultTable(gcMxL2, gvMxL2); + } + JArray array3 = new JArray(); + foreach (var a in dy["list2"]) + { + array3.Add(a); + } + DataTable dt3 = JsonConvert.DeserializeObject<DataTable>(array3.ToString()); + if (dt3.Rows.Count > 0) + { + gcMxL3.BindingContext = new BindingContext(); + gcMxL3.DataSource = dt3; + gcMxL3.ForceInitialize(); + gvMxL3.BestFitColumns(); + Gs.DevApp.ToolBox.UtilityHelper.SetGridLayout(gvMxL3); + } + else + { + Gs.DevApp.ToolBox.UtilityHelper.SetDefaultTable(gcMxL3, gvMxL3); + } + } + else + ToolBox.MsgHelper.Warning("鎻愮ず锛�" + _rtn.rtnMsg); + } + catch (Exception ex) + { + ToolBox.MsgHelper.Warning("鎻愮ず锛�" + ex.Message); + } + } + } } \ No newline at end of file -- Gitblit v1.9.3