| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569570571572573574575576577578579580581582583584585586587588589590591592593594595596597598599600601602603604605606607608609610611612613614615616617618619620621622623624625626627628629630631632633634635636637638639640641642643644645646647648649650651652653654655656657658659660661662663664665666667668669670671672673674675676677678679680681682683684685686687688689690691692693694695696697698699700701702703704705706707708709710711712713714715716717718719720721722723724725726727728729730731732733734735736737738739740741742743744745746747748749750751752753754755756757758759760761762763764765766767768769770771772773774775776777778779780781 |
- using System;
- using System.Collections;
- using System.ComponentModel;
- using System.Data;
- using System.Drawing;
- using System.Windows.Forms;
- using Core.Mes.Client.Comm;
- using Core.Mes.Client.Comm.Server;
- using Core.StlMes.Client.LgClassModel;
- using CoreFS.CA06;
- using Infragistics.Win;
- using Infragistics.Win.Misc;
- using Infragistics.Win.UltraWinGrid;
- namespace Core.StlMes.Client.LgCommon
- {
- public delegate void SetResHopperHandler(); //设置料仓后调用控件的SetHopperInfo
- public partial class ucResAdditiveBase : UserControl
- {
- /// <summary>
- /// 物料编码集合
- /// </summary>
- private Hashtable _ITEMS;
- private MaterialCategory _MtrlCategory = MaterialCategory.FL;
- private HopperCategory _HpprCategory = HopperCategory.Automatic;
- private Hashtable _htValueInitial = null; //初始值
- private Hashtable _htValueChanged = null; //修改后的值
- private Hashtable _htMaterialtypeChanged = null; //加料类型
- private Hashtable _htCaptionChanged = null; //修改字段中文名
- private OpeBase ob;
- private string _DEVICE_POSITION = ""; //设备位置
- public string _HeatProcessNo = "";
- public SetResHopperHandler SetHopper = null; //设置料仓后调用控件的SetHopperInfo
- #region 属性
- /// <summary>
- /// 设备位置
- /// </summary>
- [Description("设备位置")]
- public string DEVICE_POSITION
- {
- get { return _DEVICE_POSITION; }
- set { if (value != _DEVICE_POSITION) _DEVICE_POSITION = value; }
- }
- /// <summary>
- /// 物料类别
- /// </summary>
- [Description("物料类别")]
- public MaterialCategory MtrlCategory
- {
- get { return _MtrlCategory; }
- set { if (value != _MtrlCategory) _MtrlCategory = value; }
- }
- /// <summary>
- /// 投料分类
- /// </summary>
- [Description("投料分类")]
- public HopperCategory HpprCategory
- {
- get { return _HpprCategory; }
- set { if (value != _HpprCategory) _HpprCategory = value; }
- }
- /// <summary>
- /// 初始值
- /// </summary>
- public Hashtable htValueInitial
- {
- get { return _htValueInitial; }
- }
- /// <summary>
- /// 值发生变化列表
- /// </summary>
- public Hashtable htValueChanged
- {
- get
- {
- ultraGrid1.UpdateData();
- return _htValueChanged;
- }
- }
- /// <summary>
- /// 修改字段数据类型
- /// </summary>
- public Hashtable htMaterialtypeChanged
- {
- get
- {
- ultraGrid1.UpdateData();
- return _htMaterialtypeChanged;
- }
- }
- /// <summary>
- /// 值发生变化的字段名
- /// </summary>
- public Hashtable htCaptionChanged
- {
- get
- {
- ultraGrid1.UpdateData();
- return _htCaptionChanged;
- }
- }
- /// <summary>
- /// 有值发生变化
- /// </summary>
- public bool HasChanged
- {
- get
- {
- ultraGrid1.UpdateData();
- return (_htValueChanged != null && _htValueChanged.Count > 0);
- }
- }
- #endregion
- #region 构造函数
- public ucResAdditiveBase()
- {
- InitializeComponent();
- ClsControlPack.SetUltraGridStyle(ultraGrid1, 1);
- ClsControlPack.InitUserControl(this.ultraDataSource1, ultraGrid1);
- }
- protected override void OnLoad(EventArgs e)
- {
- base.OnLoad(e);
- this.InitControl();
- //this.SetDelegate();
- }
- #endregion
- #region 私用方法
- private void InitControl()
- {
- InitItems(ref _ITEMS);
- this.InitMaterialArea();
- }
- private void InitItems(ref Hashtable alist)
- {
- if (alist == null) alist = new Hashtable();
- else alist.Clear();
- }
- protected void InitHashtable(ref Hashtable htbl)
- {
- if (htbl == null) htbl = new Hashtable();
- }
- private void InitMaterialArea()
- {
- for (int i = 0; i < ultraGrid1.DisplayLayout.Bands[0].Columns.Count; i++)
- {
- try
- {
- ultraGrid1.DisplayLayout.Bands[0].Columns[i].Tag = ultraGrid1.DisplayLayout.Bands[0].Columns[i].Key;
- ultraGrid1.DisplayLayout.Bands[0].Columns[i].Header.Caption = "";
- ultraGrid1.DisplayLayout.Bands[0].Columns[i].Header.Tag = "";
- }
- catch { }
- }
- }
- #endregion
- #region 窗体调用
- public void SetOpeBase(OpeBase ob)
- {
- this.ob = ob;
- }
- /// <summary>
- /// 读取并设置仓对应物料
- /// </summary>
- /// <param name="tblConfig">设置表</param>
- /// <param name="tblMaterial">物料基础表</param>
- public void SetHopperInfo(DataTable tblConfig, DataTable tblMaterial)
- {
- this.InitControl();
- try
- {
- string Filter = "";
- DataRow[] rows = null;
- if (_HpprCategory == HopperCategory.Automatic)
- {
- if (_MtrlCategory == MaterialCategory.FL) Filter = "MATERIELTYPE = 'FL'";
- else if (_MtrlCategory == MaterialCategory.HJ) Filter = "MATERIELTYPE = 'HJ'";
- else if (_MtrlCategory == MaterialCategory.WS) Filter = "MATERIELTYPE = 'WS'";
- else if (_MtrlCategory == MaterialCategory.FL_HJ) Filter = "MATERIELTYPE = 'FL' or MATERIELTYPE = 'HJ'";
- else if (_MtrlCategory == MaterialCategory.FL_WS) Filter = "MATERIELTYPE = 'FL' or MATERIELTYPE = 'WS'";
- else if (_MtrlCategory == MaterialCategory.HJ_WS) Filter = "MATERIELTYPE = 'HJ' or MATERIELTYPE = 'WS'";
- else if (_MtrlCategory == MaterialCategory.FL_HJ_WS) Filter = "MATERIELTYPE = 'FL' or MATERIELTYPE = 'HJ' or MATERIELTYPE = 'WS'";
- else Filter = "MATERIELTYPE = '?'";
- Filter = "(" + Filter + ") and JMTYPE = '1'";
- rows = tblConfig.Select(Filter);
- int iPos = 1; //位置序号
- string strCode = ""; //物料编码
- for (int idx = 0; idx < rows.Length; idx++)
- {
- if (iPos >= ultraDataSource1.Band.Columns.Count) break; //大于设置物料总数则退出
- strCode = Convert.ToString(rows[idx]["MATERIELCODE"]);
- if (_ITEMS.Contains(strCode)) continue; //已经加载此物料编码
- _ITEMS.Add(strCode, iPos.ToString());
- ultraGrid1.DisplayLayout.Bands[0].Columns[iPos.ToString()].Tag = strCode; //保存物料编码
- ultraGrid1.DisplayLayout.Bands[0].Columns[iPos.ToString()].Header.Caption = Convert.ToString(rows[idx]["ITEM_NAME"]); //保存物料简称
- ultraGrid1.DisplayLayout.Bands[0].Columns[iPos.ToString()].Header.Tag = Convert.ToString(rows[idx]["MATERIELTYPE"]); //保存物料类别
- iPos++;
- }
- }
- else if (_HpprCategory == HopperCategory.Manual)
- {
- if (tblConfig == null || tblConfig.Rows.Count == 0 || tblMaterial == null) return;
- string strConfig = Convert.ToString(tblConfig.Rows[0]["CONFGCODE"]).Trim();
- string[] strItems = strConfig.Split(new string[] { "/" }, StringSplitOptions.RemoveEmptyEntries);
- int iPos = 1; //位置序号
- string strCode = ""; //物料编码
- for (int idx = 0; idx < strItems.Length; idx++)
- {
- if (iPos >= ultraDataSource1.Band.Columns.Count) break; //大于设置物料总数则退出
- strCode = Convert.ToString(strItems[idx]);
- if (_ITEMS.Contains(strCode)) continue; //已经加载此物料编码
- rows = tblMaterial.Select("ITEM_CODE = '" + strCode + "'");
- if (rows.Length <= 0) continue; //基础表不存在此物料
- _ITEMS.Add(strCode, iPos.ToString());
- ultraGrid1.DisplayLayout.Bands[0].Columns[iPos.ToString()].Tag = Convert.ToString(rows[0]["ITEM_CODE"]); //保存物料编码
- ultraGrid1.DisplayLayout.Bands[0].Columns[iPos.ToString()].Header.Caption = Convert.ToString(rows[0]["ITEM_NAME"]); //保存物料简称
- ultraGrid1.DisplayLayout.Bands[0].Columns[iPos.ToString()].Header.Tag = Convert.ToString(rows[0]["ARC_CODE"]); //保存物料类别
- iPos++;
- }
- }
- }
- catch { }
- finally
- {
- try
- {
- for (int i = 0; i < ultraDataSource1.Band.Columns.Count; i++)
- {
- if (ultraGrid1.DisplayLayout.Bands[0].Columns[i].Header.Caption.Trim() == "")
- {
- ultraGrid1.DisplayLayout.Bands[0].Columns[i].CellActivation = Infragistics.Win.UltraWinGrid.Activation.NoEdit;
- }
- else
- {
- ultraGrid1.DisplayLayout.Bands[0].Columns[i].CellActivation = Infragistics.Win.UltraWinGrid.Activation.AllowEdit;
- }
- }
- }
- catch { }
- ResetAdditiveData();
- }
- }
- /// <summary>
- /// 加料数据填充
- /// </summary>
- /// <param name="additiveBuffer">加料数据集</param>
- public void SetAdditiveData(CommonAdditive additiveBuffer)
- {
- try
- {
- if (additiveBuffer == null || additiveBuffer.hList.Count == 0)
- {
- ResetAdditiveData();
- return;
- }
- InitHashtable(ref _htValueInitial);
- string strKey = ""; //料仓ID
- string strCode = ""; //某个料仓配置的物料编码
- string strType = ""; //某个料仓配置的物料类别
- bool Added = false; //表示某个料仓是否有加料
- for (int idx = 0; idx < ultraDataSource1.Band.Columns.Count; idx++)
- {
- try
- {
- strKey = ultraDataSource1.Band.Columns[idx].Key;
- strCode = Convert.ToString(ultraGrid1.DisplayLayout.Bands[0].Columns[strKey].Tag);
- strType = Convert.ToString(ultraGrid1.DisplayLayout.Bands[0].Columns[strKey].Header.Tag);
- if (strKey.Equals(strCode)) //料斗没有设置物料
- {
- ultraDataSource1.Rows[0][strKey] = "";
- ultraGrid1.Rows[0].Cells[strKey].Appearance.ResetBackColor();
- if (_htValueInitial.Contains(strCode)) _htValueInitial.Remove(strCode);
- continue;
- }
- if (!_htValueInitial.Contains(strCode)) _htValueInitial.Add(strCode, DBNull.Value);
- else _htValueInitial[strCode] = DBNull.Value;
- for (int i = 0; i < additiveBuffer.hList.Count; i++)
- {
- STL_COMMON_ADDITIVES addt = (STL_COMMON_ADDITIVES)additiveBuffer.hList[i];
- if (_HpprCategory == HopperCategory.Automatic) //自动加料才判断物料类别
- {
- if (addt == null || addt.JMTYPE != "1") continue; //加料类型为1表示自动加料
- if (addt.MATERIELTYPE != strType || addt.MATERIELCODE != strCode) continue; //物料类别、物料编码匹配
- if (_MtrlCategory == MaterialCategory.FL && addt.MATERIELTYPE != "FL") continue;
- if (_MtrlCategory == MaterialCategory.HJ && addt.MATERIELTYPE != "HJ") continue;
- if (_MtrlCategory == MaterialCategory.WS && addt.MATERIELTYPE != "WS") continue;
- if (_MtrlCategory == MaterialCategory.FL_HJ && addt.MATERIELTYPE != "FL" && addt.MATERIELTYPE != "HJ") continue;
- if (_MtrlCategory == MaterialCategory.FL_WS && addt.MATERIELTYPE != "FL" && addt.MATERIELTYPE != "WS") continue;
- if (_MtrlCategory == MaterialCategory.HJ_WS && addt.MATERIELTYPE != "HJ" && addt.MATERIELTYPE != "WS") continue;
- if (_MtrlCategory == MaterialCategory.FL_HJ_WS && addt.MATERIELTYPE != "FL" && addt.MATERIELTYPE != "HJ" && addt.MATERIELTYPE != "WS") continue;
- }
- else if (_HpprCategory == HopperCategory.Manual)
- {
- if (addt == null || addt.MATERIELTYPE != strType || addt.MATERIELCODE != strCode || addt.JMTYPE != "2") continue;
- }
- try
- {
- ultraDataSource1.Rows[0][strKey] = addt.JMWGT;
- if (!_htValueInitial.Contains(strCode)) _htValueInitial.Add(strCode, addt.JMWGT);
- else _htValueInitial[strCode] = addt.JMWGT;
- Added = true;
- break;
- }
- catch { }
- }
- }
- catch { }
- if (!Added) ultraDataSource1.Rows[0][strKey] = ""; //没有加料
- else if (Added) Added = false; //清除加料标志,跳转到下一料仓
- ultraGrid1.Rows[0].Cells[strKey].Appearance.ResetBackColor();
- }
- }
- catch { }
- finally
- {
- ultraGrid1.UpdateData();
- if (_htValueChanged != null) _htValueChanged.Clear();
- if (_htMaterialtypeChanged != null) _htMaterialtypeChanged.Clear();
- if (_htCaptionChanged != null) _htCaptionChanged.Clear();
- }
- }
- /// <summary>
- /// 加料数据填充
- /// </summary>
- /// <param name="additiveBuffer">加料数据集</param>
- public void RefreshAdditiveData(CommonAdditive additiveBuffer)
- {
- try
- {
- if (additiveBuffer == null || additiveBuffer.hList.Count == 0)
- {
- ResetAdditiveData();
- return;
- }
- InitHashtable(ref _htValueInitial);
- string strKey = ""; //料仓ID
- string strCode = ""; //某个料仓配置的物料编码
- string strType = ""; //某个料仓配置的物料类别
- bool Added = false; //表示某个料仓是否有加料
- for (int idx = 0; idx < ultraDataSource1.Band.Columns.Count; idx++)
- {
- try
- {
- strKey = ultraDataSource1.Band.Columns[idx].Key;
- strCode = Convert.ToString(ultraGrid1.DisplayLayout.Bands[0].Columns[strKey].Tag);
- strType = Convert.ToString(ultraGrid1.DisplayLayout.Bands[0].Columns[strKey].Header.Tag);
- if (strKey.Equals(strCode)) //料斗没有设置物料
- {
- ultraDataSource1.Rows[0][strKey] = "";
- ultraGrid1.Rows[0].Cells[strKey].Appearance.ResetBackColor();
- if (_htValueInitial.Contains(strCode)) _htValueInitial.Remove(strCode);
- continue;
- }
- if (!_htValueInitial.Contains(strCode)) _htValueInitial.Add(strCode, DBNull.Value);
- else _htValueInitial[strCode] = DBNull.Value;
- for (int i = 0; i < additiveBuffer.hList.Count; i++)
- {
- STL_COMMON_ADDITIVES addt = (STL_COMMON_ADDITIVES)additiveBuffer.hList[i];
- if (_HpprCategory == HopperCategory.Automatic) //自动加料才判断物料类别
- {
- if (addt == null || addt.JMTYPE != "1") continue; //加料类型为1表示自动加料
- if (addt.MATERIELTYPE != strType || addt.MATERIELCODE != strCode) continue; //物料类别、物料编码匹配
- if (_MtrlCategory == MaterialCategory.FL && addt.MATERIELTYPE != "FL") continue;
- if (_MtrlCategory == MaterialCategory.HJ && addt.MATERIELTYPE != "HJ") continue;
- if (_MtrlCategory == MaterialCategory.WS && addt.MATERIELTYPE != "WS") continue;
- if (_MtrlCategory == MaterialCategory.FL_HJ && addt.MATERIELTYPE != "FL" && addt.MATERIELTYPE != "HJ") continue;
- if (_MtrlCategory == MaterialCategory.FL_WS && addt.MATERIELTYPE != "FL" && addt.MATERIELTYPE != "WS") continue;
- if (_MtrlCategory == MaterialCategory.HJ_WS && addt.MATERIELTYPE != "HJ" && addt.MATERIELTYPE != "WS") continue;
- if (_MtrlCategory == MaterialCategory.FL_HJ_WS && addt.MATERIELTYPE != "FL" && addt.MATERIELTYPE != "HJ" && addt.MATERIELTYPE != "WS") continue;
- }
- else if (_HpprCategory == HopperCategory.Manual)
- {
- if (addt == null || addt.MATERIELTYPE != strType || addt.MATERIELCODE != strCode || addt.JMTYPE != "2") continue;
- }
- try
- {
- ultraDataSource1.Rows[0][strKey] = addt.JMWGT;
- if (!_htValueInitial.Contains(strCode)) _htValueInitial.Add(strCode, addt.JMWGT);
- else _htValueInitial[strCode] = addt.JMWGT;
- Added = true;
- break;
- }
- catch { }
- }
- }
- catch { }
- if (!Added) ultraDataSource1.Rows[0][strKey] = ""; //没有加料
- else if (Added) Added = false; //清除加料标志,跳转到下一料仓
- ultraGrid1.Rows[0].Cells[strKey].Appearance.ResetBackColor();
- }
- }
- catch { }
- finally
- {
- ultraGrid1.UpdateData();
- if (_htValueChanged != null) _htValueChanged.Clear();
- if (_htMaterialtypeChanged != null) _htMaterialtypeChanged.Clear();
- if (_htCaptionChanged != null) _htCaptionChanged.Clear();
- }
- }
- public void ResetAdditiveData()
- {
- ClsControlPack.ResetUltraDataSource(this.ultraDataSource1, ultraGrid1);
- try
- {
- InitHashtable(ref _htValueInitial);
- string strKey = "";
- UltraGridColumn column;
- for (int i = 0; i < ultraGrid1.DisplayLayout.Bands[0].Columns.Count; i++)
- {
- column = ultraGrid1.DisplayLayout.Bands[0].Columns[i];
- try
- {
- strKey = column.Key;
- if (column.Tag != null && !string.IsNullOrEmpty(Convert.ToString(column.Tag)) && !Convert.ToString(column.Tag).Equals(strKey))
- {
- _htValueInitial.Add(Convert.ToString(column.Tag), DBNull.Value);
- }
- }
- catch { }
- finally
- {
- try
- {
- ultraGrid1.Rows[0].Cells[column.Key].Appearance.ResetBackColor();
- }
- catch { }
- }
- }
- }
- catch { }
- finally
- {
- if (_htValueChanged != null) _htValueChanged.Clear();
- if (_htMaterialtypeChanged != null) _htMaterialtypeChanged.Clear();
- if (_htCaptionChanged != null) _htCaptionChanged.Clear();
- }
- }
- #endregion
- #region 事件
- protected virtual void SetDelegate()
- {
- this.ultraGrid1.DoubleClickHeader += new DoubleClickHeaderEventHandler(ultraGrid1_DoubleClickHeader);
- ultraGrid1.ClickCellButton += new CellEventHandler(ultraGrid1_ClickCellButton);
- ultraGrid1.KeyDown += new KeyEventHandler(ultraGrid1_KeyDown);
- ultraGrid1.AfterCellUpdate += new CellEventHandler(ultraGrid1_AfterCellUpdate);
- ultraGrid1.CellChange += new CellEventHandler(ultraGrid1_CellChange);
- }
- protected virtual void ultraGrid1_DoubleClickHeader(object sender, DoubleClickHeaderEventArgs e)
- {
- try
- {
- if (_HpprCategory == HopperCategory.Automatic)
- {
- frmSetHopper frm = new frmSetHopper(_DEVICE_POSITION, ob);
- frm.ShowDialog();
- if (this.SetHopper != null)
- this.Invoke(this.SetHopper);
- }
- else if (_HpprCategory == HopperCategory.Manual)
- {
- string strOriginal = ""; //原始物料编码
- if (Convert.ToString(e.Header.Column.Tag) != e.Header.Column.Key)
- strOriginal = Convert.ToString(e.Header.Column.Tag);
- string strName = Convert.ToString(e.Header.Caption); //物料名称
- frmSetMaterialName frm = new frmSetMaterialName(strName, "1", ob);
- frm.ShowDialog();
- if (frm.bChange)
- {
- string strMaterielCode = frm.m_szWLBM;
- try
- {
- ServerHelper.SetData("Core.LgMes.Server.LgDeviceManager.StlAdditive.UpdateInterFaceConfig",
- new object[]
- {
- new object[]
- {
- _DEVICE_POSITION, strOriginal, strMaterielCode
- }
- }, ob);
- if (this.SetHopper != null)
- this.Invoke(this.SetHopper);
- }
- catch (Exception ex)
- {
- if (ex is MESException)
- {
- }
- else
- MessageBox.Show("手投料物料配置失败", "提示", MessageBoxButtons.OK, MessageBoxIcon.Error);
- }
- //string strPurposeCode = "手投料";
- //string strMsg = "";
- //bool bSuccess = ClsBusinessPack.SaveManulAdditiveConfig(_DEVICE_POSITION, strOriginal, strMaterielCode, strPurposeCode, out strMsg, ob);
- //if (!bSuccess)
- //{
- // MessageBox.Show("手投料物料配置失败!\n" + strMsg, "提示", MessageBoxButtons.OK, MessageBoxIcon.Asterisk);
- // return;
- //}
- //if (this.SetHopper != null)
- // this.Invoke(this.SetHopper);
- }
- }
- }
- catch { }
- //try
- //{
- // if (e.Header.Column.Tag != null && e.Header.Tag != null &&
- // !Convert.ToString(e.Header.Column.Tag).Equals(e.Header.Column.Key) &&
- // !string.IsNullOrEmpty(Convert.ToString(e.Header.Tag)))
- // {
- // string strCaption = e.Header.Caption.Trim();
- // MessageBox.Show("设定物料[" + strCaption + "]不能更改!", "提示", MessageBoxButtons.OK, MessageBoxIcon.Asterisk);
- // return;
- // }
- // frmMaterial frm = new frmMaterial(_HpprCategory, _MtrlCategory, this.ob);
- // if (frm.ShowDialog() == DialogResult.OK)
- // {
- // UltraGridRow row = frm.SelectedRow;
- // if (row != null)
- // {
- // string strCode = Convert.ToString(row.Cells["MATERIELCODE"].Value);
- // string strName = Convert.ToString(row.Cells["MATERIELFORSHORT"].Value);
- // string strType = Convert.ToString(row.Cells["MATERIELTYPE"].Value);
- // if (_ITEMS != null && _ITEMS.Contains(strCode))
- // {
- // MessageBox.Show("物料[" + strName + "]已经存在!", "提示", MessageBoxButtons.OK, MessageBoxIcon.Asterisk);
- // return;
- // }
- // InitHashtable(ref _htValueInitial);
- // for (int i = 0; i < ultraGrid1.DisplayLayout.Bands[0].Columns.Count; i++)
- // {
- // if (ultraGrid1.DisplayLayout.Bands[0].Columns[i].Tag == null || Convert.ToString(ultraGrid1.DisplayLayout.Bands[0].Columns[i].Tag) == "" ||
- // Convert.ToString(ultraGrid1.DisplayLayout.Bands[0].Columns[i].Tag).Equals(ultraGrid1.DisplayLayout.Bands[0].Columns[i].Key))
- // {
- // _ITEMS.Add(strCode, Convert.ToString(i + 1));
- // if (!_htValueInitial.Contains(strCode))
- // _htValueInitial.Add(strCode, DBNull.Value);
- // ultraGrid1.DisplayLayout.Bands[0].Columns[i].Tag = strCode; //保存物料编码
- // ultraGrid1.DisplayLayout.Bands[0].Columns[i].Header.Caption = strName; //保存物料简称
- // ultraGrid1.DisplayLayout.Bands[0].Columns[i].Header.Tag = strType; //保存物料类别
- // break;
- // }
- // }
- // }
- // }
- //}
- //catch { }
- }
- protected virtual void ultraGrid1_ClickCellButton(object sender, CellEventArgs e)
- {
- try
- {
- if (e.Cell.Column.Tag == null || Convert.ToString(e.Cell.Column.Tag) == "" || Convert.ToString(e.Cell.Column.Tag).Equals(e.Cell.Column.Key))
- return;
- if (e.Cell.Column.DataType != typeof(DateTime))
- {
- if (e.Cell.Column.Tag.ToString() == "2050010002" || e.Cell.Column.Tag.ToString() == "2050010001")
- {
- frmSelectWeight frm = new frmSelectWeight(ob);
- frm.vProcessNo = _HeatProcessNo;
- frm.MaterName = e.Cell.Column.Header.Caption.ToString();
- frm.sWeight = e.Cell.Value.ToString();
- frm.isResult = true;
- frm.ShowDialog();
- if (frm.flag)
- {
- if (!frm.isCancel)
- {
- e.Cell.Value = frm.Weight;
- }
- else
- {
- e.Cell.Value = "";
- }
- ultraGrid1.UpdateData();
- }
- else
- {
- return;
- }
- }
- else
- {
- frmInputDecimal frm = new frmInputDecimal(Convert.ToString(e.Cell.Text));
- frm.Location = ClsControlPack.GetChildWindowLocation(frm.Size);
- if (frm.ShowDialog() == DialogResult.OK)
- {
- if (!frm.ValueChanged) return;
- e.Cell.Value = frm.Value;
- ultraGrid1.UpdateData();
- }
- }
- }
- }
- catch { }
- }
- protected virtual void ultraGrid1_KeyDown(object sender, KeyEventArgs e)
- {
- try
- {
- UltraGridCell cell = ultraGrid1.ActiveCell;
- if (cell.Column.Tag == null || Convert.ToString(cell.Column.Tag) == "" || Convert.ToString(cell.Column.Tag).Equals(cell.Column.Key))
- {
- e.SuppressKeyPress = true;
- return;
- }
- if (e.KeyCode != Keys.Enter || cell.Column.CellActivation != Activation.AllowEdit) return;
- ultraGrid1.UpdateData();
- }
- catch { }
- }
- protected virtual void ultraGrid1_CellChange(object sender, CellEventArgs e)
- {
- try
- {
- if (e.Cell.Column.Tag == null || Convert.ToString(e.Cell.Column.Tag) == "" || Convert.ToString(e.Cell.Column.Tag).Equals(e.Cell.Column.Key))
- {
- if (!string.IsNullOrEmpty(Convert.ToString(e.Cell.Text)))
- {
- e.Cell.Value = "";
- ultraGrid1.UpdateData();
- }
- }
- else
- {
- if (!string.IsNullOrEmpty(Convert.ToString(e.Cell.Text)))
- {
- decimal dValue = 0;
- if (!decimal.TryParse(Convert.ToString(e.Cell.Text), out dValue))
- {
- MessageBox.Show("加料量必须是数字,请重新输入!", "提示", MessageBoxButtons.OK, MessageBoxIcon.Asterisk);
- e.Cell.Value = DBNull.Value;
- ultraGrid1.UpdateData();
- ultraGrid1.PerformAction(UltraGridAction.ExitEditMode);
- ultraGrid1.PerformAction(UltraGridAction.EnterEditMode);
- }
- else
- {
- ultraGrid1.UpdateData();
- }
- }
- else
- {
- ultraGrid1.UpdateData();
- ultraGrid1.PerformAction(UltraGridAction.ExitEditMode);
- ultraGrid1.PerformAction(UltraGridAction.EnterEditMode);
- }
- }
- }
- catch { }
- }
- protected virtual void ultraGrid1_AfterCellUpdate(object sender, CellEventArgs e)
- {
- try
- {
- if (e.Cell.Column.Tag == null || Convert.ToString(e.Cell.Column.Tag) == "" || Convert.ToString(e.Cell.Column.Tag).Equals(e.Cell.Column.Key))
- {
- if (!string.IsNullOrEmpty(Convert.ToString(e.Cell.Value)))
- {
- e.Cell.Value = "";
- ultraGrid1.UpdateData();
- }
- return;
- }
- if (!e.Cell.Column.Hidden && e.Cell.Column.CellActivation == Activation.AllowEdit)
- {
- InitHashtable(ref _htValueChanged);
- InitHashtable(ref _htMaterialtypeChanged);
- InitHashtable(ref _htCaptionChanged);
- string strKey = Convert.ToString(e.Cell.Column.Tag).ToUpper();
- string strType = Convert.ToString(e.Cell.Column.Header.Tag).ToUpper();
- string strCaption = e.Cell.Column.Header.Caption;
- object value = e.Cell.Value;
- object valueInitial = null;
- if (_htValueInitial != null && _htValueInitial.Contains(strKey)) valueInitial = _htValueInitial[strKey];
- if (value.Equals(valueInitial))
- {
- if (_htValueChanged.Contains(strKey)) _htValueChanged.Remove(strKey);
- if (_htMaterialtypeChanged.Contains(strKey)) _htMaterialtypeChanged.Remove(strKey);
- if (_htCaptionChanged.Contains(strKey)) _htCaptionChanged.Remove(strKey);
- try
- {
- e.Cell.Appearance.ResetBackColor();
- }
- catch { }
- return;
- }
- try
- {
- e.Cell.Appearance.BackColor = Color.Orange;
- }
- catch { }
- if (!_htValueChanged.Contains(strKey))
- _htValueChanged.Add(strKey, value);
- else _htValueChanged[strKey] = value;
- if (!_htMaterialtypeChanged.Contains(strKey))
- _htMaterialtypeChanged.Add(strKey, strType);
- else _htMaterialtypeChanged[strKey] = strType;
- if (!_htCaptionChanged.Contains(strKey))
- _htCaptionChanged.Add(strKey, strCaption);
- else _htCaptionChanged[strKey] = strCaption;
- }
- }
- catch { }
- }
- #endregion
- }
- }
|