| 1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283848586878889909192939495969798991001011021031041051061071081091101111121131141151161171181191201211221231241251261271281291301311321331341351361371381391401411421431441451461471481491501511521531541551561571581591601611621631641651661671681691701711721731741751761771781791801811821831841851861871881891901911921931941951961971981992002012022032042052062072082092102112122132142152162172182192202212222232242252262272282292302312322332342352362372382392402412422432442452462472482492502512522532542552562572582592602612622632642652662672682692702712722732742752762772782792802812822832842852862872882892902912922932942952962972982993003013023033043053063073083093103113123133143153163173183193203213223233243253263273283293303313323333343353363373383393403413423433443453463473483493503513523533543553563573583593603613623633643653663673683693703713723733743753763773783793803813823833843853863873883893903913923933943953963973983994004014024034044054064074084094104114124134144154164174184194204214224234244254264274284294304314324334344354364374384394404414424434444454464474484494504514524534544554564574584594604614624634644654664674684694704714724734744754764774784794804814824834844854864874884894904914924934944954964974984995005015025035045055065075085095105115125135145155165175185195205215225235245255265275285295305315325335345355365375385395405415425435445455465475485495505515525535545555565575585595605615625635645655665675685695705715725735745755765775785795805815825835845855865875885895905915925935945955965975985996006016026036046056066076086096106116126136146156166176186196206216226236246256266276286296306316326336346356366376386396406416426436446456466476486496506516526536546556566576586596606616626636646656666676686696706716726736746756766776786796806816826836846856866876886896906916926936946956966976986997007017027037047057067077087097107117127137147157167177187197207217227237247257267277287297307317327337347357367377387397407417427437447457467477487497507517527537547557567577587597607617627637647657667677687697707717727737747757767777787797807817827837847857867877887897907917927937947957967977987998008018028038048058068078088098108118128138148158168178188198208218228238248258268278288298308318328338348358368378388398408418428438448458468478488498508518528538548558568578588598608618628638648658668678688698708718728738748758768778788798808818828838848858868878888898908918928938948958968978988999009019029039049059069079089099109119129139149159169179189199209219229239249259269279289299309319329339349359369379389399409419429439449459469479489499509519529539549559569579589599609619629639649659669679689699709719729739749759769779789799809819829839849859869879889899909919929939949959969979989991000100110021003100410051006100710081009101010111012101310141015101610171018101910201021102210231024102510261027102810291030103110321033103410351036103710381039104010411042104310441045104610471048104910501051105210531054105510561057105810591060106110621063106410651066106710681069107010711072107310741075107610771078107910801081108210831084108510861087108810891090109110921093109410951096109710981099110011011102110311041105110611071108110911101111111211131114111511161117111811191120112111221123112411251126112711281129113011311132113311341135113611371138113911401141114211431144114511461147114811491150115111521153115411551156115711581159116011611162116311641165116611671168116911701171117211731174117511761177117811791180118111821183118411851186118711881189119011911192119311941195119611971198119912001201120212031204120512061207120812091210121112121213121412151216121712181219122012211222122312241225122612271228122912301231123212331234123512361237123812391240124112421243124412451246124712481249125012511252125312541255125612571258125912601261126212631264126512661267126812691270127112721273127412751276127712781279128012811282128312841285128612871288128912901291129212931294129512961297129812991300 |
- using Core.Mes.Client.Comm;
- using Core.Mes.Client.Comm.Control;
- using Core.Mes.Client.Comm.Server;
- using Core.Mes.Client.Comm.Tool;
- using CoreFS.CA06;
- using Infragistics.Win.UltraWinGrid;
- using System;
- using System.Collections;
- using System.Collections.Generic;
- using System.Data;
- using System.Drawing;
- using System.Windows.Forms;
- namespace Core.StlMes.Client.Qcm
- {
- public partial class FrmSpecificationsBasicsNew : FrmBase
- {
- private string strMaxSvrSpec_Code = "";
- private string strMaxSvrOrder_Spec_Code = "";
- private List<string> _chooseCodes = new List<string>();
- private bool _exporting = false;
- public FrmSpecificationsBasicsNew()
- {
- InitializeComponent();
- ExceptionHelper.RegistException();
- }
- private void FrmSpecificationsBasicsNew_Load(object sender, EventArgs e)
- {
- BindcmbType();
- }
- private void BindcmbType()
- {
- //cmbBindType
- //类型(A钢管(必须要填外径壁厚)、B管坯(只允许填外径)、C其它(要走接箍或附件的,不能填外径壁厚))
- DataTable dt = new DataTable();
- dt.Columns.Add("id");
- dt.Columns.Add("name");
- DataRow dr = dt.NewRow();
- dr["id"] = "A";
- dr["name"] = "钢管";
- DataRow drB = dt.NewRow();
- drB["id"] = "B";
- drB["name"] = "管坯";
- DataRow drC = dt.NewRow();
- drC["id"] = "C";
- drC["name"] = "其它";
- dt.Rows.Add(dr);
- dt.Rows.Add(drB);
- dt.Rows.Add(drC);
- cmbBindType.DataSource = dt;
- cmbBindType.DisplayMember = "name";
- cmbBindType.ValueMember = "id";
- }
- public override void ToolBar_Click(object sender, string ToolbarKey)
- {
- switch (ToolbarKey)
- {
- case "doQuery":
- try
- {
- this.Cursor = Cursors.WaitCursor;
- doQuery();
- }
- finally
- {
- this.Cursor = Cursors.Default;
- }
- break;
- case "doSave":
- if (CheckData() == true)
- {
- doSave();
- }
- break;
- case "doModify":
- doModify();
- break;
- case "doDelete":
- this.doDeleteOrResume(true);
- break;
- case "doResume":
- this.doDeleteOrResume(false);
- break;
- case "Export":
- Export();
- break;
- case "Close":
- this.Close();
- break;
- }
- }
- private void Export()
- {
- _exporting = true;
- GridHelper.ulGridToExcel(ultraGrid2, "产品规格");
- _exporting = false;
- }
- private void ExpandRow()
- {
- foreach (UltraGridRow row in ultraGrid2.Rows)
- {
- if (_chooseCodes.Contains(row.Cells["SPEC_CODE"].Value.ToString()))
- {
- row.Activate();
- row.ExpandAll();
- }
- }
- }
- private bool CheckData()
- {
- ultraGrid2.UpdateData();
- DataRow[] drs = dataTable1.Select("CHK = 'True'");
- DataRow[] drs2 = dataTable2.Select("CHK = 'True'");
- List<string> insertSpecNames = new List<string>();
- List<string> insertOrder_SpecNames = new List<string>();
- foreach (DataRow dr in drs)
- {
- if (dr["MSC_STYLE"].ToString() == "")
- {
- MessageBox.Show("您所要保存的数据中,类型不能为空!", "提示", MessageBoxButtons.OK, MessageBoxIcon.Warning);
- return false;
- }
- if (dr["MSC_STYLE"].ToString() == "A" && dr["DIMATER"].ToString() == "")
- {
- MessageBox.Show("您所要保存的数据中,外径不能为空!", "提示", MessageBoxButtons.OK, MessageBoxIcon.Warning);
- return false;
- }
- else if (dr["MSC_STYLE"].ToString() == "A" && dr["HEIGHT"].ToString() == "")
- {
- MessageBox.Show("您所要保存的数据中,壁厚不能为空!", "提示", MessageBoxButtons.OK, MessageBoxIcon.Warning);
- return false;
- }
- decimal dcm = 0.0M;
- if (dr["DIMATER"].ToString() != "" && decimal.TryParse(dr["DIMATER"].ToString(), out dcm) == false)
- {
- MessageBox.Show("您所要保存的数据中,外径输入的不是数字类型!", "提示", MessageBoxButtons.OK, MessageBoxIcon.Warning);
- return false;
- }
- if (dr["HEIGHT"].ToString() != "" && decimal.TryParse(dr["HEIGHT"].ToString(), out dcm) == false)
- {
- MessageBox.Show("您所要保存的数据中,壁厚输入的不是数字类型!", "提示", MessageBoxButtons.OK, MessageBoxIcon.Warning);
- return false;
- }
- if (dr["WEIGHT"].ToString() != "" && decimal.TryParse(dr["WEIGHT"].ToString(), out dcm) == false)
- {
- MessageBox.Show("您所要保存的数据中,米单重输入的不是数字类型!", "提示", MessageBoxButtons.OK, MessageBoxIcon.Warning);
- return false;
- }
- if (dr["SPEC_NAME"].ToString() == "")
- {
- MessageBox.Show("您所要保存的数据中,产品规格描述不能为空!", "提示", MessageBoxButtons.OK, MessageBoxIcon.Warning);
- return false;
- }
- else if (IsExistSpec(dr["SPEC_NAME"].ToString(), dr["SPEC_CODE"].ToString()) == true)
- {
- MessageBox.Show("已存在产品规格描述-[" + dr["SPEC_NAME"].ToString() + "]!",
- "提示", MessageBoxButtons.OK, MessageBoxIcon.Warning);
- return false;
- }
- if (insertSpecNames.Contains(dr["SPEC_NAME"].ToString()))
- {
- MessageBox.Show("您所要保存的数据中,出现重复的产品规格描述-[" + dr["SPEC_NAME"].ToString() + "]!", "提示", MessageBoxButtons.OK, MessageBoxIcon.Warning);
- return false;
- }
- insertSpecNames.Add(dr["SPEC_NAME"].ToString());
- }
- foreach (DataRow dr in drs2)
- {
- if (dr["ORDER_SPEC_DESC"].ToString() == "")
- {
- MessageBox.Show("您所要保存的数据中,订货规格描述不能为空!", "提示", MessageBoxButtons.OK, MessageBoxIcon.Warning);
- return false;
- }
- else if (IsExistOrderSpec(dr["ORDER_SPEC_DESC"].ToString(), dr["ORDER_SPEC_CODE"].ToString())
- == true)
- {
- MessageBox.Show("已存在订货规格描述-" + dr["ORDER_SPEC_DESC"].ToString() + "!",
- "提示", MessageBoxButtons.OK, MessageBoxIcon.Warning);
- return false;
- }
- if (insertOrder_SpecNames.Contains(dr["ORDER_SPEC_DESC"].ToString()))
- {
- MessageBox.Show("您所要保存的数据中,出现重复的订货规格描述-[" + dr["ORDER_SPEC_DESC"].ToString() + "]!", "提示", MessageBoxButtons.OK, MessageBoxIcon.Warning);
- return false;
- }
- insertOrder_SpecNames.Add(dr["ORDER_SPEC_DESC"].ToString());
- }
- return true;
- }
- private bool IsExistSpec(string spec, string specCode)
- {
- ArrayList list = new ArrayList();
- list.Add(spec);
- list.Add(specCode);
- DataTable dt = ServerHelper.GetData("com.steering.pss.qcm.CoreSpecBasicsNew.isExistSpec",
- new object[] { list }, ob);
- if (dt == null)
- {
- return true;
- }
- else if (dt != null && dt.Rows[0][0].ToString() == "0")
- {
- return false;
- }
- return true;
- }
- private bool IsExistOrderSpec(string orderSpec, string orderSpecCode)
- {
- ArrayList list = new ArrayList();
- list.Add(orderSpec);
- list.Add(orderSpecCode);
- DataTable dt = ServerHelper.GetData("com.steering.pss.qcm.CoreSpecBasicsNew.isExistOrderSpec",
- new object[] { list }, ob);
- if (dt == null)
- {
- return true;
- }
- else if (dt != null && dt.Rows[0][0].ToString() == "0")
- {
- return false;
- }
- return true;
- }
- private void doAdd()
- {
- //获取新增加的行。
- ultraGrid2.UpdateData();
- ArrayList parms = new ArrayList();
- //判断是否勾选。
- for (int i = 0; i < ultraGrid2.Rows.Count; i++)
- {
- if ((Boolean)ultraGrid2.Rows[i].Cells["cb"].Value)
- {
- //绑定就按杨总的那种方式。
- //就在这里面判断类型。假设是类型A。则判断外径壁厚是否为空,假设为空,同上弹出提示信息,终止操作。
- //类型(A钢管(必须要填外径壁厚)、B管坯(只允许填外径)、C其它(要走接箍或附件的,不能填外径壁厚))
- string type = ultraGrid2.Rows[i].Cells["MSC_STYLE"].Value.ToString();
- //把外径、壁厚取出来。
- //外径
- string dimater = ultraGrid2.Rows[i].Cells["DIMATER"].Value.ToString();
- //壁厚HEIGHT
- string height = ultraGrid2.Rows[i].Cells["HEIGHT"].Value.ToString();
- if ("A".Equals(type))
- {
- if ("".Equals(dimater) || "".Equals(height))
- {
- MessageBox.Show("钢管类别,壁厚和外径不允许为空!", "提示",
- MessageBoxButtons.OK, MessageBoxIcon.Warning);
- return;
- }
- }
- else if ("B".Equals(type))
- {
- //只允许填外径
- if ("".Equals(dimater) || !"".Equals(height))
- {
- MessageBox.Show("管坯类别,外径不允许为空,壁厚只能为空!", "提示",
- MessageBoxButtons.OK, MessageBoxIcon.Warning);
- return;
- }
- }
- else if ("C".Equals(type))
- {
- if (!"".Equals(dimater) || !"".Equals(height))
- {
- MessageBox.Show("其它类别,外径壁厚不可填!", "提示",
- MessageBoxButtons.OK, MessageBoxIcon.Warning);
- return;
- }
- }
- //构建ArrayList,添加到parms当中。
- ArrayList parm = new ArrayList();
- //PRODUCCODEID不能重复。
- //parm.Add(SPEC_CODE);
- parm.Add(ultraGrid2.Rows[i].Cells["SPEC_NAME"].Value.ToString());
- parm.Add(ultraGrid2.Rows[i].Cells["DIMATER"].Value.ToString());
- parm.Add(ultraGrid2.Rows[i].Cells["HEIGHT"].Value.ToString());
- parm.Add(ultraGrid2.Rows[i].Cells["WEIGHT"].Value.ToString());
- parm.Add(ultraGrid2.Rows[i].Cells["MSC_STYLE"].Value.ToString());
- //创建人应为当前操作用户。
- //parm.Add(ultraGrid1.ActiveRow.Cells["create_name"].Value.ToString());
- parm.Add(this.UserInfo.GetUserName());
- //创建时间为当前时间。
- parm.Add(DateTime.Now.ToString());
- //扣型状态为录入状态,0为无效,1为有效。
- parm.Add(1);
- parm.Add(ultraGrid2.Rows[i].Cells["MEMO"].Value.ToString());
- parms.Add(parm);
- if (ultraGrid2.Rows[i].ChildBands[0].Rows.Count > 0)
- {
- //ultraGrid2.UpdateData();
- ArrayList minParms = new ArrayList();
- for (int j = 0; j < ultraGrid2.Rows[i].ChildBands[0].Rows.Count; j++)
- {
- Infragistics.Win.UltraWinGrid.UltraGridRow minrow = ultraGrid2.Rows[i].ChildBands[0].Rows[j];
- if ((Boolean)minrow.Cells["spchk"].Value)
- {
- //表示子表子项已经选中
- //实现子表子项的修改操作,批量操作。
- //ORDER_SPEC_CODE,ORDER_SPEC_DESC,SPEC_CODE,
- //SPEC_NAME,CREATE_NAME,CREATE_TIME,UPDATE_NAME,
- //UPDATE_TIME,DELETE_NAME ,DELETE_TIME,VALIDFLAG,MEMO
- ArrayList minParm = new ArrayList();
- minParm.Add(minrow.Cells["ORDER_SPEC_CODE"].Value.ToString());
- minParm.Add(minrow.Cells["ORDER_SPEC_DESC"].Value.ToString());
- minParm.Add(ultraGrid2.Rows[i].Cells["SPEC_CODE"].Value.ToString());
- minParm.Add(ultraGrid2.Rows[i].Cells["SPEC_NAME"].Value.ToString());
- minParm.Add(this.UserInfo.GetUserName());
- minParm.Add(DateTime.Now.ToString());
- minParm.Add(minrow.Cells["memo"].Value.ToString());
- //添加到parms当中。
- minParms.Add(minParm);
- }
- }
- //操作数据库,实现从表的修改。
- if (minParms.Count > 0)
- {
- CoreClientParam minccp = new CoreClientParam();
- //服务端的包名+类名
- minccp.ServerName = "com.steering.pss.qcm.CoreSpecOrderBasics";
- //类里的方法名
- minccp.MethodName = "doModify";
- minccp.ServerParams = new object[] { minParms };
- minccp = this.ExecuteNonQuery(minccp, CoreInvokeType.Internal);
- if (minccp.ReturnCode == -1) return;
- }
- }
- }
- }
- CoreClientParam ccp = new CoreClientParam();
- //服务端的包名+类名
- ccp.ServerName = "com.steering.pss.qcm.CoreSpecBasicsNew";
- //类里的方法名
- ccp.MethodName = "doAdd";
- ccp.ServerParams = new object[] { parms };
- ccp = this.ExecuteNonQuery(ccp, CoreInvokeType.Internal);
- if (ccp.ReturnCode == -1) return;
- MessageBox.Show("新增成功!", "提示",
- MessageBoxButtons.OK, MessageBoxIcon.Asterisk);
- doQuery();
- }
- /// <summary>
- /// 删除或恢复
- /// </summary>
- /// <param name="isDelete">true删除 false恢复</param>
- private void doDeleteOrResume(bool isDelete)
- {
- ultraGrid2.UpdateData();
- ArrayList param = new ArrayList();
- ArrayList minParam = new ArrayList();
- int chkCount = 0;
- foreach (Infragistics.Win.UltraWinGrid.UltraGridRow row in ultraGrid2.Rows)
- {
- //主表勾选了,从表跟着删除。
- if (Convert.ToBoolean(row.Cells["cb"].Value))
- {
- param.Add(row.Cells["SPEC_CODE"].Value.ToString());
- chkCount++;
- foreach (Infragistics.Win.UltraWinGrid.UltraGridRow minrow in row.ChildBands[0].Rows)
- {
- minParam.Add(minrow.Cells["ORDER_SPEC_CODE"].Value.ToString());
- chkCount++;
- }
- }
- else
- {
- //主表未勾选,从表勾选了,照样删除。
- foreach (Infragistics.Win.UltraWinGrid.UltraGridRow minrow in row.ChildBands[0].Rows)
- {
- if ((Boolean)minrow.Cells["spchk"].Value)
- {
- minParam.Add(minrow.Cells["ORDER_SPEC_CODE"].Value.ToString());
- chkCount++;
- }
- }
- }
- }
- if (chkCount == 0)
- {
- MessageUtil.ShowWarning("请选择数据后再进行操作!");
- return;
- }
- if (MessageBox.Show("是否" + (isDelete ? "作废" : "恢复") + "选中的数据?", "提示",
- MessageBoxButtons.YesNo, MessageBoxIcon.Question, MessageBoxDefaultButton.Button2) == DialogResult.Yes)
- {
- try
- {
- int count = 0;
- if (param.Count > 0)
- {
- count = ServerHelper.SetData("com.steering.pss.qcm.CoreSpecBasicsNew.deleteLineInfo", new Object[] { param, UserInfo.GetUserName(), isDelete }, this.ob);
- }
- int minCount = 0;
- if (minParam.Count > 0)
- {
- minCount = ServerHelper.SetData("com.steering.pss.qcm.CoreSpecOrderBasics.deleteLineInfo", new Object[] { minParam, UserInfo.GetUserName(), isDelete }, this.ob);
- }
- if (count > 0 || minCount > 0)
- {
- doQuery();
- ExpandRow();
- _chooseCodes.Clear();
- }
- }
- catch (MESException ex)
- {
- MessageBox.Show("错误消息:" + ex.ExceptionInfo, "提示", MessageBoxButtons.OK, MessageBoxIcon.Error);
- }
- }
- }
- private void doSave()
- {
- ultraGrid2.UpdateData();
- //判断是否有勾选项,没有则提示。
- int chkbool = 0;
- foreach (UltraGridRow row in ultraGrid2.Rows)
- {
- if (row.Cells["cb"].Value.ToString().ToUpper() == "TRUE")
- {
- chkbool += 1;
- }
- foreach (UltraGridRow row2 in row.ChildBands[0].Rows)
- {
- if (row2.Cells["spchk"].Value.ToString().ToUpper() == "TRUE")
- {
- chkbool += 1;
- }
- }
- }
- if (chkbool <= 0)
- {
- MessageBox.Show("请选择数据后再进行操作!", "提示", MessageBoxButtons.OK, MessageBoxIcon.Warning);
- return;
- }
- //确定保存吗?
- if (MessageBox.Show("是否确认保存?", "提示", MessageBoxButtons.YesNo,
- MessageBoxIcon.Question, MessageBoxDefaultButton.Button2) == DialogResult.No)
- {
- return;
- }
- //主表新增组ArrayList
- ArrayList spbAddParams = new ArrayList();
- //主表修改组ArrayList
- ArrayList spbUpdateParams = new ArrayList();
- //从表新增组ArrayList
- ArrayList spbSupplementAddParams = new ArrayList();
- //从表修改组ArrayList
- ArrayList spbSupplementUpdateParams = new ArrayList();
- //遍历主表,判定是否有勾选项。
- for (int i = 0; i < this.dataTable1.Rows.Count; i++)
- {
- DataRow dr = dataTable1.Rows[i];
- if (dr["CHK"].ToString() == "True")
- {
- //判定勾选项是新增行,还是修改行。
- if (dr.RowState == DataRowState.Added)
- {
- //需要根据类型,决定外径和壁厚是否可填。
- //类型(A钢管(必须要填外径壁厚)、B管坯(只允许填外径)、C其它(要走接箍或附件的,不能填外径壁厚))
- string type = dr["MSC_STYLE"].ToString();
- //把外径、壁厚取出来。
- //外径
- string dimater = dr["DIMATER"].ToString();
- //壁厚HEIGHT
- string height = dr["HEIGHT"].ToString();
- //新增行
- //将主表勾选项,并且状态为新增的行,构建ArrayList参数,加给spbAddParams组。
- ArrayList parm = new ArrayList();
- parm.Add(dr["SPEC_CODE"].ToString());
- parm.Add(dr["SPEC_NAME"].ToString());
- parm.Add(dr["DIMATER"].ToString());
- parm.Add(dr["HEIGHT"].ToString());
- parm.Add(dr["WEIGHT"].ToString());
- parm.Add(dr["MSC_STYLE"].ToString());
- parm.Add(this.UserInfo.GetUserName());
- parm.Add(DateTime.Now.ToString());
- parm.Add(1);
- parm.Add(dr["MEMO"].ToString());
- spbAddParams.Add(parm);
- }
- else if (this.dataTable1.Rows[i].RowState == DataRowState.Modified)
- {
- //修改行
- //将主表勾选项,并且状态为修改的行,构建ArrayList参数,加给spbAddParams组。
- ArrayList parm = new ArrayList();
- parm.Add(dr["SPEC_NAME"].ToString());
- parm.Add(dr["DIMATER"].ToString());
- parm.Add(dr["HEIGHT"].ToString());
- parm.Add(dr["WEIGHT"].ToString());
- parm.Add(dr["MSC_STYLE"].ToString());
- parm.Add(this.UserInfo.GetUserName());
- parm.Add(DateTime.Now.ToString());
- parm.Add(dr["MEMO"].ToString());
- parm.Add(dr["SPEC_CODE"].ToString());
- spbUpdateParams.Add(parm);
- }
- }
- }
- //直接遍历从表所有行,判定是否有选中项。
- for (int j = 0; j < dataTable2.Rows.Count; j++)
- {
- DataRow minrow = dataTable2.Rows[j];
- if (minrow["CHK"].ToString() == "True")
- {
- if (minrow.RowState == DataRowState.Added)
- {
- ArrayList minParm = new ArrayList();
- minParm.Add(minrow["ORDER_SPEC_CODE"].ToString());
- minParm.Add(minrow["ORDER_SPEC_DESC"].ToString());
- //name是冗余字段,不需要。
- minParm.Add(minrow["SPEC_CODE"].ToString());
- minParm.Add(minrow["SPEC_NAME"].ToString());
- minParm.Add(this.UserInfo.GetUserName());
- minParm.Add(DateTime.Now.ToString());
- minParm.Add(1);
- minParm.Add(minrow["MEMO"].ToString());
- spbSupplementAddParams.Add(minParm);
- }
- else if (minrow.RowState == DataRowState.Modified)
- {
- ArrayList minParm = new ArrayList();
- minParm.Add(minrow["ORDER_SPEC_DESC"].ToString());
- minParm.Add(this.UserInfo.GetUserName());
- minParm.Add(DateTime.Now.ToString());
- minParm.Add(minrow["MEMO"].ToString());
- minParm.Add(minrow["ORDER_SPEC_CODE"].ToString());
- spbSupplementUpdateParams.Add(minParm);
- }
- }
- }
- //执行数据库相关操作
- CoreClientParam ccp = new CoreClientParam();
- //服务端的包名+类名
- ccp.ServerName = "com.steering.pss.qcm.CoreSpecBasicsNew";
- //类里的方法名
- ccp.MethodName = "doSave";
- ccp.ServerParams = new object[] { spbAddParams, spbUpdateParams, spbSupplementAddParams, spbSupplementUpdateParams };
- try
- {
- ccp = this.ExecuteNonQuery(ccp, CoreInvokeType.Internal);
- }
- catch (Exception ex)
- {
- MessageBox.Show("错误提示:" + ex.Message, "提示", MessageBoxButtons.OK, MessageBoxIcon.Error);
- return;
- }
- if (ccp.ReturnCode == -1)
- {
- return;
- }
- else
- {
- MessageBox.Show("保存成功!", "提示",
- MessageBoxButtons.OK, MessageBoxIcon.Asterisk);
- doQuery();
- ExpandRow();
- _chooseCodes.Clear();
- }
- }
- private void doModify()
- {
- //需要实现批量修改功能。
- ultraGrid2.UpdateData();
- //dataSet2.Tables[0].Rows[0].RowState == DataRowState.Added;
- //dataSet2.Tables[0].AcceptChanges();
- //DataRowState.Modified;
- ArrayList parms = new ArrayList();
- for (int i = 0; i < ultraGrid2.Rows.Count; i++)
- {
- //复选框是否已经选中
- if ((Boolean)ultraGrid2.Rows[i].Cells["cb"].Value)
- {
- //就在这里面判断类型。假设是类型A。则判断外径壁厚是否为空,假设为空,同上弹出提示信息,终止操作。
- //类型(A钢管(必须要填外径壁厚)、B管坯(只允许填外径)、C其它(要走接箍或附件的,不能填外径壁厚))
- string type = ultraGrid2.Rows[i].Cells["MSC_STYLE"].Value.ToString();
- //把外径、壁厚取出来。
- //外径
- string dimater = ultraGrid2.Rows[i].Cells["DIMATER"].Value.ToString();
- //壁厚HEIGHT
- string height = ultraGrid2.Rows[i].Cells["HEIGHT"].Value.ToString();
- if ("A".Equals(type))
- {
- if ("".Equals(dimater) || "".Equals(height))
- {
- MessageBox.Show("钢管类别,壁厚和外径不允许为空!", "提示",
- MessageBoxButtons.OK, MessageBoxIcon.Warning);
- return;
- }
- }
- else if ("B".Equals(type))
- {
- //只允许填外径
- if ("".Equals(dimater) || !"".Equals(height))
- {
- MessageBox.Show("管坯类别,外径不允许为空,壁厚只能为空!", "提示",
- MessageBoxButtons.OK, MessageBoxIcon.Warning);
- return;
- }
- }
- else if ("C".Equals(type))
- {
- if (!"".Equals(dimater) || !"".Equals(height))
- {
- MessageBox.Show("其它类别,外径壁厚不可填!", "提示",
- MessageBoxButtons.OK, MessageBoxIcon.Warning);
- return;
- }
- }
- //构建ArrayList,添加到parms当中。
- ArrayList parm = new ArrayList();
- parm.Add(ultraGrid2.Rows[i].Cells["SPEC_NAME"].Value.ToString());
- parm.Add(ultraGrid2.Rows[i].Cells["DIMATER"].Value.ToString());
- parm.Add(ultraGrid2.Rows[i].Cells["HEIGHT"].Value.ToString());
- parm.Add(ultraGrid2.Rows[i].Cells["WEIGHT"].Value.ToString());
- parm.Add(ultraGrid2.Rows[i].Cells["MSC_STYLE"].Value.ToString());
- //修改人应该为当前用户。ultraGrid1.ActiveRow.Cells["update_name"].Value.ToString()
- parm.Add(this.UserInfo.GetUserName());
- //修改时间应该为当前时间。ultraGrid1.ActiveRow.Cells["update_time"].Value.ToString()
- parm.Add(DateTime.Now.ToString());
- parm.Add(ultraGrid2.Rows[i].Cells["memo"].Value.ToString());
- parm.Add(ultraGrid2.Rows[i].Cells["SPEC_CODE"].Value.ToString());
- //添加到parms当中。
- parms.Add(parm);
- //循环嵌套,执行他子项的修改操作。
- if (ultraGrid2.Rows[i].ChildBands[0].Rows.Count > 0)
- {
- ArrayList minParms = new ArrayList();
- for (int j = 0; j < ultraGrid2.Rows[i].ChildBands[0].Rows.Count; j++)
- {
- Infragistics.Win.UltraWinGrid.UltraGridRow minrow = ultraGrid2.Rows[i].ChildBands[0].Rows[j];
- if ((Boolean)minrow.Cells["spchk"].Value)
- {
- //表示子表子项已经选中
- //实现子表子项的修改操作,批量操作。
- //ORDER_SPEC_CODE,ORDER_SPEC_DESC,SPEC_CODE,
- //SPEC_NAME,CREATE_NAME,CREATE_TIME,UPDATE_NAME,
- //UPDATE_TIME,DELETE_NAME ,DELETE_TIME,VALIDFLAG,MEMO
- ArrayList minParm = new ArrayList();
- minParm.Add(minrow.Cells["ORDER_SPEC_DESC"].Value.ToString());
- //parm.Add(ultraGrid2.Rows[i].Cells["SPEC_CODE"].Value.ToString());
- //parm.Add(ultraGrid2.Rows[i].Cells["SPEC_NAME"].Value.ToString());
- //修改人应该为当前用户。ultraGrid1.ActiveRow.Cells["update_name"].Value.ToString()
- minParm.Add(this.UserInfo.GetUserName());
- //修改时间应该为当前时间。ultraGrid1.ActiveRow.Cells["update_time"].Value.ToString()
- minParm.Add(DateTime.Now.ToString());
- minParm.Add(minrow.Cells["memo"].Value.ToString());
- minParm.Add(minrow.Cells["ORDER_SPEC_CODE"].Value.ToString());
- //添加到parms当中。
- minParms.Add(minParm);
- }
- }
- //操作数据库,实现从表的修改。
- if (minParms.Count > 0)
- {
- CoreClientParam minccp = new CoreClientParam();
- //服务端的包名+类名
- minccp.ServerName = "com.steering.pss.qcm.CoreSpecOrderBasics";
- //类里的方法名
- minccp.MethodName = "doModify";
- minccp.ServerParams = new object[] { minParms };
- minccp = this.ExecuteNonQuery(minccp, CoreInvokeType.Internal);
- if (minccp.ReturnCode == -1) return;
- }
- }
- }
- }
- if (parms.Count <= 0)
- {
- MessageBox.Show("请先选择数据后再进行操作!", "提示",
- MessageBoxButtons.OK, MessageBoxIcon.Warning);
- return;
- }
- CoreClientParam ccp = new CoreClientParam();
- //服务端的包名+类名
- ccp.ServerName = "com.steering.pss.qcm.CoreSpecBasicsNew";
- //类里的方法名
- ccp.MethodName = "doModify";
- ccp.ServerParams = new object[] { parms };
- ccp = this.ExecuteNonQuery(ccp, CoreInvokeType.Internal);
- if (ccp.ReturnCode == -1) return;
- MessageBox.Show("修改成功!", "提示",
- MessageBoxButtons.OK, MessageBoxIcon.Asterisk);
- doQuery();
- }
- /// <summary>
- /// 查询方法,比较通用的查询方法
- /// </summary>
- private void doQuery()
- {
- bool validFlag = chkValid.Checked;
- string titleName = txtTitleName.Text.Trim();
- dataTable2.Clear();
- dataTable1.Clear();
- try
- {
- DataTable dt = ServerHelper.GetData("com.steering.pss.qcm.CoreSpecBasicsNew.getLineList", new Object[] { validFlag, titleName }, this.ob);
- GridHelper.CopyDataToDatatable(ref dt, ref this.dataTable1, true);
- dataTable1.AcceptChanges();
- //从表的记录也要查询出来。
- DataTable mindt = ServerHelper.GetData("com.steering.pss.qcm.CoreSpecOrderBasics.getLineList", new Object[] { validFlag, titleName }, this.ob);
- GridHelper.CopyDataToDatatable(ref mindt, ref this.dataTable2, true);
- }
- catch
- {
- return;
- }
- dataTable2.AcceptChanges();
- GridHelper.RefreshAndAutoSize(ultraGrid2);
- }
- /// <summary>
- /// 获取产品规格代码
- /// </summary>
- /// <param name="dt"></param>
- /// <returns></returns>
- private string AutoSpecCode()
- {
- DataTable dt = null;
- try
- {
- dt = ServerHelper.GetData("com.steering.pss.qcm.CoreSpecBasicsNew.getMaxSpecCode",
- new object[] { }, ob);
- }
- catch
- {
- return "C000001";
- }
- if (dt == null || dt.Rows[0][0].ToString() == "")
- {
- return "C000001";
- }
- int maxCode = 0;
- string maxCodeString = dt.Rows[0][0].ToString();
- maxCode = Convert.ToInt32(maxCodeString.Substring(1));
- maxCode += 1;
- return maxCodeString.Substring(0, 1) + maxCode.ToString().PadLeft(6, '0');
- }
- /// <summary>
- /// 获取订货规格代码
- /// </summary>
- /// <param name="dt"></param>
- /// <returns></returns>
- private string AutoOrderCode(RowEventArgs e)
- {
- ArrayList list = new ArrayList();
- list.Add(e.Row.Cells["SPEC_CODE"].Value.ToString());
- DataTable dt = ServerHelper.GetData("com.steering.pss.qcm.CoreSpecBasicsNew.getMaxOrderSpecCode",
- new object[] { list }, ob);
- string specCode = e.Row.Cells["SPEC_CODE"].Value.ToString();
- if (dt == null || dt.Rows[0][0].ToString() == "")
- {
- return specCode + "DH000001";
- }
- int maxCode = 0;
- string maxCodeString = dt.Rows[0][0].ToString();
- maxCode = Convert.ToInt32(maxCodeString.Substring(9));
- maxCode += 1;
- return maxCodeString.Substring(0, 9) + maxCode.ToString().PadLeft(6, '0');
- }
- private void ultraGrid2_AfterRowInsert(object sender, RowEventArgs e)
- {
- if (ultraGrid2.ActiveRow.Band.Columns.Contains(ultraGrid2.DisplayLayout.Bands[0].Columns["ColA"]))
- {
- string strMaxLclSpec_Code = "";
- strMaxSvrSpec_Code = AutoSpecCode();
- DataRow[] drs = dataTable1.Select("1=1", "SPEC_CODE DESC");
- if (drs.Length > 0)
- {
- strMaxLclSpec_Code = strMaxSvrSpec_Code.Substring(0, 1) + (Convert.ToInt32(drs[0][0].ToString().Substring(1)) + 1).ToString().PadLeft(6, '0');
- }
- if (strMaxLclSpec_Code == "")
- {
- ultraGrid2.ActiveRow.Cells["SPEC_CODE"].Value = strMaxSvrSpec_Code;
- }
- else
- {
- if (Convert.ToInt32(strMaxSvrSpec_Code.Substring(1)) >= Convert.ToInt32(strMaxLclSpec_Code.Substring(3)))
- {
- ultraGrid2.ActiveRow.Cells["SPEC_CODE"].Value = strMaxSvrSpec_Code;
- }
- else
- {
- ultraGrid2.ActiveRow.Cells["SPEC_CODE"].Value = strMaxLclSpec_Code;
- }
- }
- }
- else
- {
- string strMaxLclOrder_Spec_Code = "";
- strMaxSvrOrder_Spec_Code = AutoOrderCode(e);
- DataRow[] drs = null;
- string spec_Code = e.Row.Cells["SPEC_CODE"].Value.ToString();
- drs = dataTable2.Select("SPEC_CODE = '" + spec_Code + "'", "ORDER_SPEC_CODE DESC");
- if (drs.Length > 0)
- {
- strMaxLclOrder_Spec_Code = strMaxSvrOrder_Spec_Code.Substring(0, 9) + (Convert.ToInt32(drs[0][0].ToString().Substring(9)) + 1).ToString().PadLeft(6, '0');
- }
- if (strMaxLclOrder_Spec_Code == "")
- {
- ultraGrid2.ActiveRow.Cells["ORDER_SPEC_CODE"].Value = strMaxSvrOrder_Spec_Code;
- }
- else
- {
- if (Convert.ToInt32(strMaxSvrOrder_Spec_Code.Substring(9)) >= Convert.ToInt32(strMaxLclOrder_Spec_Code.Substring(9)))
- {
- ultraGrid2.ActiveRow.Cells["ORDER_SPEC_CODE"].Value = strMaxSvrOrder_Spec_Code;
- }
- else
- {
- ultraGrid2.ActiveRow.Cells["ORDER_SPEC_CODE"].Value = strMaxLclOrder_Spec_Code;
- }
- }
- e.Row.Cells["SPEC_NAME"].Value = e.Row.ParentRow.Cells["SPEC_NAME"].Value;
- }
- ultraGrid2.UpdateData();
- }
- private void ultraGrid2_CellChange(object sender, CellEventArgs e)
- {
- ultraGrid2.UpdateData();
- if (e.Cell.Column.Header.Caption == "选择"
- && e.Cell.Band.Columns.Contains(ultraGrid2.DisplayLayout.Bands[0].Columns["ColA"]))
- {
- e.Cell.Row.Cells["CHK"].Value = e.Cell.Value;
- foreach (UltraGridRow row in e.Cell.Row.ChildBands[0].Rows)
- {
- row.Cells["spchk"].Value = e.Cell.Value;
- row.Cells["CHK"].Value = e.Cell.Value;
- }
- }
- else if (e.Cell.Column.Header.Caption == "选择"
- && e.Cell.Band.Columns.Contains(ultraGrid2.DisplayLayout.Bands[1].Columns["ColB"]))
- {
- e.Cell.Row.Cells["CHK"].Value = e.Cell.Value;
- }
- if (e.Cell.Row.Band.Columns.Contains(ultraGrid2.DisplayLayout.Bands[0].Columns["ColA"]))
- {
- if (e.Cell.Row.Cells["MSC_STYLE"].Value.ToString() == "A")
- {
- string spec_Name = "";
- spec_Name += e.Cell.Row.Cells["DIMATER"].Value.ToString();
- if (spec_Name == "" || e.Cell.Row.Cells["HEIGHT"].Value.ToString() == "")
- {
- spec_Name += e.Cell.Row.Cells["HEIGHT"].Value.ToString();
- }
- else
- {
- spec_Name += "*" + e.Cell.Row.Cells["HEIGHT"].Value.ToString();
- }
- e.Cell.Row.Cells["SPEC_NAME"].Value = spec_Name;
- }
- else if (e.Cell.Row.Cells["MSC_STYLE"].Value.ToString() == "B")
- {
- e.Cell.Row.Cells["SPEC_NAME"].Value = e.Cell.Row.Cells["DIMATER"].Value.ToString();
- e.Cell.Row.Cells["HEIGHT"].Value = "";
- }
- else
- {
- e.Cell.Row.Cells["DIMATER"].Value = "";
- e.Cell.Row.Cells["HEIGHT"].Value = "";
- }
- }
- SaveChooseCode(e);
- ultraGrid2.Update();
- }
- private void ultraGrid2_InitializeRow(object sender, InitializeRowEventArgs e)
- {
- BandComboToGrid(e);
- if (_exporting) return;
- if (e.Row.Cells["VALIDFLAG"].Value.ToString() == "0")
- {
- e.Row.Appearance.ForeColor = Color.Red;
- }
- else
- {
- e.Row.Appearance.ForeColor = Color.Black;
- }
- ControlEdit(e);
- SetCellColor(e);
- }
- private void BandComboToGrid(InitializeRowEventArgs e)
- {
- if (e.Row.HasParent() == false)
- {
- e.Row.Cells["MSC_STYLE"].EditorComponent = cmbBindType;
- }
- }
- private void SetCellColor(InitializeRowEventArgs e)
- {
- foreach (UltraGridCell cell in e.Row.Cells)
- {
- if (cell.Activation == Activation.AllowEdit)
- {
- cell.Appearance.BackColor = Color.FromArgb(255, 255, 192);
- }
- else
- {
- cell.Appearance.BackColor = e.Row.Appearance.BackColor;
- cell.Appearance.BackColor = e.Row.Appearance.BackColor2;
- }
- }
- }
- private void SaveChooseCode(CellEventArgs e)
- {
- if (e.Cell.Row.Band.Columns.Contains(ultraGrid2.DisplayLayout.Bands[0].Columns["ColA"]))
- {
- if (e.Cell.Row.Cells["cb"].Value.ToString().ToUpper() == "TRUE")
- {
- if (_chooseCodes.Contains(e.Cell.Row.Cells["SPEC_CODE"].Value.ToString()) == false)
- {
- _chooseCodes.Add(e.Cell.Row.Cells["SPEC_CODE"].Value.ToString());
- }
- }
- else
- {
- if (_chooseCodes.Contains(e.Cell.Row.Cells["SPEC_CODE"].Value.ToString()) == true)
- {
- _chooseCodes.Remove(e.Cell.Row.Cells["SPEC_CODE"].Value.ToString());
- }
- }
- }
- else
- {
- if (e.Cell.Row.Cells["spchk"].Value.ToString().ToUpper() == "TRUE")
- {
- if (_chooseCodes.Contains(e.Cell.Row.Cells["SPEC_CODE"].Value.ToString()) == false)
- {
- _chooseCodes.Add(e.Cell.Row.Cells["SPEC_CODE"].Value.ToString());
- }
- }
- else
- {
- if (e.Cell.Row.ParentRow.Cells["cb"].Value.ToString() == "True") return;
- UltraGridRow[] rows = GridHelper.GetRowsWithKey(e.Cell.Row.ParentRow.ChildBands[0],
- new string[] { "spchk" }, new string[] { "True" });
- if (rows.Length > 0) return;
- if (_chooseCodes.Contains(e.Cell.Row.Cells["SPEC_CODE"].Value.ToString()) == true)
- {
- _chooseCodes.Remove(e.Cell.Row.Cells["SPEC_CODE"].Value.ToString());
- }
- }
- }
- }
- private void ControlEdit(InitializeRowEventArgs e)
- {
- List<string> list = new List<string>();
- list.Add("创建人");
- list.Add("创建时间");
- list.Add("修改人");
- list.Add("修改时间");
- list.Add("作废人");
- list.Add("作废时间");
- list.Add("有效状态");
- list.Add("产品规格代码");
- List<string> list3 = new List<string>();
- list3.Add("外径");
- list3.Add("壁厚");
- List<string> list2 = new List<string>();
- list2.Add("创建人");
- list2.Add("创建时间");
- list2.Add("修改人");
- list2.Add("修改时间");
- list2.Add("作废人");
- list2.Add("作废时间");
- list2.Add("有效标志");
- list2.Add("订货规格代码");
- foreach (UltraGridCell cell in e.Row.Cells)
- {
- if (cell.Band.Columns.Contains(ultraGrid2.DisplayLayout.Bands[0].Columns["ColA"]))
- {
- if (e.Row.Cells["cb"].Value.ToString().ToUpper() == "TRUE"
- && list.Contains(cell.Column.Header.Caption) == false)
- {
- if (cell.Column.Header.Caption == "产品规格描述")
- {
- if (e.Row.Cells["MSC_STYLE"].Value.ToString() == "C"
- || e.Row.Cells["MSC_STYLE"].Value.ToString() == "")
- {
- cell.Activation = Activation.AllowEdit;
- }
- else
- {
- cell.Activation = Activation.ActivateOnly;
- }
- }
- else if (cell.Column.Header.Caption == "类型")
- {
- cell.Style = Infragistics.Win.UltraWinGrid.ColumnStyle.DropDownList;
- cell.Activation = Activation.AllowEdit;
- }
- else
- {
- cell.Activation = Activation.AllowEdit;
- }
- }
- else if (cell.Column.Header.Caption != "选择"
- && list3.Contains(cell.Column.Header.Caption) == false)
- {
- if (cell.Column.Header.Caption == "类型")
- {
- cell.Style = Infragistics.Win.UltraWinGrid.ColumnStyle.DropDown;
- cell.Activation = Activation.ActivateOnly;
- }
- else
- {
- cell.Activation = Activation.ActivateOnly;
- }
- }
- }
- else
- {
- if (e.Row.Cells["spchk"].Value.ToString().ToUpper() == "TRUE"
- && list2.Contains(cell.Column.Header.Caption) == false)
- {
- cell.Activation = Activation.AllowEdit;
- }
- else if (cell.Column.Header.Caption != "选择")
- {
- cell.Activation = Activation.ActivateOnly;
- }
- }
- }
- if (e.Row.Band.Columns.Contains(ultraGrid2.DisplayLayout.Bands[0].Columns["ColA"]))
- {
- if (e.Row.Cells["cb"].Value.ToString().ToUpper() == "TRUE")
- {
- if (e.Row.Cells["MSC_STYLE"].Value.ToString() == "A")
- {
- e.Row.Cells["DIMATER"].Activation = Activation.AllowEdit;
- e.Row.Cells["HEIGHT"].Activation = Activation.AllowEdit;
- }
- else if (e.Row.Cells["MSC_STYLE"].Value.ToString() == "B")
- {
- e.Row.Cells["DIMATER"].Activation = Activation.AllowEdit;
- e.Row.Cells["HEIGHT"].Activation = Activation.ActivateOnly;
- }
- else
- {
- e.Row.Cells["DIMATER"].Activation = Activation.ActivateOnly;
- e.Row.Cells["HEIGHT"].Activation = Activation.ActivateOnly;
- }
- }
- else
- {
- if (e.Row.Cells["MSC_STYLE"].Value.ToString() == "A")
- {
- e.Row.Cells["DIMATER"].Activation = Activation.ActivateOnly;
- e.Row.Cells["HEIGHT"].Activation = Activation.ActivateOnly;
- }
- else if (e.Row.Cells["MSC_STYLE"].Value.ToString() == "B")
- {
- e.Row.Cells["DIMATER"].Activation = Activation.ActivateOnly;
- e.Row.Cells["HEIGHT"].Activation = Activation.ActivateOnly;
- }
- else
- {
- e.Row.Cells["DIMATER"].Activation = Activation.ActivateOnly;
- e.Row.Cells["HEIGHT"].Activation = Activation.ActivateOnly;
- }
- }
- }
- //ultraGrid2.Update();
- }
- }
- }
|