cnf
6 天以前 8daa94248baa30f5606c9486b0c1c5603f9de8b4
DevApp/Gs.DevApp/DevFrm/Rk/Frm_MesInvItemArn.cs
@@ -14,6 +14,8 @@
using System.Threading.Tasks;
using System.Windows.Forms;
namespace Gs.DevApp.DevFrm
{
    public partial class Frm_MesInvItemArn : XtraForm
@@ -25,6 +27,7 @@
        public Frm_MesInvItemArn()
        {
            InitializeComponent();
            this.chkAllUrgent.CheckedChanged += ChkAllUrgent_CheckedChanged;
            toolBarMenu1.btnAddClick += ToolBarMenu1_btnAddClick;
            toolBarMenu1.btnEdtClick += ToolBarMenu1_btnEdtClick;
            toolBarMenu1.btnSaveClick += ToolBarMenu1_btnSaveClick;
@@ -115,6 +118,7 @@
                            gvMx1quantity.OptionsColumn.ReadOnly = true;
                            txt_paperBillNo.ReadOnly = true;
                            txt_isSrm.Checked = true;
                            DataTable _newTable = dt.rtnData;
                            _oldTable = _newTable;
                        }
@@ -164,6 +168,34 @@
            Task.Delay(100);
            getPageList(1);
        }
        /// <summary>
        /// 全单急料开关切换事件
        /// </summary>
        private void ChkAllUrgent_CheckedChanged(object sender, EventArgs e)
        {
            if (gvMx1.DataRowCount == 0) return;
            if (chkAllUrgent.Properties.ReadOnly) return;
            bool isUrgent = chkAllUrgent.Checked;
            string targetTxt = isUrgent ? "1:急料" : "0:普通";
            gvMx1.BeginDataUpdate();
            try
            {
                for (int i = 0; i < gvMx1.DataRowCount; i++)
                {
                    // 注意:SetRowCellValue 会触发 Grid 的 CellValueChanged 事件(如果有的话)
                    gvMx1.SetRowCellValue(i, "urgentFlagTxt", targetTxt);
                }
            }
            finally
            {
                gvMx1.EndDataUpdate();
                // 强制刷新视图,确保文字变了
                gvMx1.RefreshData();
            }
        }
        /// <summary>
        ///     分页事件
@@ -341,6 +373,12 @@
            setSrm();
            txt_receiveOrgId.IsReadly = true;
            txt_suppId.IsReadly = true;
            if (chkAllUrgent != null)
            {
                // 1. 确保控件启用
                chkAllUrgent.Enabled = true;
                chkAllUrgent.Properties.ReadOnly = false;
            }
        }
        /// <summary>
@@ -420,7 +458,8 @@
                        AboutGuid = Gs.DevApp.ToolBox.UtilityHelper.ToGuid(row["aboutGuid"].ToString()),
                        ItemId = int.Parse(row["itemId"].ToString()),
                        Quantity = decimal.Parse(row["quantity"].ToString()),
                        UrgentFlag = (row["urgentFlagTxt"].ToString().Replace(":","").Replace("普通", "").Replace("急料", "").Replace("一般", "")),
                        // 这段保存代码不用动,它能自动识别上面设置的文字
                        UrgentFlag = (row["urgentFlagTxt"] != null && row["urgentFlagTxt"].ToString().Contains("急料")) ? "1" : "0",
                        Remark = row["memo"].ToString(),
                    });
                }
@@ -545,6 +584,28 @@
                        gcMx1.ForceInitialize();
                        gvMx1.BestFitColumns();
                        Gs.DevApp.ToolBox.UtilityHelper.SetGridLayout(gvMx1);
                        if (chkAllUrgent != null)
                        {
                            chkAllUrgent.CheckedChanged -= ChkAllUrgent_CheckedChanged;
                            bool allUrgent = true;
                            foreach (DataRow dr in dt.Rows)
                            {
                                // 假设字段名是 urgentFlagTxt,值是 "1:急料"
                                string val = dr["urgentFlagTxt"]?.ToString() ?? "";
                                if (!val.Contains("1:急料"))
                                {
                                    allUrgent = false;
                                    break;
                                }
                            }
                            // 3. 设置开关状态
                            chkAllUrgent.Checked = allUrgent;
                            // 4. 根据当前模式(编辑/查看)决定是否可用
                            // 如果是 add 或 edit 模式,且有权限,则允许点击
                            chkAllUrgent.Enabled = isEdit || toolBarMenu1.currentAction == "add";
                            chkAllUrgent.Properties.ReadOnly = !(isEdit || toolBarMenu1.currentAction == "add");
                            chkAllUrgent.CheckedChanged += ChkAllUrgent_CheckedChanged;
                        }
                    }
                    else
                    {