using Core.Mes.Client.Comm.Control;
using Core.Mes.Client.Comm.Format;
using Core.Mes.Client.Comm.Server;
using Core.Mes.Client.Comm.Tool;
using Core.StlMes.Client.Qcm.model;
using CoreFS.CA06;
using Infragistics.Win.UltraWinEditors;
using Infragistics.Win.UltraWinGrid;
using System;
using System.Collections;
using System.Collections.Generic;
using System.Data;
using System.Linq;
using System.Windows.Forms;
namespace Core.StlMes.Client.Qcm
{
///
/// 公差标准管理
///
public partial class FrmTolerancesStandard : FrmBase
{
private bool isPasting = false;
///
/// 公差索引号
///
private string sic = "";
public string Sic
{
get { return sic; }
set { sic = value; }
}
private string msc = "";
public string Msc
{
get { return msc; }
set { msc = value; }
}
private string codeJg = "DefaultValue";
public string CodeJg
{
get { return codeJg; }
set { codeJg = value; }
}
private string stdCode = "";
public string StdCode
{
get { return stdCode; }
set { stdCode = value; }
}
private ArrayList steelCodes = new ArrayList();
public ArrayList SteelCodes
{
get { return steelCodes; }
set { steelCodes = value; }
}
private string producCodeNk = "";
public string ProducCodeNk
{
get { return producCodeNk; }
set { producCodeNk = value; }
}
private string steelcodeNk = "";
public string SteelcodeNk
{
get { return steelcodeNk; }
set { steelcodeNk = value; }
}
private string processCode = "";
public string ProcessCode
{
get { return processCode; }
set { processCode = value; }
}
private string modelCode = "";
public string ModelCode
{
get { return modelCode; }
set { modelCode = value; }
}
private string acceptBid = "";
public string AcceptBid
{
get { return acceptBid; }
set { acceptBid = value; }
}
//提示
private string errMessage = "";
//用于展开项和定位到操作项
private string _sic = "";
private bool _isEx = false;
//用于判断是否勾选
//public int isSelect = 0;
//初始下拉框
private UltraComboEditor[] ultras = new UltraComboEditor[9];
public FrmTolerancesStandard()
{
IsLoadUserView = true;
InitializeComponent();
ExceptionHelper.RegistException();
}
public void PopupLoad(string customInfo, OpeBase ob)
{
this.CustomInfo = customInfo;
this.ob = ob;
FrmTolerancesStandard_Load(null, null);
}
///
/// 登入初始化
///
///
///
private void FrmTolerancesStandard_Load(object sender, EventArgs e)
{
HideColumn();
InitDrop();
}
public void PopupRefresh()
{
UltraGridBand ugb = ultraGrid1.DisplayLayout.Bands[0];
if (CustomInfo == "1")
{ //冶金规范码
QcmBaseQuery.NitializeMSC(ultras[0], false, this.ob, msc);
QcmBaseQuery.BindColumn(ultras[0], "MSC", ugb);
}
}
///
/// 初始化下拉框
///
private void InitDrop()
{
for (int i = 0; i < ultras.Length; i++)
{
ultras[i] = new UltraComboEditor();
Controls.Add(ultras[i]);
ultras[i].Visible = false;
ultras[i].DropDownListWidth = -1;
}
//主表
UltraGridBand ugb = ultraGrid1.DisplayLayout.Bands[0];
//从表
UltraGridBand ugbC = ultraGrid1.DisplayLayout.Bands[1];
if (CustomInfo == "1")
{ //冶金规范码
QcmBaseQuery.NitializeMSC(ultras[0], false, this.ob, msc);
QcmBaseQuery.BindColumn(ultras[0], "MSC", ugb);
}
//下限符号
QcmBaseQuery.NitializeSignMin(ultras[1]);
//公差约束项一下限符号
QcmBaseQuery.BindColumn(ultras[1], "ZMIN_SIGN", ugbC);
//公差约束项二下限符号
QcmBaseQuery.BindColumn(ultras[1], "CMIN_SIGN", ugbC);
//公差约束项三下限符号
QcmBaseQuery.BindColumn(ultras[1], "SMIN_SIGN", ugbC);
//上限符号
QcmBaseQuery.NitializeSignMax(ultras[2]);
//公差约束项一上限符号
QcmBaseQuery.BindColumn(ultras[2], "ZMAX_SIGN", ugbC);
//公差约束项二上限符号
QcmBaseQuery.BindColumn(ultras[2], "CMAX_SIGN", ugbC);
//公差约束项三上限符号
QcmBaseQuery.BindColumn(ultras[2], "SMAX_SIGN", ugbC);
//公差项
QcmBaseQuery.NitializeTolerance(ultras[3], false, this.ob);
QcmBaseQuery.BindColumn(ultras[3], "BIAS_CODE", ugbC);
//精度等级
QcmBaseQuery.NitializePrecision(ultras[4], true, this.ob);
QcmBaseQuery.BindColumn(ultras[4], "LV", ugbC);
if (CustomInfo != "1")
{ //标准名称
//标准名称
if (CustomInfo == "2")
QcmBaseQuery.NitializeInnerStandard(ultras[5], false, this.ob);
else if (CustomInfo == "3")
QcmBaseQuery.NitializeAlphaStandard(ultras[5], false, this.ob);
else
QcmBaseQuery.NitializeOtherStandard(ultras[5], false, this.ob);
QcmBaseQuery.BindColumn(ultras[5], "STD_CODE", ugb);
//工序
QcmBaseQuery.NitializeProcess(ultras[6], true, this.ob);
QcmBaseQuery.BindColumn(ultras[6], "PROCESS_CODE", ugb);
}
//公差约束项
QcmBaseQuery.NitializeToleranceRestrain(ultras[7], true, this.ob);
QcmBaseQuery.BindColumn(ultras[7], "BIAS_CODE_Z", ugbC);
QcmBaseQuery.BindColumn(ultras[7], "BIAS_CODE_C", ugbC);
QcmBaseQuery.BindColumn(ultras[7], "BIAS_CODE_S", ugbC);
QcmBaseQuery.NitializeProductBigType(ultras[8], false, ob);
QcmBaseQuery.BindColumn(ultras[8], "PRODUC_HEAD", ugb);
ClsBaseInfo.SetComboItemHeight(ultras[8]);
}
public override void ToolBar_Click(object sender, string ToolbarKey)
{
switch (ToolbarKey)
{
case "Query":
this.DoQuery();
break;
case "Save":
this.DoSave();
break;
case "Delete":
DoDeleteOrResume(true);
break;
case "Resume":
DoDeleteOrResume(false);
break;
case "Copy":
Copy();
break;
case "Paste":
isPasting = true;
try
{
Paste();
}
finally
{
isPasting = false;
}
break;
case "Refresh":
InitDrop();
break;
case "Group":
Group(true);
break;
case "Cancel":
Group(false);
break;
case "Close":
this.Close();
break;
}
}
///
/// 复制
///
private void Copy()
{
if (ultraGrid1.ActiveRow == null)
{
MessageUtil.ShowWarning("请选择记录后,再进行操作!");
return;
}
ultraGrid1.UpdateData();
DataTable copyTab = dataTable2.Copy();
DataTable copyTab2 = dataTable1.Copy();
copyTab.Clear();
copyTab2.Clear();
if (ultraGrid1.ActiveRow.HasParent())
{
foreach (UltraGridRow row in ultraGrid1.ActiveRow.ParentRow.ChildBands[0].Rows)
{
if (row.GetValue("CHC") != "True") continue;
DataRow dr = copyTab.NewRow();
CopyRowToRow(((DataRowView)row.ListObject).Row, dr);
copyTab.Rows.Add(dr);
}
}
else
{
foreach (UltraGridRow row in ultraGrid1.ActiveRow.ChildBands[0].Rows)
{
DataRow dr = copyTab.NewRow();
CopyRowToRow(((DataRowView)row.ListObject).Row, dr);
copyTab.Rows.Add(dr);
}
DataRow dr2 = copyTab2.NewRow();
CopyRowToRow(((DataRowView)ultraGrid1.ActiveRow.ListObject).Row, dr2);
copyTab2.Rows.Add(dr2);
}
DataTable[] copyTabs = new DataTable[] { copyTab, copyTab2 };
Clipboard.SetData("Sic", copyTabs);
}
private void CopyRowToRow(DataRow srcRow, DataRow desRow)
{
for (int i = 0; i < srcRow.Table.Columns.Count; i++)
{
string columnName = srcRow.Table.Columns[i].ColumnName;
desRow[columnName] = srcRow[columnName];
}
}
///
/// 粘贴
///
private void Paste()
{
DataTable[] copyTabs = (DataTable[])Clipboard.GetData("Sic");
if (copyTabs == null)
{
MessageUtil.ShowWarning("没有数据,请复制后再进行操作!");
return;
}
DataTable copyTab = copyTabs[0];
DataTable copyTab2 = copyTabs[1];
if (copyTab == null || copyTab.Rows.Count == 0)
{
MessageUtil.ShowWarning("没有数据,请复制后再进行操作!");
return;
}
dataTable2.BeginInit();
string sic = "";
UltraGridRow rowParent;
if (ultraGrid1.ActiveRow.HasParent())
{
//if (ultraGrid1.ActiveRow.ParentRow.ChildBands[0].Rows.Count > 0)
//{
// MessageUtil.ShowWarning("该记录下存在子记录,不能进行粘贴操作!");
// return;
//}
sic = ultraGrid1.ActiveRow.ParentRow.GetValue("SIC");
rowParent = ultraGrid1.ActiveRow.ParentRow;
}
else
{
//if (ultraGrid1.ActiveRow.ChildBands[0].Rows.Count > 0)
//{
// MessageUtil.ShowWarning("该记录下存在子记录,不能进行粘贴操作!");
// return;
//}
sic = ultraGrid1.GetActiveRowValue("SIC");
rowParent = ultraGrid1.ActiveRow;
}
List notCopyColumns = new List();
notCopyColumns.AddRange("CHC", "CREATE_TIME", "CREATE_NAME", "UPDATE_TIME", "UPDATE_NAME",
"DELETE_TIME", "DELETE_NAME", "VALIDFLAG", "SIC", "MSC", "PSC_DESC", "PSC", "STD_CODE", "STD_NAME", "STDSTYLE",
"STEELNAME", "PRODUCNAME", "PROCESS_CODE", "STD_STYLE_DESC", "PRODUCCODE_NK", "PRODUCNAME_NK",
"PROCESS_CODE", "PROCESS_DESC", "STEELCODE_NK", "STEELNAME_NK");
if (copyTab2.Rows.Count > 0)
{
DataRow drParent = ((DataRowView)rowParent.ListObject).Row;
foreach (DataColumn column in dataTable1.Columns)
{
string columnName = column.ColumnName;
if (notCopyColumns.Contains(columnName) == true) continue;
drParent[columnName] = copyTab2.Rows[0][columnName];
}
}
foreach (DataRow row in copyTab.Rows)
{
DataRow tempRow = dataTable2.NewRow();
foreach (DataColumn column in dataTable2.Columns)
{
string columnName = column.ColumnName;
if (notCopyColumns.Contains(columnName) == true) continue;
tempRow[columnName] = row[columnName];
}
tempRow["SIC"] = sic;
dataTable2.Rows.Add(tempRow);
}
dataTable2.EndInit();
if (copyTab.Rows.Count > 0 && ultraGrid1.ActiveRow != null)
{
ultraGrid1.ActiveRow.ExpandAll();
}
ultraGrid1.UpdateData();
}
///
/// 根据内控、交付标准分别隐藏不同列
///
private void HideColumn()
{
if (CustomInfo == "1")
{
this.ultraGrid1.DisplayLayout.Bands[0].Columns["SPECIAL_PATH"].Hidden = true;
this.ultraGrid1.DisplayLayout.Bands[0].Columns["PROCESS_DESC"].Hidden = true;
this.ultraGrid1.DisplayLayout.Bands[0].Columns["STD_CODE"].Hidden = true;
this.ultraGrid1.DisplayLayout.Bands[0].Columns["STEELNAME_NK"].Hidden = true;
this.ultraGrid1.DisplayLayout.Bands[0].Columns["MODEL_DESC_NK"].Hidden = true;
this.ultraGrid1.DisplayLayout.Bands[0].Columns["PRODUCCODE_NK"].Hidden = true;
this.ultraGrid1.DisplayLayout.Bands[0].Columns["PRODUCNAME_NK"].Hidden = true;
}
if (CustomInfo == "2" || CustomInfo == "4")
{
this.ultraGrid1.DisplayLayout.Bands[0].Columns["STD_NAME"].Hidden = true;
this.ultraGrid1.DisplayLayout.Bands[0].Columns["MSC"].Hidden = true;
this.ultraGrid1.DisplayLayout.Bands[0].Columns["PSC_DESC"].Hidden = true;
this.ultraGrid1.DisplayLayout.Bands[0].Columns["PRODUCNAME"].Hidden = true;
this.ultraGrid1.DisplayLayout.Bands[0].Columns["STEELNAME"].Hidden = true;
this.ultraGrid1.DisplayLayout.Bands[0].Columns["STD_STYLE_DESC"].Hidden = true;
if (CustomInfo == "2")
{
this.ultraGrid1.DisplayLayout.Bands[0].Columns["STD_CODE"].Header.Caption = "内控管理编号";
}
this.ultraCheckMSC.Visible = false;
this.TextMSC.Visible = false;
InnerChange();
}
if (CustomInfo == "3")
{
this.ultraGrid1.DisplayLayout.Bands[0].Columns["SPECIAL_PATH"].Hidden = true;
this.ultraGrid1.DisplayLayout.Bands[0].Columns["STD_NAME"].Hidden = true;
this.ultraGrid1.DisplayLayout.Bands[0].Columns["MSC"].Hidden = true;
this.ultraGrid1.DisplayLayout.Bands[0].Columns["PSC_DESC"].Hidden = true;
this.ultraGrid1.DisplayLayout.Bands[0].Columns["PRODUCNAME"].Hidden = true;
this.ultraGrid1.DisplayLayout.Bands[0].Columns["STEELNAME"].Hidden = true;
this.ultraGrid1.DisplayLayout.Bands[0].Columns["STD_STYLE_DESC"].Hidden = true;
this.ultraCheckMSC.Visible = false;
this.TextMSC.Visible = false;
ultraGrid1.DisplayLayout.Bands[0].Columns["PROCESS_DESC"].Hidden = true;
this.ultraGrid1.DisplayLayout.Bands[0].Columns["STEELNAME_NK"].Hidden = true;
this.ultraGrid1.DisplayLayout.Bands[0].Columns["MODEL_DESC_NK"].Hidden = true;
this.ultraGrid1.DisplayLayout.Bands[0].Columns["PRODUCCODE_NK"].Hidden = true;
this.ultraGrid1.DisplayLayout.Bands[0].Columns["PRODUCNAME_NK"].Hidden = true;
}
}
///
/// 查询条件
///
///
private ArrayList QueryCodition()
{
ArrayList list = new ArrayList();
//标准名称
string stand = "";
if (this.ultraCheckStand.Checked)
stand = TextStd.Text.Trim();
list.Add(stand);
//冶金规范码
string msc = "";
if (CustomInfo == "1")
{
if (ultraCheckMSC.Checked)
msc = TextMSC.Text.Trim();
}
list.Add(msc);
//是否包含无效
string valid = "1";
if (chkValid.Checked)
valid = "0";
list.Add(valid);
list.Add(stdCode);
return list;
}
///
/// 查询
///
private void DoQuery()
{
ArrayList list = QueryCodition();
//主表查询
DataTable dt = ServerHelper.GetData("com.steering.pss.qcm.CoreTolerances.getCoreTolerances",
new Object[] { list, CustomInfo, sic, msc, codeJg, producCodeNk, steelcodeNk, processCode, modelCode }, this.ob);
dataTable2.Clear();
GridHelper.CopyDataToDatatable(ref dt, ref this.dataTable1, true);
//从表查询
string valid = "1";
if (chkValid.Checked)
valid = "0";
DataTable dt1 = ServerHelper.GetData("com.steering.pss.qcm.CoreTolerances.getCoreTolerancesC",
new Object[] { CustomInfo, valid, stdCode, msc, codeJg, producCodeNk, steelcodeNk, processCode, modelCode }, this.ob);
dt1 = QcmBaseCommon.FilterTable(dt, dt1, "SIC");
GridHelper.CopyDataToDatatable(ref dt1, ref this.dataTable2, true);
//不同颜色区分是否有效数据
QcmBaseCommon.SetGridColor(ultraGrid1, "VALIDFLAG", "无效");
//isSelect = 0;
QcmBaseCommon.SetUltraGridNoEdit(ultraGrid1);
UltraGridColumn[] col = new UltraGridColumn[] {
this.ultraGrid1.DisplayLayout.Bands[0].Columns["STDMEMO"],
this.ultraGrid1.DisplayLayout.Bands[0].Columns["MSC"],
this.ultraGrid1.DisplayLayout.Bands[0].Columns["STD_CODE"],
this.ultraGrid1.DisplayLayout.Bands[0].Columns["STEELNAME_NK"],
this.ultraGrid1.DisplayLayout.Bands[1].Columns["BIAS_CODE"]};
GridHelper.RefreshAndAutoSizeExceptRows(ultraGrid1, col);
//展开或者定位
UltraGridRow[] rows1 = GridHelper.GetRowsWithKey(ultraGrid1, new string[] { "SIC" }, new string[] { _sic });
if (rows1.Length > 0)
{
rows1[0].Activate();
if (_isEx)
rows1[0].ExpandAll();
}
_isEx = false;
_sic = "";
foreach (UltraGridRow ugr in ultraGrid1.Rows)
{
ugr.Cells["CHKNK"].Value = "选择";
}
dataTable1.AcceptChanges();
dataTable2.AcceptChanges();
//清空复制数据
//_copyedRows.Clear();
}
private void DoQuery1()
{
ArrayList list = QueryCodition();
//主表查询
DataTable dt = ServerHelper.GetData("com.steering.pss.qcm.CoreTolerances.getComSpecNK",
new Object[] { msc }, this.ob);
dataTable2.Clear();
GridHelper.CopyDataToDatatable(ref dt, ref this.dataTable1, true);
//从表查询
string valid = "1";
if (chkValid.Checked)
valid = "0";
DataTable dt1 = ServerHelper.GetData("com.steering.pss.qcm.CoreTolerances.getComSpecNKC",
new Object[] { msc }, this.ob);
dt1 = QcmBaseCommon.FilterTable(dt, dt1, "SIC");
GridHelper.CopyDataToDatatable(ref dt1, ref this.dataTable2, true);
//不同颜色区分是否有效数据
QcmBaseCommon.SetGridColor(ultraGrid1, "VALIDFLAG", "无效");
//isSelect = 0;
QcmBaseCommon.SetUltraGridNoEdit(ultraGrid1);
UltraGridColumn[] col = new UltraGridColumn[] {
this.ultraGrid1.DisplayLayout.Bands[0].Columns["STDMEMO"],
this.ultraGrid1.DisplayLayout.Bands[0].Columns["MSC"],
this.ultraGrid1.DisplayLayout.Bands[0].Columns["STD_CODE"],
this.ultraGrid1.DisplayLayout.Bands[0].Columns["STEELNAME_NK"],
this.ultraGrid1.DisplayLayout.Bands[1].Columns["BIAS_CODE"]};
GridHelper.RefreshAndAutoSizeExceptRows(ultraGrid1, col);
//展开或者定位
UltraGridRow[] rows1 = GridHelper.GetRowsWithKey(ultraGrid1, new string[] { "SIC" }, new string[] { _sic });
if (rows1.Length > 0)
{
rows1[0].Activate();
if (_isEx)
rows1[0].ExpandAll();
}
_isEx = false;
_sic = "";
dataTable1.AcceptChanges();
dataTable2.AcceptChanges();
//清空复制数据
//_copyedRows.Clear();
}
public void QueryPurchaseAgreement(string stdCodeNk)
{
dataTable2.Clear();
dataTable1.Clear();
DataTable dtP = ServerHelper.GetData("com.steering.pss.qcm.CoreTolerances.getPurchaseAgreementSic",
new object[] { stdCodeNk }, ob);
GridHelper.CopyDataToDatatable(ref dtP, ref this.dataTable1, true);
DataTable dtC = ServerHelper.GetData("com.steering.pss.qcm.CoreTolerances.getPurchaseAgreementSpec",
new object[] { stdCodeNk }, ob);
GridHelper.CopyDataToDatatable(ref dtC, ref this.dataTable2, true);
QcmBaseCommon.SetGridColor(ultraGrid1, "VALIDFLAG", "无效");
QcmBaseCommon.SetUltraGridNoEdit(ultraGrid1);
}
private int GetGridSelectCount()
{
foreach (UltraGridRow row in ultraGrid1.Rows)
{
if (row.Cells["CHC"].Value.ToString() == "True")
{
return 1;
}
UltraGridRow[] rows = GridHelper.GetRowsWithKey(row.ChildBands[0],
new string[] { "CHC" }, new string[] { "True" });
if (rows.Length > 0)
{
return 1;
}
}
return 0;
}
private DataRow GetComBaseStdRowByPk(string stdCode)
{
DataTable dt = ServerHelper.GetData("com.steering.pss.qcm.ComStandard.getComBaseStdByPk",
new object[] { stdCode }, ob);
return dt.Rows[0];
}
///
/// 保存
///
private void DoSave()
{
ultraGrid1.UpdateData();
if (GetGridSelectCount() == 0)
{
MessageBox.Show("请选择记录!", "提示", MessageBoxButtons.OK, MessageBoxIcon.Warning);
return;
}
DataRow comBaseStdRow = null;
if (CustomInfo == "2")
{
comBaseStdRow = GetComBaseStdRowByPk(stdCode);
if (comBaseStdRow["ACCEPT_BID"].ToString() == "1" && comBaseStdRow["UNIT_CODE"].ToString() != UserInfo.GetDeptid()
&& UserInfo.GetUserID() != "admin" && UserInfo.GetUserID() != "longjinhua" && !"002023005003".Equals(UserInfo.GetDeptid()))
{
MessageUtil.ShowWarning("该记录只有[" + comBaseStdRow["UNIT_DESC"].ToString() + "]的成员才能操作!");
return;
}
}
string style = "G";
if (CustomInfo == "2")
{
if (comBaseStdRow["ACCEPT_BID"].ToString() == "1")
{
style = "N";
}
else
{
style = "L";
}
}
if (CustomInfo == "3")
style = "K";
if (CustomInfo == "4")
style = "S";
ArrayList baseList = new ArrayList();
ArrayList childList = new ArrayList();
for (int i = 0; i < ultraGrid1.Rows.Count; i++)
{
UltraGridRow ugr = ultraGrid1.Rows[i];//主项
DataRow rowSic = null;
if (Convert.ToBoolean(ugr.Cells["CHC"].Value))//是否选择
{
if (ugr.GetValue("VALIDFLAG") != "")
{
rowSic = GetMscSicBySic(ugr.GetValue("SIC"));
}
if (comBaseStdRow != null && comBaseStdRow["ACCEPT_BID"].ToString() == "0" && rowSic != null)
{
string[] units = ClsBaseInfo.GetUnitByUserName(rowSic["CREATE_NAME"].ToString(), ob, "002001007", "002001001", "002023005");
if (units[0] != UserInfo.GetDeptid() && UserInfo.GetUserID() != "admin" && !"002023005003".Equals(UserInfo.GetDeptid()))
{
MessageUtil.ShowWarning("该记录只有[" + units[1] + "]才能操作!");
ugr.Activate();
return;
}
}
SpecObject com = GetMasterData(ugr, rowSic);
if (com == null)
{
MessageBox.Show(errMessage, "提示", MessageBoxButtons.OK, MessageBoxIcon.Warning);
return;
}
baseList.Add(JSONFormat.Format(com));
_sic = com.Sic;
}
if (ugr.HasChild()) //子项
{
if (ugr.Cells["VALIDFLAG"].Value.ToString().Equals("") && !Convert.ToBoolean(ugr.Cells["CHC"].Value))
{
MessageBox.Show("请选择主记录", "提示", MessageBoxButtons.OK, MessageBoxIcon.Warning);
return;
}
for (int j = 0; j < ugr.ChildBands[0].Rows.Count; j++)
{
UltraGridRow ugrChild = ugr.ChildBands[0].Rows[j];
if (Convert.ToBoolean(ugrChild.Cells["CHC"].Value))
{
if (ugr.GetValue("VALIDFLAG") != "")
{
rowSic = GetMscSicBySic(ugr.GetValue("SIC"));
}
if (comBaseStdRow != null && comBaseStdRow["ACCEPT_BID"].ToString() == "0" && rowSic != null)
{
string[] units = ClsBaseInfo.GetUnitByUserName(rowSic["CREATE_NAME"].ToString(), ob, "002001007", "002001001", "002023005");
if (units[0] != UserInfo.GetDeptid() && UserInfo.GetUserID() != "admin" && !"002023005003".Equals(UserInfo.GetDeptid()))
{
MessageUtil.ShowWarning("该记录只有[" + units[1] + "]才能操作!");
ugrChild.Activate();
return;
}
}
SpecCObject comC = GetFromData(ugrChild, rowSic);
if (comC == null)
{
MessageBox.Show(errMessage, "提示", MessageBoxButtons.OK, MessageBoxIcon.Warning);
return;
}
childList.Add(JSONFormat.Format(comC));
_sic = comC.Sic;
_isEx = true;
}
}
}
}
if (MessageBox.Show("是否保存选择记录?", "提示", MessageBoxButtons.YesNo, MessageBoxIcon.Question) == DialogResult.No)
{
return;
}
if (baseList.Count > 0 || childList.Count > 0)
{
int count = ServerHelper.SetData("com.steering.pss.qcm.CoreTolerances.saveCoreTolerances",
new Object[] { baseList, childList, style }, this.ob);
if (count > 0)
{
MessageBox.Show("保存成功", "提示", MessageBoxButtons.OK, MessageBoxIcon.Information);
DoQuery();
}
}
}
///
/// 删除或者恢复
///
/// true 删除 false 恢复
private void DoDeleteOrResume(Boolean flag)
{
ultraGrid1.UpdateData();
if (GetGridSelectCount() == 0)
{
MessageBox.Show("请选择记录!", "提示", MessageBoxButtons.OK, MessageBoxIcon.Warning);
return;
}
DataRow comBaseStdRow = null;
if (CustomInfo == "2")
{
comBaseStdRow = GetComBaseStdRowByPk(stdCode);
if (comBaseStdRow["ACCEPT_BID"].ToString() == "1" && comBaseStdRow["UNIT_CODE"].ToString() != UserInfo.GetDeptid()
&& UserInfo.GetUserID() != "admin")
{
MessageUtil.ShowWarning("该记录只有[" + comBaseStdRow["UNIT_DESC"].ToString() + "]的成员才能" + (flag ? "作废" : "恢复") + "!");
return;
}
}
ArrayList baseList = new ArrayList();
ArrayList childList = new ArrayList();
for (int i = 0; i < ultraGrid1.Rows.Count; i++)
{
UltraGridRow ugr = ultraGrid1.Rows[i];
if (Convert.ToBoolean(ugr.Cells["CHC"].Value))
{
DataRow rowSic = null;
if (ugr.GetValue("VALIDFLAG") != "")
{
rowSic = GetMscSicBySic(ugr.GetValue("SIC"));
}
if (comBaseStdRow != null && comBaseStdRow["ACCEPT_BID"].ToString() == "0" && rowSic != null)
{
string[] units = ClsBaseInfo.GetUnitByUserName(rowSic["CREATE_NAME"].ToString(), ob, "002001007", "002001001", "002023005");
if (units[0] != UserInfo.GetDeptid() && UserInfo.GetUserID() != "admin" && !"002023005003".Equals(UserInfo.GetDeptid()))
{
MessageUtil.ShowWarning("该记录只有[" + units[1] + "]才能操作!");
ugr.Activate();
return;
}
}
if (CheckAuthority(ugr) == false)
{
MessageUtil.ShowWarning(errMessage);
return;
}
if (ugr.Cells["VALIDFLAG"].Value.Equals("无效") && flag)
{
MessageBox.Show("无效记录不能作废!", "提示", MessageBoxButtons.OK, MessageBoxIcon.Warning);
return;
}
if (flag && (ugr.Cells["VALIDFLAG"].Value.Equals("提交审核") || ugr.Cells["VALIDFLAG"].Value.Equals("已审核")))
{
MessageBox.Show("提交审核或已审核记录不能作废!", "提示", MessageBoxButtons.OK, MessageBoxIcon.Warning);
return;
}
if (ugr.Cells["VALIDFLAG"].Value.Equals("有效") && !flag)
{
MessageBox.Show("有效记录不能恢复!", "提示", MessageBoxButtons.OK, MessageBoxIcon.Warning);
return;
}
if (ugr.HasChild() && flag)
{
if (MessageBox.Show("对应子记录将全部作废!", "提示", MessageBoxButtons.YesNo, MessageBoxIcon.Question) == DialogResult.No)
{
return;
}
foreach (UltraGridRow ugrc in ugr.ChildBands[0].Rows)
{
SpecCObject comc = new SpecCObject();
comc.Sic = ugrc.Cells["SIC"].Value.ToString();
comc.DeleteName = UserInfo.GetUserName();
comc.IndexSeq = ugrc.Cells["INDEX_SEQ"].Value.ToString();
childList.Add(JSONFormat.Format(comc));
}
}
SpecObject com = new SpecObject();
com.Sic = ugr.Cells["SIC"].Value.ToString();
com.DeleteName = UserInfo.GetUserName();
baseList.Add(JSONFormat.Format(com));
_sic = com.Sic;
}
if (ugr.HasChild())
{
for (int j = 0; j < ugr.ChildBands[0].Rows.Count; j++)
{
UltraGridRow ugrc = ugr.ChildBands[0].Rows[j];
if (Convert.ToBoolean(ugrc.Cells["CHC"].Value))
{
DataRow rowSic = null;
if (ugr.GetValue("VALIDFLAG") != "")
{
rowSic = GetMscSicBySic(ugr.GetValue("SIC"));
}
if (comBaseStdRow != null && comBaseStdRow["ACCEPT_BID"].ToString() == "0" && rowSic != null)
{
string[] units = ClsBaseInfo.GetUnitByUserName(rowSic["CREATE_NAME"].ToString(), ob, "002001007", "002001001", "002023005");
if (units[0] != UserInfo.GetDeptid() && UserInfo.GetUserID() != "admin" && !"002023005003".Equals(UserInfo.GetDeptid()))
{
MessageUtil.ShowWarning("该记录只有[" + units[1] + "]才能操作!");
ugrc.Activate();
return;
}
}
if (CheckAuthority(ugrc) == false)
{
MessageUtil.ShowWarning(errMessage);
return;
}
if (!flag && ugrc.ParentRow.Cells["VALIDFLAG"].Value.Equals("无效") && !Convert.ToBoolean(ugrc.ParentRow.Cells["CHC"].Value))
{
MessageBox.Show("请选择主记录", "提示", MessageBoxButtons.OK, MessageBoxIcon.Warning);
return;
}
if (ugrc.Cells["VALIDFLAG"].Value.Equals("无效") && flag)
{
MessageBox.Show("无效记录不能作废!", "提示", MessageBoxButtons.OK, MessageBoxIcon.Warning);
return;
}
if (ugrc.Cells["VALIDFLAG"].Value.Equals("有效") && !flag)
{
MessageBox.Show("有效记录不能恢复!", "提示", MessageBoxButtons.OK, MessageBoxIcon.Warning);
return;
}
if (flag)
{
if (ugrc.ParentRow.Cells["VALIDFLAG"].Value.ToString() != "录入状态"
&& ugrc.ParentRow.Cells["VALIDFLAG"].Value.ToString() != "无效"
&& ugr.Cells["VALIDFLAG"].Value.ToString() != "")
{
MessageUtil.ShowWarning("主记录为提交审核或已审核状态时,无法作废");
return;
}
}
SpecCObject comc = new SpecCObject();
comc.Sic = ugrc.Cells["SIC"].Value.ToString();
comc.DeleteName = UserInfo.GetUserName();
comc.IndexSeq = ugrc.Cells["INDEX_SEQ"].Value.ToString();
childList.Add(JSONFormat.Format(comc));
_sic = comc.Sic;
_isEx = true;
}
}
}
}
if (MessageBox.Show("是否" + (flag ? "作废" : "恢复") + "选择记录?", "提示", MessageBoxButtons.YesNo, MessageBoxIcon.Question) == DialogResult.No)
{
return;
}
if (baseList.Count > 0 || childList.Count > 0)
{
int count = ServerHelper.SetData("com.steering.pss.qcm.CoreTolerances.deleteOrResume", new Object[] { baseList, childList, flag }, this.ob);
if (count > 0)
{
DoQuery();
MessageBox.Show((flag ? "作废" : "恢复") + "成功!", "提示", MessageBoxButtons.OK, MessageBoxIcon.Information);
}
}
}
///
/// 分组
///
private void Group(bool isGroup)
{
string str = isGroup ? "分组" : "取消分组";
ArrayList list = new ArrayList();
int cnt = 0;
foreach (UltraGridRow row in ultraGrid1.Rows)
{
if (row.GetValue("CHC") == "True")
{
MessageUtil.ShowWarning("不能对主记录进行" + str + "!");
return;
}
ArrayList listSub = new ArrayList();
listSub.Add(row.GetValue("SIC"));
string strIndexs = "''";
foreach (UltraGridRow row2 in row.ChildBands[0].Rows)
{
if (row2.GetValue("CHC") != "True") continue;
if (row2.GetValue("CREATE_TIME") == "")
{
MessageUtil.ShowWarning("您选择的分组记录中存在未保存的项,请先保存后再" + str + "!");
return;
}
if (row2.GetValue("VALIDFLAG") == "无效")
{
MessageUtil.ShowWarning("您选择的分组记录中存在无效数据,无法" + str + "!");
return;
}
strIndexs += ", '" + row2.GetValue("INDEX_SEQ") + "'";
cnt++;
}
strIndexs = strIndexs.Substring(1);
strIndexs = strIndexs.Substring(0, strIndexs.Length - 1);
listSub.Add(strIndexs);
if (strIndexs != "")
{
_sic = row.GetValue("SIC");
_isEx = true;
list.Add(listSub);
}
}
if (cnt == 0)
{
MessageUtil.ShowWarning("请选择您要" + str + "的记录!");
return;
}
if (MessageUtil.ShowYesNoAndQuestion("是否确认" + str + "!") == DialogResult.No)
{
return;
}
ServerHelper.SetData("com.steering.pss.qcm.CoreTolerances.group",
new object[] { list, isGroup }, this.ob);
MessageUtil.ShowTips(str + "成功!");
DoQuery();
}
///
/// 增加一行事件
///
///
///
private void ultraGrid1_AfterRowInsert(object sender, RowEventArgs e)
{
UltraGridRow ugr = ultraGrid1.DisplayLayout.ActiveRow;
string style = "G";
if (CustomInfo == "2")
style = "N";
if (CustomInfo == "3")
style = "K";
if (CustomInfo == "4")
style = "S";
if (!ugr.HasParent()) //主表自动填充主键(成分索引号)
{
string sic = "";
int temp = 0;
for (int i = 0; i < ultraGrid1.Rows.Count - 1; i++)
{
string str = ultraGrid1.Rows[i].Cells["SIC"].Value.ToString().Substring(4, 6);
if (Convert.ToInt32(str) > temp)
temp = Convert.ToInt32(str);
}
sic = "SIC" + style + string.Format("{0:000000}", temp + 1);
ugr.Cells["SIC"].Value = sic;
}
//从表自动填充序号
if (ugr.HasParent())
{
int index = 0;
string cic = ugr.Cells["SIC"].Value.ToString();
foreach (UltraGridRow ug in ultraGrid1.Rows)
{
if (ug.Cells["SIC"].Value.ToString().Equals(cic))
{
for (int i = 0; i < ug.ChildBands[0].Rows.Count - 1; i++)
{
int indexSeq = Convert.ToInt32(ug.ChildBands[0].Rows[i].Cells["INDEX_SEQ"].Value.ToString());
if (indexSeq > index)
index = indexSeq;
}
}
}
ugr.Cells["INDEX_SEQ"].Value = index + 1;
ugr.Cells["ISCHECK"].Value = true;
ugr.Cells["STD_MIN_FORMULA_V"].Value = true;
ugr.Cells["STD_MAX_FORMULA_V"].Value = false;
}
//增加行如果没有勾选则不可编辑
if (!Convert.ToBoolean(ugr.Cells["CHC"].Value))
{
for (int i = 0; i < ugr.Cells.Count; i++)
{
if (!ugr.Cells[i].Column.Key.Equals("CHC"))
ugr.Cells[i].Activation = Activation.ActivateOnly;
if (ugr.Cells[i].Column.Key.Equals("CHKNK"))
ugr.Cells["CHKNK"].Value = "选择";
}
}
e.Row.Update();
}
///
/// 下拉事件
///
///
///
public void ultraGrid1_CellChange(object sender, CellEventArgs e)
{
ultraGrid1.UpdateData();
UltraGridRow ugr = ultraGrid1.DisplayLayout.ActiveRow;
if (ugr == null)
return;
if (e.Cell.Column.Key.Equals("MSC"))//冶金规范码
{
string msc = ugr.Cells["MSC"].Value.ToString();
DataRow[] dr = ((DataTable)ultras[0].DataSource).Select("MSC='" + msc + "'");
if (dr.Length > 0)
{
ugr.Cells["PSC"].Value = dr[0][2];
ugr.Cells["PSC_DESC"].Value = dr[0][3];
ugr.Cells["PRODUCNAME"].Value = dr[0][4];
ugr.Cells["STD_NAME"].Value = dr[0][5];
ugr.Cells["STEELNAME"].Value = dr[0][6];
ugr.Cells["STD_STYLE_DESC"].Value = dr[0][7];
ugr.Cells["STDSTYLE"].Value = dr[0][8];
}
return;
}
if (e.Cell.Column.Key.Equals("STD_CODE")) //标准类型
{
string stdCode = ugr.Cells["STD_CODE"].Value.ToString();
DataRow[] dr = ((DataTable)ultras[5].DataSource).Select("STD_CODE='" + stdCode + "'");
if (dr.Length > 0)
{
ugr.Cells["STD_NAME"].Value = dr[0][1];
ugr.Cells["STDSTYLE"].Value = dr[0][2];
}
}
if (e.Cell.Column.Key.Equals("BIAS_CODE")) //公差主项
{
ugr.Cells["BIAS_NAME"].Value = ugr.Cells["BIAS_CODE"].Text;
}
if (e.Cell.Column.Key.Equals("BIAS_CODE_Z"))//公差约束项一
{
ugr.Cells["BIAS_NAME_Z"].Value = ugr.Cells["BIAS_CODE_Z"].Text;
string biasnamez = ugr.Cells["BIAS_NAME_Z"].Value.ToString();
string biasnames = ugr.Cells["BIAS_NAME_S"].Value.ToString();
string biasnamec = ugr.Cells["BIAS_NAME_C"].Value.ToString();
if (!biasnamez.Equals(""))
{
if (biasnamez.Equals(biasnames) || biasnamez.Equals(biasnamec))
{
ugr.Cells["BIAS_NAME_Z"].Value = "";
ugr.Cells["BIAS_CODE_Z"].Value = "";
MessageBox.Show("公差约束项不能相同", "提示", MessageBoxButtons.OK, MessageBoxIcon.Warning);
return;
}
}
if (ugr.Cells["BIAS_CODE_Z"].Value.ToString() == "")
{
ugr.Cells["ZMIN_SIGN"].Value = "";
ugr.Cells["ZMIN"].Value = "";
ugr.Cells["ZMAX_SIGN"].Value = "";
ugr.Cells["ZMAX"].Value = "";
}
}
if (e.Cell.Column.Key.Equals("BIAS_CODE_C"))//公差约束项二
{
ugr.Cells["BIAS_NAME_C"].Value = ugr.Cells["BIAS_CODE_C"].Text;
string biasnamez = ugr.Cells["BIAS_NAME_Z"].Value.ToString();
string biasnames = ugr.Cells["BIAS_NAME_S"].Value.ToString();
string biasnamec = ugr.Cells["BIAS_NAME_C"].Value.ToString();
if (!biasnamec.Equals(""))
{
if (biasnamec.Equals(biasnames) || biasnamec.Equals(biasnamez))
{
ugr.Cells["BIAS_NAME_C"].Value = "";
ugr.Cells["BIAS_CODE_C"].Value = "";
MessageBox.Show("公差约束项不能相同", "提示", MessageBoxButtons.OK, MessageBoxIcon.Warning);
return;
}
}
if (ugr.Cells["BIAS_CODE_C"].Value.ToString() == "")
{
ugr.Cells["CMIN_SIGN"].Value = "";
ugr.Cells["CMIN"].Value = "";
ugr.Cells["CMAX_SIGN"].Value = "";
ugr.Cells["CMAX"].Value = "";
}
}
if (e.Cell.Column.Key.Equals("BIAS_CODE_S"))//公差约束项三
{
ugr.Cells["BIAS_NAME_S"].Value = ugr.Cells["BIAS_CODE_S"].Text;
string biasnamez = ugr.Cells["BIAS_NAME_Z"].Value.ToString();
string biasnames = ugr.Cells["BIAS_NAME_S"].Value.ToString();
string biasnamec = ugr.Cells["BIAS_NAME_C"].Value.ToString();
if (!biasnames.Equals(""))
{
if (biasnames.Equals(biasnamec) || biasnames.Equals(biasnamez))
{
ugr.Cells["BIAS_NAME_S"].Value = "";
ugr.Cells["BIAS_CODE_S"].Value = "";
MessageBox.Show("公差约束项不能相同", "提示", MessageBoxButtons.OK, MessageBoxIcon.Warning);
return;
}
}
if (ugr.Cells["BIAS_CODE_S"].Value.ToString() == "")
{
ugr.Cells["SMIN_SIGN"].Value = "";
ugr.Cells["SMIN"].Value = "";
ugr.Cells["SMAX_SIGN"].Value = "";
ugr.Cells["SMAX"].Value = "";
}
}
if (e.Cell.Column.Key.Equals("PROCESS_CODE")) //工序
{
ugr.Cells["PROCESS_DESC"].Value = ugr.Cells["PROCESS_CODE"].Text;
}
if (e.Cell.Column.Key.Equals("STD_MIN_FORMULA_V"))
{
if (Convert.ToBoolean(e.Cell.Value.ToString()) == true)
{
ugr.Cells["STD_MAX_FORMULA_V"].Value = false;
}
}
if (e.Cell.Column.Key.Equals("STD_MAX_FORMULA_V"))
{
if (Convert.ToBoolean(e.Cell.Value.ToString()) == true)
{
ugr.Cells["STD_MIN_FORMULA_V"].Value = false;
}
}
if (e.Cell.Column.Key.Equals("CHC"))//选择
{
Activation activation = Activation.ActivateOnly;
if (Convert.ToBoolean(e.Cell.Value))
{
activation = Activation.AllowEdit;
//isSelect += 1;
}
//else
// isSelect -= 1;
CellsCollection cells = e.Cell.Row.Cells;
for (int i = 0; i < cells.Count; i++)
{
if (!cells[i].Column.Key.Equals("CHC"))
{
if (cells[i].Column.Key == "GROUP_SEQ") continue;
e.Cell.Row.Cells[i].Activation = activation;
}
}
}
}
private DataTable GetMscTabByMsc(string msc)
{
DataTable dt = ServerHelper.GetData("com.steering.pss.qcm.CoreFrmProPSCMSC2.getComMscByMsc",
new object[] { msc }, ob);
return dt;
}
private string GetMscBySic(string sic)
{
DataTable dt = ServerHelper.GetData("com.steering.pss.qcm.CoreTolerances.getComSicBySic",
new object[] { sic }, ob);
if (dt.Rows.Count > 0)
{
return dt.Rows[0]["MSC"].ToString();
}
return "";
}
///
/// 通过主键查询公差主表
///
///
///
private DataRow GetMscSicBySic(string sic)
{
DataTable dt = ServerHelper.GetData("com.steering.pss.qcm.CoreTolerances.getComSicBySic",
new object[] { sic }, ob);
if (dt.Rows.Count == 0)
{
return null;
}
else
{
return dt.Rows[0];
}
}
private bool CheckAuthority(UltraGridRow row)
{
if (CustomInfo == "1")
{
string mscOld;
if (row.GetValue("VALIDFLAG") != "")
{
mscOld = GetMscBySic(row.GetValue("SIC"));
}
else
{
mscOld = row.HasParent() ? row.ParentRow.GetValue("MSC") : row.GetValue("MSC");
}
DataTable dtMsc = GetMscTabByMsc(mscOld);
//if (dtMsc.Rows[0]["UNIT_CODE"].ToString() != UserInfo.GetDeptid() && UserInfo.GetUserID() != "admin")
//{
// errMessage = "该条记录对应的冶金规范是[" + dtMsc.Rows[0]["UNIT_DESC"].ToString() + "]科室维护的,您没有权限!";
// row.Activate();
// return false;
//}
}
return true;
}
///
/// 新增或者修改项 主表
///
/// 行
///
private SpecObject GetMasterData(UltraGridRow ugr, DataRow rowSic)
{
string sic = ugr.Cells["SIC"].Text.ToString();
string psc = ugr.Cells["PSC"].Text.ToString();
string msc = ugr.Cells["MSC"].Value.ToString();
if (CustomInfo == "1" && msc.Equals(""))
if (msc.Equals(""))
{
errMessage = "请选择冶金规范码";
return null;
}
if (CheckAuthority(ugr) == false) return null;
string stdStyle = ugr.Cells["STDSTYLE"].Text.ToString();
string stdCode = ugr.Cells["STD_CODE"].Value.ToString();
string stdName = ugr.Cells["STD_NAME"].Text.ToString();
if (CustomInfo != "1" && stdName.Equals(""))
{
errMessage = "请选择标准名称";
return null;
}
if (stdStyle.Equals("内控"))
stdStyle = "N";
else if (stdStyle.Equals("订货标准"))
stdStyle = "G";
else if (stdStyle.Equals("协议标准"))
stdStyle = "X";
else if (stdStyle.Equals("Alpha"))
stdStyle = "K";
else if (stdStyle.Equals("试验标准"))
stdStyle = "S";
else if (stdStyle.Equals("成分偏差标准"))
stdStyle = "P";
else
stdStyle = "";
string processCode = ugr.Cells["PROCESS_CODE"].Value.ToString();
string processDesc = ugr.Cells["PROCESS_DESC"].Text.ToString();
string modelCode = ugr.Cells["MODEL_CODE"].Value.ToString();
string modelDesc = ugr.Cells["MODEL_DESC"].Text.ToString();
string stdmemo = ugr.Cells["STDMEMO"].Text.ToString();
string userName = UserInfo.GetUserName();
string createTime = ugr.Cells["CREATE_TIME"].Value.ToString();
string userTime = System.DateTime.Now.ToString();
string validflag = ugr.Cells["VALIDFLAG"].Value.ToString();
string steelcodeNk = ugr.GetValue("STEELCODE_NK");
string steelnameNk = ugr.GetValue("STEELNAME_NK");
string modelCodeNk = ugr.GetValue("MODEL_CODE_NK");
string modelDescNk = ugr.GetValue("MODEL_DESC_NK");
string produccodeNk = ugr.GetValue("PRODUCCODE_NK");
string producnameNk = ugr.GetValue("PRODUCNAME_NK");
if (rowSic != null && (rowSic["VALIDFLAG"].ToString() == "2" || rowSic["VALIDFLAG"].ToString() == "3"))
{
errMessage = "提交审核或已审核记录不能保存!";
return null;
}
String specialPath = ugr.Cells["SPECIAL_PATH"].Value.ToString();
if (specialPath.Equals(""))
{
specialPath = "0";
}
else
{
if (Boolean.Parse(specialPath))
{
specialPath = "1";
}
else
{
specialPath = "0";
}
}
//if(CustomInfo == "2" && produccodeNk == "")
//{
// errMessage = "请选择品名!";
// return null;
//}
SpecObject com = new SpecObject();
com.Sic = sic;
com.Psc = psc;
com.Msc = msc;
com.StdCode = stdCode;
com.StdStyle = stdStyle;
com.StdName = stdName;
com.ProcessCode = processCode;
com.ProcessDesc = processDesc;
com.ModelCode = modelCode;
com.ModelDesc = modelDesc;
com.StdMemo = stdmemo;
com.ProducHead = ugr.GetValue("PRODUC_HEAD");
com.CodeJg = codeJg == "DefaultValue" ? "" : codeJg;
com.CreateName = userName;
com.CreateTime = createTime;
com.UpdateName = userName;
com.DeleteName = userName;
com.Validflag = validflag;
com.SpecialPath = specialPath;
com.SteelcodeNk = steelcodeNk;
com.SteelnameNk = steelnameNk;
com.ModelCodeNk = modelCodeNk;
com.ModelDescNk = modelDescNk;
com.ProduccodeNk = produccodeNk;
com.ProducnameNk = producnameNk;
return com;
}
///
/// 新增或者修改项 从表
///
/// 行
///
private SpecCObject GetFromData(UltraGridRow rows, DataRow rowSic)
{
if (CheckAuthority(rows) == false) return null;
if (rowSic != null && (rowSic["VALIDFLAG"].ToString() == "2" || rowSic["VALIDFLAG"].ToString() == "3"))
{
errMessage = "主记录为提交审核或已审核状态时,无法修改";
return null;
}
SpecCObject com = new SpecCObject();
com.Sic = rows.Cells["SIC"].Value.ToString().Trim();
com.IndexSeq = rows.Cells["INDEX_SEQ"].Value.ToString().Trim();
com.BiasCode = rows.Cells["BIAS_CODE"].Value.ToString().Trim();
com.BiasName = rows.Cells["BIAS_CODE"].Text.Trim();
if (com.BiasCode.Equals(""))
{
errMessage = "请选择公差项";
return null;
}
com.Lv = rows.Cells["LV"].Value.ToString().Trim();
com.BiasCodeZ = rows.Cells["BIAS_CODE_Z"].Value.ToString().Trim();
com.BiasNameZ = rows.Cells["BIAS_CODE_Z"].Text;
com.ZminSign = rows.Cells["ZMIN_SIGN"].Value.ToString().Trim();
com.Zmin = rows.Cells["ZMIN"].Value.ToString().Trim();
com.ZmaxSign = rows.Cells["ZMAX_SIGN"].Value.ToString().Trim();
com.Zmax = rows.Cells["ZMAX"].Value.ToString().Trim();
if (!com.BiasCodeZ.Equals(""))
{
if (com.ZminSign.Equals("=") && !com.ZmaxSign.Equals(""))
{
errMessage = "公差约束项<一>:下限符号为‘=’,不能选择上限符号";
return null;
}
if (com.ZminSign.Equals("") && com.ZmaxSign.Equals(""))
{
errMessage = "请选择公差约束项<一>:下限符号或者上限符号";
return null;
}
//上限符号与上限值
if (!com.Zmax.Equals(""))
{
if (com.ZmaxSign.Equals(""))
{
errMessage = "请选择公差约束项<一>:上限符号";
return null;
}
if (StringUtil.IsNumber(com.Zmax) && com.Zmax.Length > 10)
{
errMessage = "公差约束项<一>:上限值(10位以内数字)";
return null;
}
string zMax = com.Zmax.Replace("t", "1.0").Replace("D", "1.0").Replace("L", "1.0");
if (!StringUtil.IsNumber(com.Zmax) && zMax.CompileFormula() == null)
{
errMessage = "公差约束项<一>:上限值(请输入合法公式!)";
return null;
}
}
else
{
if (!com.ZmaxSign.Equals(""))
{
errMessage = "请输入公差约束项<一>:上限值";
return null;
}
}
//下限符号与下限值
if (!com.Zmin.Equals(""))
{
if (com.ZminSign.Equals(""))
{
errMessage = "请选择公差约束项<一>:下限符号";
return null;
}
if (StringUtil.IsNumber(com.Zmin) && com.Zmin.Length > 10)
{
errMessage = "请输入公差约束项<一>:下限值(10位以内数字)";
return null;
}
string zMin = com.Zmin.Replace("t", "1.0").Replace("D", "1.0").Replace("L", "1.0");
if (!StringUtil.IsNumber(com.Zmin) && zMin.CompileFormula() == null)
{
errMessage = "公差约束项<一>:下限值(请输入合法公式!)";
return null;
}
}
else
{
if (!com.ZminSign.Equals(""))
{
errMessage = "请输入公差约束项<一>:下限值";
return null;
}
}
if (!com.Zmax.Equals("") && !com.Zmin.Equals("")) //&&Convert.ToDouble(com.Zmin)>Convert.ToDouble(com.Zmax)
{
int retrunValue = QcmBaseInfo.CheckStdData(com.ZminSign, com.ZmaxSign, com.Zmin, com.Zmax);
if (retrunValue == 0)
{
errMessage = "输入的数据不完整";
return null;
}
if (retrunValue == 1)
{
errMessage = "公差约束项<一>下限值与上限值相等,上下限符号请选择<=和>=";
return null;
}
if (retrunValue == 2)
{
errMessage = "公差约束项<一>下限值不能大于上限值";
return null;
}
}
}
else
{
if (!com.ZminSign.Equals("") || !com.Zmin.Equals("") || !com.ZmaxSign.Equals("") || !com.Zmax.Equals(""))
{
errMessage = "请选择公差约束项<一>:公差约束项";
return null;
}
}
//公差约束项二
com.BiasCodeC = rows.Cells["BIAS_CODE_C"].Value.ToString().Trim();
com.BiasNameC = rows.Cells["BIAS_CODE_C"].Text;
com.CminSign = rows.Cells["CMIN_SIGN"].Value.ToString().Trim();
com.Cmin = rows.Cells["CMIN"].Value.ToString().Trim();
com.CmaxSign = rows.Cells["CMAX_SIGN"].Value.ToString().Trim();
com.Cmax = rows.Cells["CMAX"].Value.ToString().Trim();
if (!com.BiasCodeC.Equals(""))
{
if (com.CminSign.Equals("=") && !com.CmaxSign.Equals(""))
{
errMessage = "公差约束项<二>:下限符号为‘=’,不能选择上限符号";
return null;
}
if (com.CminSign.Equals("") && com.CmaxSign.Equals(""))
{
errMessage = "请选择公差约束项<二>:下限符号或者上限符号";
return null;
}
//上限符号与上限值
if (!com.Cmax.Equals(""))
{
if (com.CmaxSign.Equals(""))
{
errMessage = "请选择公差约束项<二>:上限符号";
return null;
}
if (StringUtil.IsNumber(com.Cmax) && com.Cmax.Length > 10)
{
errMessage = "请输入公差约束项<二>:上限值(10位以内数字)";
return null;
}
string Cmax = com.Cmax.Replace("t", "1.0").Replace("D", "1.0").Replace("L", "1.0");
if (!StringUtil.IsNumber(com.Cmax) && Cmax.CompileFormula() == null)
{
errMessage = "公差约束项<二>:上限值(请输入合法公式!)";
return null;
}
}
else
{
if (!com.CmaxSign.Equals(""))
{
errMessage = "请输入公差约束项<二>:上限值";
return null;
}
}
//下限符号与下限值
if (!com.Cmin.Equals(""))
{
if (com.CminSign.Equals(""))
{
errMessage = "请选择公差约束项<二>:下限符号";
return null;
}
if (StringUtil.IsNumber(com.Cmin) && com.Cmin.Length > 10)
{
errMessage = "请输入公差约束项<二>:下限值(10位以内数字)";
return null;
}
string Cmin = com.Cmin.Replace("t", "1.0").Replace("D", "1.0").Replace("L", "1.0");
if (!StringUtil.IsNumber(com.Cmin) && Cmin.CompileFormula() == null)
{
errMessage = "公差约束项<二>:下限值(请输入合法公式!)";
return null;
}
}
else
{
if (!com.CminSign.Equals(""))
{
errMessage = "请输入公差约束项<二>:下限值";
return null;
}
}
if (!com.Cmax.Equals("") && !com.Cmin.Equals("")) // && Convert.ToDouble(com.Cmin) > Convert.ToDouble(com.Cmax)
{
int retrunValue = QcmBaseInfo.CheckStdData(com.CminSign, com.CmaxSign, com.Cmin, com.Cmax);
if (retrunValue == 0)
{
errMessage = "输入的数据不完整";
return null;
}
if (retrunValue == 1)
{
errMessage = "公差约束项<二>下限值与上限值相等,上下限符号请选择<=和>=";
return null;
}
if (retrunValue == 2)
{
errMessage = "公差约束项<二>下限值不能大于上限值";
return null;
}
}
}
else
{
if (!com.CminSign.Equals("") || !com.Cmin.Equals("") || !com.CmaxSign.Equals("") || !com.Cmax.Equals(""))
{
errMessage = "请选择公差约束项<二>:公差约束项";
return null;
}
}
//公差约束项三
com.BiasCodeS = rows.Cells["BIAS_CODE_S"].Value.ToString().Trim();
com.BiasNameS = rows.Cells["BIAS_CODE_S"].Text;
com.SminSign = rows.Cells["SMIN_SIGN"].Value.ToString().Trim();
com.Smin = rows.Cells["SMIN"].Value.ToString().Trim();
com.SmaxSign = rows.Cells["SMAX_SIGN"].Value.ToString().Trim();
com.Smax = rows.Cells["SMAX"].Value.ToString().Trim();
if (!com.BiasCodeS.Equals(""))
{
if (com.SminSign.Equals("=") && !com.SmaxSign.Equals(""))
{
errMessage = "公差约束项<三>:下限符号为‘=’,不能选择上限符号";
return null;
}
if (com.SminSign.Equals("") && com.SmaxSign.Equals(""))
{
errMessage = "请选择公差约束项<三>:下限符号或者上限符号";
return null;
}
//上限符号与上限值
if (!com.Smax.Equals(""))
{
if (com.SmaxSign.Equals(""))
{
errMessage = "请选择公差约束项<三>:上限符号";
return null;
}
if (StringUtil.IsNumber(com.Smax) && com.Smax.Length > 10)
{
errMessage = "请输入公差约束项<三>:上限值(10位以内数字)";
return null;
}
string Smax = com.Smax.Replace("t", "1.0").Replace("D", "1.0").Replace("L", "1.0");
if (!StringUtil.IsNumber(com.Smax) && Smax.CompileFormula() == null)
{
errMessage = "公差约束项<三>:上限值(请输入合法公式!)";
return null;
}
}
else
{
if (!com.SmaxSign.Equals(""))
{
errMessage = "请输入公差约束项<三>:上限值";
return null;
}
}
//下限符号与下限值
if (!com.Smin.Equals(""))
{
if (com.SminSign.Equals(""))
{
errMessage = "请选择公差约束项<三>:下限符号";
return null;
}
if (StringUtil.IsNumber(com.Smin) && com.Smin.Length > 10)
{
errMessage = "请输入公差约束项<三>:下限值(10位以内数字)";
return null;
}
string Smin = com.Smin.Replace("t", "1.0").Replace("D", "1.0").Replace("L", "1.0");
if (!StringUtil.IsNumber(com.Smin) && Smin.CompileFormula() == null)
{
errMessage = "公差约束项<三>:下限值(请输入合法公式!)";
return null;
}
}
else
{
if (!com.SminSign.Equals(""))
{
errMessage = "请输入公差约束项<三>:下限值";
return null;
}
}
if (!com.Smax.Equals("") && !com.Smin.Equals("")) //&& Convert.ToDouble(com.Smin) > Convert.ToDouble(com.Smax)
{
int retrunValue = QcmBaseInfo.CheckStdData(com.SminSign, com.SmaxSign, com.Smin, com.Smax);
if (retrunValue == 0)
{
errMessage = "输入的数据不完整";
return null;
}
if (retrunValue == 1)
{
errMessage = "公差约束项<三>下限值与上限值相等,上下限符号请选择<=和>=";
return null;
}
if (retrunValue == 2)
{
errMessage = "公差约束项<三>下限值不能大于上限值";
return null;
}
}
}
else
{
if (!com.SminSign.Equals("") || !com.Smin.Equals("") || !com.SmaxSign.Equals("") || !com.Smax.Equals(""))
{
errMessage = "请选择公差约束项<三>:公差约束项";
return null;
}
}
if (!com.BiasCodeS.Equals(""))
{
if (com.BiasCodeC.Equals(""))
{
errMessage = "请依次填写公差约束项";
return null;
}
else
{
if (com.BiasCodeZ.Equals(""))
{
errMessage = "请依次填写公差约束项";
return null;
}
}
}
else
{
if (!com.BiasCodeC.Equals(""))
{
if (com.BiasCodeZ.Equals(""))
{
errMessage = "请依次填写公差约束项";
return null;
}
}
}
com.IsCheck = rows.Cells["ISCHECK"].Value.ToString().Trim();
if (Convert.ToBoolean(com.IsCheck))
com.IsCheck = "1";
else
com.IsCheck = "0";
com.StdMinVal = rows.Cells["STD_MIN_VAL"].Value.ToString().Trim();
int i = 0;
if (!com.StdMinVal.Equals(""))
{
i += 1;
if (!StringUtil.IsNumber(com.StdMinVal) || com.StdMinVal.Length > 10)
{
errMessage = "下偏差值(mm)请输入10位以内数字";
return null;
}
if ((com.BiasCode == "404019" || com.BiasCode == "404020") && decimal.Parse(com.StdMinVal) > 0)
{
errMessage = "(管体/管端壁厚)下偏差值(mm)不能为正数";
return null;
}
}
com.StdMaxVal = rows.Cells["STD_MAX_VAL"].Value.ToString().Trim();
if (!com.StdMaxVal.Equals(""))
{
if (!StringUtil.IsNumber(com.StdMaxVal) || com.StdMaxVal.Length > 10)
{
errMessage = "上偏差值(mm)请输入10位以内数字";
return null;
}
}
com.StdMinIn = rows.Cells["STD_MIN_IN"].Value.ToString().Trim();
if (!com.StdMinIn.Equals(""))
{
if (!StringUtil.IsNumber(com.StdMinIn) || com.StdMinIn.Length > 10)
{
errMessage = "标准负值(in)请输入10位以内数字";
return null;
}
}
com.StdMaxIn = rows.Cells["STD_MAX_IN"].Value.ToString().Trim();
if (!com.StdMaxIn.Equals(""))
{
if (!StringUtil.IsNumber(com.StdMaxIn) || com.StdMaxIn.Length > 10)
{
errMessage = "标准正值(in)请输入10位以内数字";
return null;
}
}
com.StdMinPercent = rows.Cells["STD_MIN_PERCENT"].Value.ToString().Trim();
if (!com.StdMinPercent.Equals(""))
{
i += 1;
if (!StringUtil.IsNumber(com.StdMinPercent) || com.StdMinPercent.Length > 10)
{
errMessage = "下偏差值(%)请输入10位以内数字";
return null;
}
if ((com.BiasCode == "404019" || com.BiasCode == "404020") && decimal.Parse(com.StdMinPercent) > 0)
{
errMessage = "(管体/管端壁厚)下偏差值(%)不能为正数";
return null;
}
}
com.StdMaxPercent = rows.Cells["STD_MAX_PERCENT"].Value.ToString().Trim();
if (!com.StdMaxPercent.Equals(""))
{
if (!StringUtil.IsNumber(com.StdMaxPercent) || com.StdMaxPercent.Length > 10)
{
errMessage = "上偏差值(%)请输入10位以内数字";
return null;
}
}
com.StdMinFormula = rows.Cells["STD_MIN_FORMULA"].Value.ToString().Trim();
if (!com.StdMinFormula.Equals(""))
{
i += 1;
if (com.StdMinFormula.Length > 100)
{
errMessage = "请输入标准公式下偏差值(mm)";
return null;
}
if ((com.BiasCode == "404019" || com.BiasCode == "404020") && (!com.StdMinFormula.StartsWith("-") && com.StdMinFormula != "0"))
{
errMessage = "(管体/管端壁厚)标准公式下偏差值(mm)不能为正数";
return null;
}
}
com.StdMaxFormula = rows.Cells["STD_MAX_FORMULA"].Value.ToString().Trim();
if (!com.StdMaxFormula.Equals(""))
{
if (com.StdMaxFormula.Length > 100)
{
errMessage = "请输入标准公式上偏差值(mm)";
return null;
}
}
if (com.StdMinVal.Equals("") && com.StdMinFormula.Equals("") && com.StdMinPercent.Equals(""))
{
errMessage = "请输入一组标准值";
return null;
}
if (com.StdMinVal.Equals(""))
{
if (!com.StdMaxVal.Equals(""))
{
errMessage = "下偏差值(mm)请输入10位以内数字";
return null;
}
}
else
{
if (com.StdMaxVal.Equals(""))
{
errMessage = "上偏差值(mm)请输入10位以内数字";
return null;
}
}
if (com.StdMinPercent.Equals(""))
{
if (!com.StdMaxPercent.Equals(""))
{
errMessage = "下偏差值(%)请输入10位以内数字";
return null;
}
}
else
{
if (com.StdMaxPercent.Equals(""))
{
errMessage = "上偏差值(%)请输入10位以内数字";
return null;
}
}
if (com.StdMinFormula.Equals(""))
{
if (!com.StdMaxFormula.Equals(""))
{
errMessage = "请输入标准公式下偏差值(mm)";
return null;
}
}
else
{
if (com.StdMaxFormula.Equals(""))
{
errMessage = "请输入标准公式上偏差值(mm)";
return null;
}
}
if (!com.StdMinFormula.Equals("") && !StringUtil.IsNumber(com.StdMinFormula))
{
if (!QcmBaseCommon.CheckToleranceFormula(com.StdMinFormula))
{
errMessage = "您输入的标准值-公式下偏差值(mm):[" + com.StdMinFormula + "]不合法,请重新输入!";
return null;
}
}
if (!com.StdMaxFormula.Equals("") && !StringUtil.IsNumber(com.StdMaxFormula))
{
if (!QcmBaseCommon.CheckToleranceFormula(com.StdMaxFormula))
{
errMessage = "您输入的标准值-公式上偏差值(mm):[" + com.StdMaxFormula + "]不合法,请重新输入!";
return null;
}
}
com.StdMinFormulaV = rows.Cells["STD_MIN_FORMULA_V"].Value.ToString().Trim();
com.StdMaxFormulaV = rows.Cells["STD_MAX_FORMULA_V"].Value.ToString().Trim();
if (Convert.ToBoolean(com.StdMinFormulaV))
com.StdMinFormulaV = "1";
else
com.StdMinFormulaV = "0";
if (Convert.ToBoolean(com.StdMaxFormulaV))
com.StdMaxFormulaV = "1";
else
com.StdMaxFormulaV = "0";
if (com.StdMaxFormulaV.Equals("1") && com.StdMinFormulaV.Equals("1"))
{
errMessage = "不能同时选择标准取小值和取大值";
return null;
}
if (i > 1 && com.StdMinFormulaV.Equals("0") && com.StdMaxFormulaV.Equals("0"))
{
errMessage = "请选择标准取小值或者取大值";
return null;
}
com.StdMemo = rows.Cells["STDMEMO"].Value.ToString().Trim();
com.CreateName = UserInfo.GetUserName();
com.UpdateName = UserInfo.GetUserName();
com.Validflag = rows.Cells["VALIDFLAG"].Value.ToString();
com.CreateTime = rows.Cells["CREATE_TIME"].Value.ToString().Trim();
com.GroupSeq = rows.Cells["GROUP_SEQ"].Value.ToString();
if (!com.BiasCodeC.Equals(""))
{
if (com.BiasCodeC.Equals(com.BiasCodeS) || com.BiasCodeC.Equals(com.BiasCodeZ))
{
errMessage = "公差约束项不能相同,请重新选择";
return null;
}
}
if (!com.BiasCodeS.Equals(""))
{
if (com.BiasCodeS.Equals(com.BiasCodeC) || com.BiasCodeS.Equals(com.BiasCodeZ))
{
errMessage = "公差约束项不能相同,请重新选择";
return null;
}
}
if (!com.BiasCodeZ.Equals(""))
{
if (com.BiasCodeZ.Equals(com.BiasCodeC) || com.BiasCodeZ.Equals(com.BiasCodeS))
{
errMessage = "公差约束项不能相同,请重新选择";
return null;
}
}
return com;
}
FrmTolerancesStandard _frmTolerancesStandard = null;
///
/// 扣型选择
///
///
///
private void ultraGrid1_ClickCellButton(object sender, CellEventArgs e)
{
if (e.Cell.Column.Key.Equals("MODEL_DESC") && Convert.ToBoolean(ultraGrid1.DisplayLayout.ActiveRow.Cells["CHC"].Value))
{
UltraGridRow row = this.ultraGrid1.DisplayLayout.ActiveRow;
FrmModel frms = new FrmModel();
frms.Code = row.Cells["MODEL_CODE"].Value.ToString();
frms.Desc = row.Cells["MODEL_DESC"].Value.ToString();
frms.FrmOb = this.ob;
frms.ShowDialog();
row.Cells["MODEL_CODE"].Value = frms.Code;
row.Cells["MODEL_DESC"].Value = frms.Desc;
}
if (e.Cell.Column.Key.Equals("CHKNK"))
{
UltraGridRow ugr = ultraGrid1.ActiveRow;
_frmTolerancesStandard = new FrmTolerancesStandard();
_frmTolerancesStandard.PopupLoad("3", ob);
_frmTolerancesStandard.UltraPanel1.Visible = false;
_frmTolerancesStandard.ultraToolbarsManager1.Visible = true;
_frmTolerancesStandard.Msc = msc;
_frmTolerancesStandard.CodeJg = "";
_frmTolerancesStandard.DoQuery1();
if (_frmTolerancesStandard.ShowDialog() == System.Windows.Forms.DialogResult.OK)
{
DataRow CurRow, NewRow;
for (int i = 0; i < _frmTolerancesStandard.dataTable2.Rows.Count; i++)
{
CurRow = _frmTolerancesStandard.dataTable2.Rows[i];
NewRow = dataTable2.NewRow();
if (!_frmTolerancesStandard.Ids.Contains(CurRow["SIC"].ToString2()))
{
continue;
}
for (int j = 0; j < _frmTolerancesStandard.dataTable2.Columns.Count; j++)
{
try
{
if (dataTable2.Columns.Contains(_frmTolerancesStandard.dataTable2.Columns[j].ColumnName))
{
if (_frmTolerancesStandard.dataTable2.Columns[j].ColumnName == "SIC")
{
NewRow[_frmTolerancesStandard.dataTable2.Columns[j].ColumnName] = ultraGrid1.ActiveRow.GetValue("SIC");
}
else
{
NewRow[_frmTolerancesStandard.dataTable2.Columns[j].ColumnName] = CurRow[j];
}
}
}
catch { }
}
dataTable2.Rows.Add(NewRow);
}
ultraGrid1.UpdateData();
ultraGrid1.ActiveRow.ExpandAll();
}
}
}
private void ultraCheckMSC_CheckedChanged(object sender, EventArgs e)
{
if (ultraCheckMSC.Checked)
TextMSC.Enabled = true;
else
TextMSC.Enabled = false;
}
private void ultraCheckStand_CheckedChanged(object sender, EventArgs e)
{
if (ultraCheckStand.Checked)
TextStd.Enabled = true;
else
TextStd.Enabled = false;
}
private void ultraGrid1_InitializeRow(object sender, InitializeRowEventArgs e)
{
if (isPasting)
{
e.Row.SetValue("CHC", "True");
}
}
///
/// 2015-07-15 PDY
///
private void InnerChange()
{
ultraGrid1.DisplayLayout.Bands[0].Columns["PROCESS_CODE"].CellActivation = Activation.ActivateOnly;
ultraGrid1.DisplayLayout.Bands[0].Columns["STD_CODE"].CellActivation = Activation.ActivateOnly;
ultraGrid1.DisplayLayout.Bands[0].Columns["MODEL_DESC"].Hidden = true;
}
private void ultraTextEditor3_EditorButtonClick(object sender, EditorButtonEventArgs e)
{
if (ultraGrid1.ActiveCell.Column.Key == "PROCESS_DESC")
{
string processCodes = ultraGrid1.ActiveRow.GetValue("PROCESS_CODE");
ChoiceProcessPopup choiceProcessPopup = new ChoiceProcessPopup(processCodes, this.ob);
if (choiceProcessPopup.ShowDialog() == System.Windows.Forms.DialogResult.OK)
{
DataTable dt = ServerHelper.GetData("com.steering.pss.qcm.ComStandard.getProcessByStdCode",
new object[] { this.stdCode }, ob);
string stdProcessCodes = dt.Rows[0]["PROCESS_CODE"].ToString();
string[] processCodesAry = choiceProcessPopup.ProcessCodes.Split(',');
for (int i = 0; i < processCodesAry.Length; i++)
{
if (!stdProcessCodes.Contains(processCodesAry[i].Trim()))
{
DataTable dtBaseProcess = ServerHelper.GetData("com.steering.pss.qcm.ComStandard.getProcessDescByCode",
new object[] { processCodesAry[i].Trim() }, ob);
string processDesc = dtBaseProcess.Rows[0]["PROCESS_DESC"].ToString();
MessageUtil.ShowWarning("该标准下不包含工序" + processDesc + ", 不能选择!");
return;
}
}
ultraGrid1.ActiveRow.SetValue("PROCESS_CODE", choiceProcessPopup.ProcessCodes);
ultraGrid1.ActiveRow.SetValue("PROCESS_DESC", choiceProcessPopup.ProcessDescs);
}
}
else if (ultraGrid1.ActiveCell.Column.Key == "STEELNAME_NK")
{
FrmRepSteel frmSteel = new FrmRepSteel();
frmSteel.Ob1 = this.ob;
frmSteel.Code = ultraGrid1.ActiveRow.GetValue("STEELCODE_NK");
if (frmSteel.ShowDialog() == System.Windows.Forms.DialogResult.OK)
{
ultraGrid1.ActiveRow.SetValue("STEELCODE_NK", frmSteel.Code);
ultraGrid1.ActiveRow.SetValue("STEELNAME_NK", frmSteel.Desc);
}
}
else if (ultraGrid1.ActiveCell.Column.Key == "MODEL_DESC_NK")
{
FrmModel frmModel = new FrmModel();
frmModel.FrmOb = this.ob;
frmModel.Code = ultraGrid1.ActiveRow.GetValue("MODEL_CODE_NK");
frmModel.Desc = ultraGrid1.ActiveCell.Value.ToString();
if (frmModel.ShowDialog() == System.Windows.Forms.DialogResult.OK)
{
ultraGrid1.ActiveRow.SetValue("MODEL_CODE_NK", frmModel.Code);
ultraGrid1.ActiveRow.SetValue("MODEL_DESC_NK", frmModel.Desc);
}
}
else if (ultraGrid1.ActiveCell.Column.Key == "PRODUCNAME_NK")
{
PopupProductName popupProductName = new PopupProductName(
ultraGrid1.ActiveRow.GetValue("PRODUCCODE_NK"), ob);
if (popupProductName.ShowDialog() == System.Windows.Forms.DialogResult.OK)
{
ultraGrid1.ActiveRow.SetValue("PRODUCCODE_NK", popupProductName.ProductCodes);
ultraGrid1.ActiveRow.SetValue("PRODUCNAME_NK", popupProductName.ProductNames);
}
}
}
private void ultraGrid1_AfterSelectChange(object sender, AfterSelectChangeEventArgs e)
{
foreach (Infragistics.Win.UltraWinGrid.UltraGridRow ugr in this.ultraGrid1.Selected.Rows)
{
ugr.Cells["CHC"].Value = true;
Activation activation = Activation.ActivateOnly;
if (Convert.ToBoolean(ugr.Cells["CHC"].Value))
{
activation = Activation.AllowEdit;
//isSelect += 1;
}
//else
//isSelect -= 1;
CellsCollection cells = ugr.Cells;
for (int i = 0; i < cells.Count; i++)
{
if (!cells[i].Column.Key.Equals("CHC"))
{
ugr.Cells[i].Activation = activation;
}
}
}
}
private void ultraToolbarsManager1_ToolClick(object sender, Infragistics.Win.UltraWinToolbars.ToolClickEventArgs e)
{
switch (e.Tool.Key)
{
case "查询":
DoQuery1();
break;
case "确认选择":
Choice();
break;
}
}
private DataRow[] rows;
public DataRow[] Rows
{
get { return rows; }
set { rows = value; }
}
List ids;
public List Ids
{
get { return ids; }
set { ids = value; }
}
private void Choice()
{
ultraGrid1.UpdateData();
int count = ultraGrid1.Rows.Where(a => Convert.ToBoolean(a.GetValue("CHC"))).Count();
if (count > 1)
{
MessageUtil.ShowTips("请选择一条数据!");
return;
}
foreach (UltraGridRow ugr in ultraGrid1.Rows.Where(a => Convert.ToBoolean(a.GetValue("CHC"))))
{
//从表操作
if (ugr.HasChild())
{
Ids = ugr.ChildBands[0].Rows.Select(p => p.GetValue("SIC")).ToList();
Rows = dataTable2.Select("SIC IN ('" + string.Join("','", Ids) + "')");
}
}
this.DialogResult = System.Windows.Forms.DialogResult.OK;
}
}
}