lu
2025-04-19 b084bd77d01a94c8f0a2d20c86a1f45ba7c8a23c
DevApp/Gs.DevApp/DevFrm/QC/Frm_MesQaItemsDetect01Input.cs
@@ -1,23 +1,9 @@
using DevExpress.Utils;
using DevExpress.Utils.DirectXPaint;
using DevExpress.XtraGrid.Columns;
using DevExpress.XtraGrid.Views.Grid;
using DevExpress.XtraPrinting.Native;
using DevExpress.XtraRichEdit.Layout;
using Gs.DevApp.DevFrm.QC;
using Gs.DevApp.Entity;
using Gs.DevApp.Entity;
using Gs.DevApp.ToolBox;
using Gs.DevApp.UserControl;
using Newtonsoft.Json;
using Newtonsoft.Json.Linq;
using System;
using System.Collections.Generic;
using System.Configuration;
using System.Data;
using System.Drawing;
using System.Net;
using System.Threading.Tasks;
using System.Web.UI.WebControls;
using System.Windows.Forms;
namespace Gs.DevApp.DevFrm.QC
@@ -26,10 +12,12 @@
    {
        string _webServiceName = "MesQaItemsDetect01Manager/";
        private string dt01Guid = "";
        public Frm_MesQaItemsDetect01Input(string _dt01Guid)
        bool isEdit = false;
        public Frm_MesQaItemsDetect01Input(string _dt01Guid, bool _blEdit)
        {
            InitializeComponent();
            this.dt01Guid = _dt01Guid;
            this.isEdit = _blEdit;
            Gs.DevApp.ToolBox.UtilityHelper.SetGridViewParameterMx(gvMx1);
            getModel();
            gvMx1.CellValueChanged += GvMx1_CellValueChanged;
@@ -37,75 +25,85 @@
            gvMx1.CustomDrawCell += GvMx1_CustomDrawCell;
        }
        /// <summary>
        /// 判断单元格的编辑性
        /// </summary>
        /// <param name="Column"></param>
        /// <param name="_maxYbs"></param>
        /// <returns></returns>
        private bool ckCol(string ColumnName, string _maxYbs)
        {
            string _FieldName = ColumnName;
            if (!_FieldName.Contains("样本"))
                return false;
            if (_FieldName == "样本数")
                return true;
            if (string.IsNullOrEmpty(_maxYbs))
                return false;
            string _seqYb = _FieldName.Replace("样本", "");
            if (int.Parse(_seqYb) > int.Parse(_maxYbs))
                return false;
            return true;
        }
        private void GvMx1_CustomDrawCell(object sender, DevExpress.XtraGrid.Views.Base.RowCellCustomDrawEventArgs e)
        {
            // 判断单元格是否符合条件 && e.CellValue.ToString() == "YourCondition"
            bool _bl = false;
            string _FieldName = e.Column.FieldName;
            //if (e.Column.FieldName == "样本数")
            //{
            //    _bl = true;
            //}
            //e.Appearance.BackColor = Color.LightBlue; // 设置背景色
            if (_FieldName.Contains("样"))
            string _maxYbs = (gvMx1.GetRowCellValue(e.RowHandle, "样本数").ToString());
            bool _bl = ckCol(e.Column.FieldName, _maxYbs);
            if (_bl)
            {
                if (_FieldName == "样本数")
                    _bl = true;
                else
                {
                    string _maxYbs = (gvMx1.GetRowCellValue(e.RowHandle, "样本数").ToString());
                    string _seqYb = _FieldName.Replace("样本", "");
                    if (int.Parse(_seqYb) > int.Parse(_maxYbs))
                        _bl = false;
                    else
                        _bl = true;
                }
            }
            else
            {
                _bl = false;
            }
            if (_bl) {
              e.Appearance.BackColor = Color.Azure;
                e.Appearance.BackColor = Color.Azure;
                e.Column.MinWidth = 50;
             //e.Appearance.BackColor2 = Color.LightSkyBlue;
            }
            else
            {
                e.Appearance.BackColor = Color.LightGray;
            }
            e.Column.OptionsColumn.ReadOnly = !isEdit;
        }
        private void GvMx1_CellValueChanged(object sender, DevExpress.XtraGrid.Views.Base.CellValueChangedEventArgs e)
        {
            // 获取行句柄
            int rowHandle = e.RowHandle;
            // 获取列
            //  GridColumn col = gvMx1.Columns[e.Column.Name];
            // 获取新值
            object newValue = e.Value;
            // 获取旧值
            //   object oldValue = gvMx1.GetRowCellValue(rowHandle, col);
            //   MessageBox.Show(newValue.ToString());
            //  getModel();
            // 在这里执行你的逻辑,例如:
            //  MessageBox.Show($"行 {rowHandle},列 {col.FieldName} 的值已从 {oldValue} 改为 {newValue}");
            string dt05Guid = gvMx1.GetRowCellValue(e.RowHandle, "guid").ToString();
            string dtCol = e.Column.FieldName;
            gvMx1.CloseEditor();
            gvMx1.PostEditor();
            gvMx1.UpdateCurrentRow();
            var _obj = new
            {
                dt05Guid = dt05Guid,
                fSeq = dtCol,
                fVal = newValue,
            };
            try
            {
                // 获取行句柄
                int rowHandle = e.RowHandle;
                // 获取列
                //  GridColumn col = gvMx1.Columns[e.Column.Name];
                // 获取新值
                object newValue = e.Value;
                if (newValue == null || string.IsNullOrEmpty(newValue.ToString())) { return; }
                // 获取旧值
                //   object oldValue = gvMx1.GetRowCellValue(rowHandle, col);
                //   MessageBox.Show(newValue.ToString());
                //  getModel();
                // 在这里执行你的逻辑,例如:
                //  MessageBox.Show($"行 {rowHandle},列 {col.FieldName} 的值已从 {oldValue} 改为 {newValue}");
                string dt05Guid = gvMx1.GetRowCellValue(e.RowHandle, "guid").ToString();
                string dtCol = e.Column.FieldName;
                gvMx1.CloseEditor();
                gvMx1.PostEditor();
                gvMx1.UpdateCurrentRow();
                var _obj = new
                {
                    dt05Guid = dt05Guid,
                    fSeq = dtCol,
                    fVal = newValue,
                };
                string strJson = UtilityHelper.HttpPost("", _webServiceName + "EditYangLi", JsonConvert.SerializeObject(_obj));
                ReturnModel<dynamic> _rtn = ToolBox.UtilityHelper.ReturnToDynamic(strJson);
                if (_rtn.rtnCode > 0)
                {
                    string _strYbNo = _rtn.rtnData.outNo;
                    string _outMsg = _rtn.rtnData.outMsg;
                    string _outSum = _rtn.rtnData.outSum;
                    if (string.IsNullOrEmpty(_outSum)) _outSum = "-1";
                    if (int.Parse(_outSum) < 0)
                    {
                        Gs.DevApp.ToolBox.MsgHelper.ShowError(_outMsg);
                        gvMx1.SetRowCellValue(rowHandle, dtCol, "");
                    }
                    if (_strYbNo == "样本数")
                        getModel();
                    //lbGuid.Text = _rtn.rtnData.outGuid;
@@ -124,23 +122,10 @@
        private void GvMx1_ShowingEditor(object sender, System.ComponentModel.CancelEventArgs e)
        {
            DevExpress.XtraGrid.Views.Grid.GridView view = sender as DevExpress.XtraGrid.Views.Grid.GridView;
            string _FieldName = view.FocusedColumn.FieldName;
            if (view.FocusedColumn.FieldName.Contains("样"))
            {
                if (_FieldName == "样本数")
                    e.Cancel = false;
                else
                {
                    string _maxYbs = (gvMx1.GetRowCellValue(view.FocusedRowHandle, "样本数").ToString());
                    string _seqYb = _FieldName.Replace("样本", "");
                    if (int.Parse(_seqYb) > int.Parse(_maxYbs))
                        e.Cancel = true;
                }
            }
            else
            {
            string _maxYbs = (gvMx1.GetRowCellValue(view.FocusedRowHandle, "样本数").ToString());
            bool _bl = ckCol(view.FocusedColumn.FieldName, _maxYbs);
            if (!_bl)
                e.Cancel = true;
            }
        }
@@ -165,13 +150,13 @@
                        gcMx1.DataSource = dt;
                        gcMx1.ForceInitialize();
                        gvMx1.BestFitColumns();
                        gvMx1.Columns["guid"].Visible = false;
                        gvMx1.Columns["parentGuid"].Visible = false;
                    }
                    else
                    {
                        Gs.DevApp.ToolBox.UtilityHelper.SetDefaultTable(gcMx1, gvMx1);
                    }
                    gvMx1.Columns["guid"].Visible = false;
                    gvMx1.Columns["parentGuid"].Visible = false;
                }
                else
                    ToolBox.MsgHelper.Warning("提示:" + _rtn.rtnMsg);