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 FrmChemStandard : FrmBase
{
private bool isPasting = false;
///
/// 成分索引号
///
private string cic = "";
public string Cic
{
get { return cic; }
set { cic = value; }
}
private string msc = "";
public string Msc
{
get { return msc; }
set { msc = value; }
}
//如果接箍为字符串空,会在SQL语句中新增接箍等于空的条件,所以单页面默认了个不为空的值。
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 processCodeNk = "";
public string ProcessCodeNk
{
get { return processCodeNk; }
set { processCodeNk = 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 = "";
//判断是否勾选记录
//public int isSelect = 0;
//是否展开
private bool _isEx = false;
//定位行
private string _cic = "";
private UltraComboEditor[] ultras = new UltraComboEditor[13];
public FrmChemStandard()
{
//F1 F2功能
IsLoadUserView = true;
InitializeComponent();
ExceptionHelper.RegistException();
}
public void PopupLoad(string customInfo, OpeBase ob)
{
this.CustomInfo = customInfo;
this.ob = ob;
FrmChemStandard_Load(null, null);
}
public override void ToolBar_Click(object sender, string ToolbarKey)
{
switch (ToolbarKey)
{
case "Query":
DoQuery();
break;
case "Save":
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();
break;
case "CancelGroup":
CancelGroup();
break;
case "Close":
this.Close();
break;
}
}
///
/// 复制
///
private void Copy()
{
if (ultraGrid1.ActiveRow == null)
{
MessageUtil.ShowWarning("请选择记录后,再进行操作!");
return;
}
ultraGrid1.UpdateData();
DataTable copyTab = dataTable1.Copy();
DataTable copyTab2 = dataTable2.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("Cic", 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("Cic");
if (copyTabs == null)
{
MessageUtil.ShowWarning("没有数据,请复制后再进行操作!");
return;
}
DataTable copyTab = copyTabs[0];
DataTable copyTab2 = copyTabs[1];
if (copyTab == null || copyTab.Rows.Count == 0)
{
MessageUtil.ShowWarning("没有数据,请复制后再进行操作!");
return;
}
dataTable1.BeginInit();
string cic = "";
UltraGridRow rowParent;
if (ultraGrid1.ActiveRow.HasParent())
{
//if (ultraGrid1.ActiveRow.ParentRow.ChildBands[0].Rows.Count > 0)
//{
// MessageUtil.ShowWarning("该记录下存在子记录,不能进行粘贴操作!");
// return;
//}
cic = ultraGrid1.ActiveRow.ParentRow.GetValue("CIC");
rowParent = ultraGrid1.ActiveRow.ParentRow;
}
else
{
//if (ultraGrid1.ActiveRow.ChildBands[0].Rows.Count > 0)
//{
// MessageUtil.ShowWarning("该记录下存在子记录,不能进行粘贴操作!");
// return;
//}
cic = ultraGrid1.GetActiveRowValue("CIC");
rowParent = ultraGrid1.ActiveRow;
}
List notCopyColumns = new List();
notCopyColumns.AddRange("CHC", "CREATE_TIME", "CREATE_NAME", "UPDATE_TIME", "UPDATE_NAME",
"DELETE_TIME", "DELETE_NAME", "VALIDFLAG", "CIC", "MSC", "PSC_DESC", "PSC", "STDSTYLE", "STD_NAME_B",
"PRODUCNAME", "STEELNAME", "STD_CODE_NK", "STD_NAME_NK", "PROCESS_CODE", "PROCESS_DESC", "STD_STYLE_DESC",
"GRADECODE", "GRADENAME", "PRODUCCODE_NK", "PRODUCNAME_NK", "STEELCODE_NK", "STEELNAME_NK", "XH");
if (CustomInfo == "2")
{
//内控子记录不要限制规格。
notCopyColumns.AddRange("SIZE_CODE2", "SIZE_NAME2", "SIZE_MIN_SIGN2", "SIZE_MIN2", "SIZE_MAX_SIGN2",
"SIZE_MAX2", "SIZE_CODE", "SIZE_NAME", "SIZE_MIN_SIGN", "SIZE_MIN", "SIZE_MAX_SIGN", "SIZE_MAX",
"SPEC_JG", "SPEC_JG_DESC");
}
if (copyTab2.Rows.Count > 0)
{
DataRow drParent = ((DataRowView)rowParent.ListObject).Row;
foreach (DataColumn column in dataTable2.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 = dataTable1.NewRow();
foreach (DataColumn column in dataTable1.Columns)
{
string columnName = column.ColumnName;
if (notCopyColumns.Contains(columnName) == true) continue;
if (!copyTab.Columns.Contains(columnName)) continue;
tempRow[columnName] = row[columnName];
}
tempRow["CIC"] = cic;
dataTable1.Rows.Add(tempRow);
}
dataTable1.EndInit();
if (copyTab.Rows.Count > 0 && ultraGrid1.ActiveRow != null)
{
ultraGrid1.ActiveRow.ExpandAll();
}
ultraGrid1.UpdateData();
}
///
/// 根据交付 内控 Alpha 分别隐藏不同列
///
private void HideColumn()
{
if (CustomInfo == "1")
{
//内控标准名称
ultraGrid1.DisplayLayout.Bands[0].Columns["STD_CODE_NK"].Hidden = true;
//适用工序
ultraGrid1.DisplayLayout.Bands[0].Columns["PROCESS_DESC"].Hidden = true;
//适用钢种
ultraGrid1.DisplayLayout.Bands[0].Columns["GRADENAME"].Hidden = true;
ultraGrid1.DisplayLayout.Bands[0].Columns["STEELNAME_NK"].Hidden = true;
ultraGrid1.DisplayLayout.Bands[0].Columns["MODEL_DESC_NK"].Hidden = true;
ultraGrid1.DisplayLayout.Bands[0].Columns["PRODUCCODE_NK"].Hidden = true;
ultraGrid1.DisplayLayout.Bands[0].Columns["PRODUCNAME_NK"].Hidden = true;
ultraGrid1.DisplayLayout.Bands[0].Groups[0].Hidden = true;
ultraGrid1.DisplayLayout.Bands[0].Groups[1].Hidden = true;
//ultraGrid1.DisplayLayout.Bands[0].Columns["MIN_D"].Hidden = true;
//ultraGrid1.DisplayLayout.Bands[0].Columns["MAX_D"].Hidden = true;
//ultraGrid1.DisplayLayout.Bands[0].Columns["MIN_H"].Hidden = true;
//ultraGrid1.DisplayLayout.Bands[0].Columns["MAX_H"].Hidden = true;
//ultraGrid1.DisplayLayout.Bands[0].Columns["MIN_D_SIGN"].Hidden = true;
//ultraGrid1.DisplayLayout.Bands[0].Columns["MAX_D_SIGN"].Hidden = true;
//ultraGrid1.DisplayLayout.Bands[0].Columns["MIN_H_SIGN"].Hidden = true;
//ultraGrid1.DisplayLayout.Bands[0].Columns["MAX_H_SIGN"].Hidden = true;
this.ultraCheckStd.Text = "标准名称";
}
if (CustomInfo == "2" || CustomInfo == "4")
{
//产品规范描述
ultraGrid1.DisplayLayout.Bands[0].Columns["PSC_DESC"].Hidden = true;
//冶金规范码
ultraGrid1.DisplayLayout.Bands[0].Columns["MSC"].Hidden = true;
ultraGrid1.DisplayLayout.Bands[0].Columns["STD_NAME_B"].Hidden = true;
ultraGrid1.DisplayLayout.Bands[0].Columns["PRODUCNAME"].Hidden = true;
ultraGrid1.DisplayLayout.Bands[0].Columns["STEELNAME"].Hidden = true;
ultraGrid1.DisplayLayout.Bands[0].Columns["STD_STYLE_DESC"].Hidden = true;
ultraGrid1.DisplayLayout.Bands[0].Columns["SMELTING_CNT"].Hidden = true;
ultraGrid1.DisplayLayout.Bands[0].Columns["PRODUCT_CNT"].Hidden = true;
ultraGrid1.DisplayLayout.Bands[0].Columns["RATE"].Hidden = true;
if (CustomInfo == "2")
{
ultraGrid1.DisplayLayout.Bands[0].Columns["STD_CODE_NK"].Header.Caption = "内控管理编号";
ultraGrid1.DisplayLayout.Bands[1].Columns["SIZE_CODE2"].Hidden = true;
ultraGrid1.DisplayLayout.Bands[1].Columns["SIZE_CODE2"].CellActivation = Activation.ActivateOnly;
ultraGrid1.DisplayLayout.Bands[1].Columns["SIZE_NAME2"].Hidden = true;
ultraGrid1.DisplayLayout.Bands[1].Columns["SIZE_NAME2"].CellActivation = Activation.ActivateOnly;
ultraGrid1.DisplayLayout.Bands[1].Columns["SIZE_MIN_SIGN2"].Hidden = true;
ultraGrid1.DisplayLayout.Bands[1].Columns["SIZE_MIN_SIGN2"].CellActivation = Activation.ActivateOnly;
ultraGrid1.DisplayLayout.Bands[1].Columns["SIZE_MIN2"].Hidden = true;
ultraGrid1.DisplayLayout.Bands[1].Columns["SIZE_MIN2"].CellActivation = Activation.ActivateOnly;
ultraGrid1.DisplayLayout.Bands[1].Columns["SIZE_MAX_SIGN2"].Hidden = true;
ultraGrid1.DisplayLayout.Bands[1].Columns["SIZE_MAX_SIGN2"].CellActivation = Activation.ActivateOnly;
ultraGrid1.DisplayLayout.Bands[1].Columns["SIZE_MAX2"].Hidden = true;
ultraGrid1.DisplayLayout.Bands[1].Columns["SIZE_MAX2"].CellActivation = Activation.ActivateOnly;
ultraGrid1.DisplayLayout.Bands[1].Columns["SIZE_CODE"].Hidden = true;
ultraGrid1.DisplayLayout.Bands[1].Columns["SIZE_CODE"].CellActivation = Activation.ActivateOnly;
ultraGrid1.DisplayLayout.Bands[1].Columns["SIZE_NAME"].Hidden = true;
ultraGrid1.DisplayLayout.Bands[1].Columns["SIZE_NAME"].CellActivation = Activation.ActivateOnly;
ultraGrid1.DisplayLayout.Bands[1].Columns["SIZE_MIN_SIGN"].Hidden = true;
ultraGrid1.DisplayLayout.Bands[1].Columns["SIZE_MIN_SIGN"].CellActivation = Activation.ActivateOnly;
ultraGrid1.DisplayLayout.Bands[1].Columns["SIZE_MIN"].Hidden = true;
ultraGrid1.DisplayLayout.Bands[1].Columns["SIZE_MIN"].CellActivation = Activation.ActivateOnly;
ultraGrid1.DisplayLayout.Bands[1].Columns["SIZE_MAX_SIGN"].Hidden = true;
ultraGrid1.DisplayLayout.Bands[1].Columns["SIZE_MAX_SIGN"].CellActivation = Activation.ActivateOnly;
ultraGrid1.DisplayLayout.Bands[1].Columns["SIZE_MAX"].Hidden = true;
ultraGrid1.DisplayLayout.Bands[1].Columns["SIZE_MAX"].CellActivation = Activation.ActivateOnly;
ultraGrid1.DisplayLayout.Bands[1].Columns["SPEC_JG"].Hidden = true;
ultraGrid1.DisplayLayout.Bands[1].Columns["SPEC_JG"].CellActivation = Activation.ActivateOnly;
}
InnerChange();
if (CustomInfo == "4")
{
ultraGrid1.DisplayLayout.Bands[0].Columns["STD_CODE"].Hidden = true;
//ultraGrid1.DisplayLayout.Bands[0].Columns["MIN_D"].Hidden = true;
//ultraGrid1.DisplayLayout.Bands[0].Columns["MAX_D"].Hidden = true;
//ultraGrid1.DisplayLayout.Bands[0].Columns["MIN_H"].Hidden = true;
//ultraGrid1.DisplayLayout.Bands[0].Columns["MAX_H"].Hidden = true;
//ultraGrid1.DisplayLayout.Bands[0].Columns["MIN_D_SIGN"].Hidden = true;
//ultraGrid1.DisplayLayout.Bands[0].Columns["MAX_D_SIGN"].Hidden = true;
//ultraGrid1.DisplayLayout.Bands[0].Columns["MIN_H_SIGN"].Hidden = true;
//ultraGrid1.DisplayLayout.Bands[0].Columns["MAX_H_SIGN"].Hidden = true;
ultraGrid1.DisplayLayout.Bands[0].Groups[0].Hidden = true;
ultraGrid1.DisplayLayout.Bands[0].Groups[1].Hidden = true;
}
ultraCheckMSC.Visible = false;
ultraTextMSC.Visible = false;
}
if (CustomInfo == "3")
{
//产品规范描述
ultraGrid1.DisplayLayout.Bands[0].Columns["PSC_DESC"].Hidden = true;
//冶金规范码
ultraGrid1.DisplayLayout.Bands[0].Columns["MSC"].Hidden = true;
ultraGrid1.DisplayLayout.Bands[0].Columns["STD_NAME_B"].Hidden = true;
ultraGrid1.DisplayLayout.Bands[0].Columns["PRODUCNAME"].Hidden = true;
ultraGrid1.DisplayLayout.Bands[0].Columns["STEELNAME"].Hidden = true;
ultraGrid1.DisplayLayout.Bands[0].Columns["STD_STYLE_DESC"].Hidden = true;
ultraGrid1.DisplayLayout.Bands[0].Columns["STD_CODE"].Hidden = true;
ultraGrid1.DisplayLayout.Bands[0].Columns["PROCESS_DESC"].Hidden = true;
ultraGrid1.DisplayLayout.Bands[0].Columns["STEELNAME_NK"].Hidden = true;
ultraGrid1.DisplayLayout.Bands[0].Columns["MODEL_DESC_NK"].Hidden = true;
ultraGrid1.DisplayLayout.Bands[0].Columns["PRODUCCODE_NK"].Hidden = true;
ultraGrid1.DisplayLayout.Bands[0].Columns["PRODUCNAME_NK"].Hidden = true;
ultraGrid1.DisplayLayout.Bands[0].Columns["SMELTING_CNT"].Hidden = true;
ultraGrid1.DisplayLayout.Bands[0].Columns["PRODUCT_CNT"].Hidden = true;
ultraGrid1.DisplayLayout.Bands[0].Groups[0].Hidden = true;
ultraGrid1.DisplayLayout.Bands[0].Groups[1].Hidden = true;
ultraCheckMSC.Visible = false;
ultraTextMSC.Visible = false;
}
}
///
/// 初始化数据
///
///
///
private void FrmChemStandard_Load(object sender, EventArgs e)
{
HideColumn();
InitDrop();
}
public void PopupRefresh()
{
UltraGridBand ugb = ultraGrid1.DisplayLayout.Bands[0];
if (CustomInfo == "1")
{
//冶金规范码
QcmBaseQuery.NitializeMSC(ultras[10], false, this.ob, msc);
QcmBaseQuery.BindColumn(ultras[10], "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];
QcmBaseQuery.NitializeSignMin(ultraComSignMin);
QcmBaseQuery.NitializeSignMax(ultraComSignMax);
ClsBaseInfo.FillComBaseInfo(ultraComboEditor1, "4086", ob, false);
DataTable dtRate = (DataTable)ultraComboEditor1.DataSource;
dtRate.DefaultView.RowFilter = "BASECODE IN ('408602', '408603')";
//下限
QcmBaseQuery.NitializeSignMin(ultras[0]);
//标准范围下限符号
QcmBaseQuery.BindColumn(ultras[0], "STDMIN_SIGN", ugbC);
//上限
QcmBaseQuery.NitializeSignMax(ultras[1]);
//标准范围上限符号
QcmBaseQuery.BindColumn(ultras[1], "STDMAX_SIGN", ugbC);
//化学元素描述
QcmBaseQuery.NitializeChemicalElement(ultras[2], true, this.ob);
QcmBaseQuery.BindColumn(ultras[2], "CHEM_CODE", ugbC);
//结箍
QcmBaseQuery.NitializeJG(ultras[3], true, this.ob);
QcmBaseQuery.BindColumn(ultras[3], "SPEC_JG", ugbC);
//限制元素下限符号
QcmBaseQuery.BindColumn(ultras[0], "ELE_MIN_SIGN", ugbC);
//限制规格(一)下限符号
QcmBaseQuery.BindColumn(ultras[0], "SIZE_MIN_SIGN2", ugbC);
//限制规格(二)下限符号
QcmBaseQuery.BindColumn(ultras[0], "SIZE_MIN_SIGN", ugbC);
//限制元素上限符号
QcmBaseQuery.BindColumn(ultras[1], "ELE_MAX_SIGN", ugbC);
//限制规格(一)上限符号
QcmBaseQuery.BindColumn(ultras[1], "SIZE_MAX_SIGN2", ugbC);
//限制规格(二)上限符号
QcmBaseQuery.BindColumn(ultras[1], "SIZE_MAX_SIGN", ugbC);
//限制规格(一)
QcmBaseQuery.NitializeLimitSpecifications(ultras[5], true, this.ob);
QcmBaseQuery.BindColumn(ultras[5], "SIZE_CODE2", ugbC);
//限制规格(二)
QcmBaseQuery.BindColumn(ultras[5], "SIZE_CODE", ugbC);
if (CustomInfo == "1")
{
//成分偏差
QcmBaseQuery.NitializeChemBias(ultras[6], true, this.ob);
QcmBaseQuery.BindColumn(ultras[6], "STD_CODE", ugb);
//冶金规范码
QcmBaseQuery.NitializeMSC(ultras[10], false, this.ob, msc);
QcmBaseQuery.BindColumn(ultras[10], "MSC", ugb);
}
if (CustomInfo == "2" || CustomInfo == "3" || CustomInfo == "4")
{
//标准名称
if (CustomInfo == "2")
{
QcmBaseQuery.NitializeInnerStandard(ultras[7], false, this.ob);
//成分偏差
QcmBaseQuery.NitializeChemBias(ultras[6], true, this.ob);
QcmBaseQuery.BindColumn(ultras[6], "STD_CODE", ugb);
}
else if (CustomInfo == "3")
QcmBaseQuery.NitializeAlphaStandard(ultras[7], false, this.ob);
else
QcmBaseQuery.NitializeOtherStandard(ultras[7], false, this.ob);
QcmBaseQuery.BindColumn(ultras[7], "STD_CODE_NK", ugb);
//工序
QcmBaseQuery.NitializeProcess(ultras[8], true, this.ob);
QcmBaseQuery.BindColumn(ultras[8], "PROCESS_CODE", ugb);
//钢种
//QcmBaseQuery.NitializeGrade(ultras[9], true, this.ob);
//QcmBaseQuery.BindColumn(ultras[9], "GRADECODE", ugb);
}
//限制元素
QcmBaseQuery.NitializeChemicalElement(ultras[11], true, this.ob);
QcmBaseQuery.BindColumn(ultras[11], "ELE_CODE", ugbC);
//替代元素
QcmBaseQuery.BindColumn(ultras[0], "REP_MIN_SIGN", ugbC);
QcmBaseQuery.BindColumn(ultras[1], "REP_MAX_SIGN", ugbC);
QcmBaseQuery.BindColumn(ultras[2], "REP_CODE", ugbC);
QcmBaseQuery.NitializeProductBigType(ultras[12], false, ob);
QcmBaseQuery.BindColumn(ultras[12], "PRODUC_HEAD", ugb);
}
private void Group()
{
//PopupGroup
ultraGrid1.UpdateData();
List index = new List();
string cic = "";
foreach (var pRow in ultraGrid1.Rows)
{
foreach (var cRow in pRow.ChildBands[0].Rows)
{
if (cRow.GetValue("CHC").ToLower() == "true")
{
if (cRow.GetValue("VALIDFLAG") == "")
{
MessageUtil.ShowWarning("请先保存选择的记录!");
return;
}
index.Add(cRow.GetValue("INDEX_SEQ"));
cic = pRow.GetValue("CIC");
}
}
if (index.Count > 0) break;
}
if (index.Count == 0)
{
MessageUtil.ShowWarning("请选择从记录!");
return;
}
PopupGroup popup = new PopupGroup();
if (popup.ShowDialog() != System.Windows.Forms.DialogResult.OK)
{
return;
}
ServerHelper.SetData("com.steering.pss.qcm.CoreChemStandard.group",
new object[] { index, cic, popup.NumGroupNum.Value.ToString3() }, ob);
MessageUtil.ShowTips("分组成功!");
_isEx = true;
_cic = cic;
DoQuery();
}
private void CancelGroup()
{
List index = new List();
string cic = "";
foreach (var pRow in ultraGrid1.Rows)
{
foreach (var cRow in pRow.ChildBands[0].Rows)
{
if (cRow.GetValue("CHC").ToLower() == "true")
{
index.Add(cRow.GetValue("INDEX_SEQ"));
cic = pRow.GetValue("CIC");
}
}
if (index.Count > 0) break;
}
if (index.Count == 0)
{
MessageUtil.ShowWarning("请选择从记录!");
return;
}
if (MessageUtil.ShowYesNoAndQuestion("是否确认取消分组?") == System.Windows.Forms.DialogResult.OK)
{
return;
}
ServerHelper.SetData("com.steering.pss.qcm.CoreChemStandard.cancelGroup",
new object[] { index, cic }, ob);
MessageUtil.ShowTips("取消分组成功!");
_cic = cic;
_isEx = true;
DoQuery();
}
///
/// 查询条件
///
///
private ArrayList GetQueryData()
{
ArrayList list = new ArrayList();
//标准名称
string stdName = "";
if (ultraCheckStd.Checked)
stdName = ultraTextStd.Text.Trim();
list.Add(stdName);
//冶金规范码
string msc = "";
if (ultraCheckMSC.Checked)
{
msc = ultraTextMSC.Text.Trim();
}
list.Add(msc);
//是否包含无效
string valid = "1";
if (ultraCheckValid.Checked)
valid = "0";
list.Add(valid);
list.Add(stdCode);
return list;
}
///
/// 查询
///
private void DoQuery()
{
//查询交付标准、内控标准或者Alpha
ArrayList QueryConditon = GetQueryData();
//主表查询
dataTable1.Clear();
DataTable dt = ServerHelper.GetData("com.steering.pss.qcm.CoreChemStandard.getCoreChemStandard",
new Object[] { QueryConditon, CustomInfo, cic, msc, codeJg, steelCodes, produccodeNk, steelcodeNk, processCodeNk, modelCode }, this.ob);
GridHelper.CopyDataToDatatable(ref dt, ref this.dataTable2, true);
//从表查询
DataTable dt1 = ServerHelper.GetData("com.steering.pss.qcm.CoreChemStandard.getCoreChemStandardC",
new Object[] { QueryConditon, CustomInfo, cic, msc, codeJg, steelCodes, produccodeNk, steelcodeNk, processCodeNk, modelCode }, this.ob);
GridHelper.CopyDataToDatatable(ref dt1, ref this.dataTable1, true);
//不同颜色区分是否有效数据
QcmBaseCommon.SetGridColor(ultraGrid1, "VALIDFLAG", "无效");
QcmBaseCommon.SetUltraGridNoEdit(ultraGrid1);
UltraGridBand bc = ultraGrid1.DisplayLayout.Bands[0];
UltraGridBand bcC = ultraGrid1.DisplayLayout.Bands[1];
UltraGridColumn[] col = new UltraGridColumn[] { bc.Columns["MEMO"],bc.Columns["MSC"], bc.Columns["STD_CODE_NK"] ,
bcC.Columns["ISCHECK"],bcC.Columns["ISJUDGE"],bcC.Columns["ISQUOTE"],bc.Columns["MODEL_DESC"],
bcC.Columns["COMPLEX_TYPE"],bcC.Columns["STDMIN"],bcC.Columns["STDMAX"]};
//GridHelper.RefreshAndAutoSizeExceptRows(ultraGrid1, col);
//isSelect = 0;
//定位行和展开行
UltraGridRow[] rows1 = GridHelper.GetRowsWithKey(ultraGrid1, new string[] { "CIC" }, new string[] { _cic });
if (rows1.Length > 0)
{
rows1[0].Activate();
if (_isEx)
rows1[0].ExpandAll();
}
_isEx = false;
_cic = "";
foreach (UltraGridRow ugr in ultraGrid1.Rows)
{
ultraGrid1.UpdateData();
DataView dv = new DataView(dataTable1);
DataTable newdt = dv.ToTable(false, "CIC", "CHEM_NAME");
DataRow[] dr = newdt.Select("CIC='" + ugr.Cells["CIC"].Value.ToString() + "'", "");
ugr.Cells["COUNT"].Value = newdt.AsEnumerable().Where(a => a["CIC"].ToString() == ugr.Cells["CIC"].Value.ToString()).Distinct(new DataRowComparer()).Count();
ugr.Cells["CHKNK"].Value = "选择";
}
ultraGrid1.UpdateData();
dataTable1.AcceptChanges();
dataTable2.AcceptChanges();
//清空复制数据
//_copyedRows.Clear();
}
private void DoQuery1()
{
//查询交付标准、内控标准或者Alpha
ArrayList QueryConditon = GetQueryData();
//主表查询
dataTable1.Clear();
DataTable dt = ServerHelper.GetData("com.steering.pss.qcm.CoreChemStandard.getComChemNK",
new Object[] { msc }, this.ob);
GridHelper.CopyDataToDatatable(ref dt, ref this.dataTable2, true);
//从表查询
DataTable dt1 = ServerHelper.GetData("com.steering.pss.qcm.CoreChemStandard.getComChemNKC",
new Object[] { msc }, this.ob);
GridHelper.CopyDataToDatatable(ref dt1, ref this.dataTable1, true);
//不同颜色区分是否有效数据
QcmBaseCommon.SetGridColor(ultraGrid1, "VALIDFLAG", "无效");
QcmBaseCommon.SetUltraGridNoEdit(ultraGrid1);
UltraGridBand bc = ultraGrid1.DisplayLayout.Bands[0];
UltraGridBand bcC = ultraGrid1.DisplayLayout.Bands[1];
UltraGridColumn[] col = new UltraGridColumn[] { bc.Columns["MEMO"],bc.Columns["MSC"], bc.Columns["STD_CODE_NK"] ,
bcC.Columns["ISCHECK"],bcC.Columns["ISJUDGE"],bcC.Columns["ISQUOTE"],bc.Columns["MODEL_DESC"],
bcC.Columns["COMPLEX_TYPE"],bcC.Columns["STDMIN"],bcC.Columns["STDMAX"]};
//GridHelper.RefreshAndAutoSizeExceptRows(ultraGrid1, col);
//isSelect = 0;
//定位行和展开行
UltraGridRow[] rows1 = GridHelper.GetRowsWithKey(ultraGrid1, new string[] { "CIC" }, new string[] { _cic });
if (rows1.Length > 0)
{
rows1[0].Activate();
if (_isEx)
rows1[0].ExpandAll();
}
_isEx = false;
_cic = "";
foreach (UltraGridRow ugr in ultraGrid1.Rows)
{
ultraGrid1.UpdateData();
DataView dv = new DataView(dataTable1);
DataTable newdt = dv.ToTable(false, "CIC", "CHEM_NAME");
DataRow[] dr = newdt.Select("CIC='" + ugr.Cells["CIC"].Value.ToString() + "'", "");
ugr.Cells["COUNT"].Value = newdt.AsEnumerable().Where(a => a["CIC"].ToString() == ugr.Cells["CIC"].Value.ToString()).Distinct(new DataRowComparer()).Count();
}
ultraGrid1.UpdateData();
dataTable1.AcceptChanges();
dataTable2.AcceptChanges();
//清空复制数据
//_copyedRows.Clear();
}
public void QueryPurchaseAgreement(string stdCodeNk)
{
dataTable1.Clear();
dataTable2.Clear();
DataTable dtP = ServerHelper.GetData("com.steering.pss.qcm.CoreChemStandard.getPurchaseAgreementCic",
new object[] { stdCodeNk }, ob);
GridHelper.CopyDataToDatatable(ref dtP, ref this.dataTable2, true);
DataTable dtC = ServerHelper.GetData("com.steering.pss.qcm.CoreChemStandard.getPurchaseAgreementChem",
new object[] { stdCodeNk }, ob);
GridHelper.CopyDataToDatatable(ref dtC, ref this.dataTable1, 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()
{
try
{
ultraGrid1.UpdateData();
}
catch (Exception)
{
MessageBox.Show("数据不合法,请重新输入!", "提示", MessageBoxButtons.OK, MessageBoxIcon.Information);
return;
}
DataRow comBaseStdRow = null;
string style = "G";
if (CustomInfo == "2")
{
comBaseStdRow = GetComBaseStdRowByPk(stdCode);
if (comBaseStdRow["ACCEPT_BID"].ToString() == "1")
{
style = "N";
}
else
{
style = "L";
}
}
if (CustomInfo == "3")
style = "K";
if (CustomInfo == "4")
style = "S";
if (GetGridSelectCount() == 0)
{
MessageBox.Show("请选择记录!", "提示", MessageBoxButtons.OK, MessageBoxIcon.Information);
return;
}
if (CustomInfo == "2")
{
/*if (comBaseStdRow["ACCEPT_BID"].ToString() == "1" && comBaseStdRow["UNIT_CODE"].ToString() != UserInfo.GetDeptid()
&& UserInfo.GetUserID() != "admin" && UserInfo.GetUserID() != "longjinhua")
{
MessageUtil.ShowWarning("该记录只有[" + comBaseStdRow["UNIT_DESC"].ToString() + "]的成员才能操作!");
return;
}*/
//限制同一钢种下的成分数
var groupRows = ultraGrid1.Rows.Where(a => a.GetValue("CHC") == "True" && a.GetValue("VALIDFLAG") == "").GroupBy(
a => new { gradeCode = a.GetValue("GRADECODE"), gradeName = a.GetValue("GRADENAME") }).Select(
a => new { gradeCode = a.Key.gradeCode, gradeName = a.Key.gradeName, cnt = a.Count() });
foreach (var groupRow in groupRows)
{
int cnt = FrmStandarNSub.GetSameGradeCnt(groupRow.gradeCode, stdCode, ob);
if (cnt + groupRow.cnt > 9)
{
MessageUtil.ShowWarning("钢种:" + groupRow.gradeName + " 已存在" + cnt + "条成分内控," + "新增成分内控" + groupRow.cnt + "条,总数大于9条,无法新增!");
return;
}
}
//验证碳当量
foreach (var pRow in ultraGrid1.Rows)
{
var chkRowsC = pRow.ChildBands[0].Rows.Where(a => a.GetValue("CHC") == "True");
if (chkRowsC.Count() == 0) continue;
//var groupSeqRows = pRow.ChildBands[0].Rows.GroupBy(a => a.GetValue("GROUP_SEQ"));
//foreach (var groupRow in groupSeqRows)
//{
// var ce2Rows = groupRow.Where(a => a.GetValue("CHEM_CODE") == "C030" || a.GetValue("CHEM_CODE") == "C053"
// || a.GetValue("CHEM_CODE") == "C060");
// var cePRows = groupRow.Where(a => a.GetValue("CHEM_CODE") == "C031");
// if (ce2Rows.Count() > 0 && cePRows.Count() > 0 && ce2Rows.Where(a => a.GetValue("ELE_CODE") != "").Count() == 0
// && cePRows.Where(a => a.GetValue("ELE_CODE") != "").Count() == 0)
// {
// MessageUtil.ShowWarning("成分索引:" + pRow.GetValue("CIC") + "包含两种碳当量元素,必须维护限制元素!");
// pRow.Activate();
// return;
// }
//}
//var cRows = pRow.ChildBands[0].Rows.Where(a => (a.GetValue("CHEM_CODE") == "C030" || a.GetValue("CHEM_CODE") == "C053"
// || a.GetValue("CHEM_CODE") == "C060") || a.GetValue("CHEM_CODE") == "C031");
//if (cRows.Count() > 1 && cRows.Where(a => a.GetValue("ELE_CODE") != "").Count() == 0)
//{
//}
}
// 验证成分项目是否重复
//var pRows = ultraGrid1.Rows;
//foreach (var row in pRows)
//{
// var chkRowsC = row.ChildBands[0].Rows.Where(a => a.GetValue("CHC") == "True");
// if (chkRowsC.Count() == 0) continue;
// var groupRowsC = row.ChildBands[0].Rows.Where(a => a.GetValue("CHC") == "True" || a.GetValue("VALIDFLAG") != "").GroupBy(
// a => a.GetValue("CHEM_CODE")).Select(a => a.Key).ToList();
// //验证保存的索引码是否重复
// var pRows2 = pRows.Where(a => a.GetValue("CIC") != row.GetValue("CIC") && a.GetValue("GRADECODE") == row.GetValue("GRADECODE"));
// foreach (var row2 in pRows2)
// {
// var chkRowsC2 = row2.ChildBands[0].Rows.Where(a => a.GetValue("CHC") == "True");
// if (chkRowsC2.Count() == 0) continue;
// var groupRowsC2 = row2.ChildBands[0].Rows.Where(a => a.GetValue("CHC") == "True" || a.GetValue("VALIDFLAG") != "").GroupBy(
// a => a.GetValue("CHEM_CODE")).Select(a => a.Key).ToList();
// if (groupRowsC2.Count() == groupRowsC.Count())
// {
// bool isSame = true;
// foreach (var groupRowC in groupRowsC)
// {
// if (!groupRowsC2.Contains(groupRowC))
// {
// isSame = false;
// }
// }
// if (isSame)
// {
// MessageUtil.ShowWarning("成分索引码:" + row.GetValue("CIC") + "与" + row2.GetValue("CIC") + "中的成分项目重复!");
// return;
// }
// }
// }
// // 验证是否与数据库中的重复
// CoreClientParam ccp = new CoreClientParam();
// ccp.ServerName = "com.steering.pss.qcm.CoreChemStandard";
// ccp.MethodName = "getChemByGrade";
// ccp.ServerParams = new object[] { groupRowsC, stdCode, row.GetValue("GRADECODE"), row.GetValue("CIC"), "保存" };
// ccp = ob.ExecuteSortResultByQueryToDataTable(ccp, CoreInvokeType.Internal);
// if (ccp.ReturnObject.ToString2() != "")
// {
// MessageUtil.ShowWarning(ccp.ReturnObject.ToString2());
// return;
// }
//}
}
ArrayList baseData = new ArrayList();
ArrayList childData = new ArrayList();
for (int i = 0; i < ultraGrid1.Rows.Count; i++)
{
DataRow cicRow = null;
UltraGridRow ugr = ultraGrid1.Rows[i];
//主表操作
if (Convert.ToBoolean(ugr.Cells["CHC"].Value))
{
if (ugr.GetValue("VALIDFLAG") != "")
{
cicRow = GetMscCicByCic(ugr.GetValue("CIC"));
}
if (comBaseStdRow != null && comBaseStdRow["ACCEPT_BID"].ToString() == "0" && cicRow != null)
{
string[] units = ClsBaseInfo.GetUnitByUserName(cicRow["CREATE_NAME"].ToString(), ob, "002001007", "002001001", "002023005");
/*if (units[0] != UserInfo.GetDeptid() && UserInfo.GetUserID() != "admin")
{
MessageUtil.ShowWarning("该记录只有[" + units[1] + "]才能操作!");
ugr.Activate();
return;
}*/
}
StdCicObject com = GetBaseData(ugr, cicRow);
if (com == null)
{
MessageBox.Show(errMessage, "提示", MessageBoxButtons.OK, MessageBoxIcon.Warning);
return;
}
_cic = com.Cic;
baseData.Add(JSONFormat.Format(com));
}
//从表操作
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 ugrc = ugr.ChildBands[0].Rows[j];
if (Convert.ToBoolean(ugrc.Cells["CHC"].Value))
{
if (ugr.GetValue("VALIDFLAG") != "")
{
cicRow = GetMscCicByCic(ugr.GetValue("CIC"));
}
if (comBaseStdRow != null && comBaseStdRow["ACCEPT_BID"].ToString() == "0" && cicRow != null)
{
string[] units = ClsBaseInfo.GetUnitByUserName(cicRow["CREATE_NAME"].ToString(), ob, "002001007", "002001001", "002023005");
/*if (units[0] != UserInfo.GetDeptid() && UserInfo.GetUserID() != "admin")
{
MessageUtil.ShowWarning("该记录只有[" + units[1] + "]才能操作!");
ugrc.Activate();
return;
}*/
}
//验证是否被计划使用
//if (CustomInfo == "2")
//{
// string plnMsg = FrmStandardN.CheckPlnCic(ugr.GetValue("CIC"), ob);
// if (plnMsg != "")
// {
// MessageUtil.ShowWarning(plnMsg);
// ugrc.Activate();
// return;
// }
//}
StdChemObject comc = GetChildData(ugrc, cicRow);
if (comc == null)
{
MessageBox.Show(errMessage, "提示", MessageBoxButtons.OK, MessageBoxIcon.Warning);
return;
}
_cic = comc.Cic;
_isEx = true;
childData.Add(JSONFormat.Format(comc));
}
}
}
}
if (MessageBox.Show("是否保存选择记录?", "提示", MessageBoxButtons.YesNo, MessageBoxIcon.Question) == DialogResult.No)
{
return;
}
if (baseData.Count > 0 || childData.Count > 0)
{
int count = ServerHelper.SetData("com.steering.pss.qcm.CoreChemStandard.saveCoreChemStandard",
new Object[] { baseData, childData, style }, this.ob);
if (count > 0)
{
MessageBox.Show("保存成功", "提示", MessageBoxButtons.OK, MessageBoxIcon.Information);
DoQuery();
}
}
}
///
/// 删除或者恢复
///
///
private void DoDeleteOrResume(Boolean flag)
{
try
{
ultraGrid1.UpdateData();
}
catch (Exception)
{
MessageBox.Show("数据不合法,请重新输入!", "提示", MessageBoxButtons.OK, MessageBoxIcon.Warning);
return;
}
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;
}*/
if (!flag)
{
//限制同一钢种下的成分数
var groupRows = ultraGrid1.Rows.Where(a => a.GetValue("CHC") == "True" && a.GetValue("VALIDFLAG") == "无效").GroupBy(
a => new { gradeCode = a.GetValue("GRADECODE"), gradeName = a.GetValue("GRADENAME") }).Select(
a => new { gradeCode = a.Key.gradeCode, gradeName = a.Key.gradeName, cnt = a.Count() });
foreach (var groupRow in groupRows)
{
int cnt = FrmStandarNSub.GetSameGradeCnt(groupRow.gradeCode, stdCode, ob);
if (cnt + groupRow.cnt > 9)
{
MessageUtil.ShowWarning("钢种:" + groupRow.gradeName + " 已存在" + cnt + "条成分内控," + "恢复成分内控" + groupRow.cnt + "条,总数大于9条,无法恢复!");
return;
}
}
// 验证成分项目是否重复
var pRows = ultraGrid1.Rows;
foreach (var row in pRows)
{
var chkRowsC = row.ChildBands[0].Rows.Where(a => a.GetValue("CHC") == "True");
if (chkRowsC.Count() == 0) continue;
var groupRowsC = row.ChildBands[0].Rows.Where(a => a.GetValue("CHC") == "True" || a.GetValue("VALIDFLAG") != "无效").GroupBy(
a => a.GetValue("CHEM_CODE")).Select(a => a.Key).ToList();
//验证保存的索引码是否重复
var pRows2 = pRows.Where(a => a.GetValue("CIC") != row.GetValue("CIC") && a.GetValue("GRADECODE") == row.GetValue("GRADECODE"));
foreach (var row2 in pRows2)
{
var chkRowsC2 = row2.ChildBands[0].Rows.Where(a => a.GetValue("CHC") == "True");
if (chkRowsC2.Count() == 0) continue;
var groupRowsC2 = row2.ChildBands[0].Rows.Where(a => a.GetValue("CHC") == "True" || a.GetValue("VALIDFLAG") != "无效").GroupBy(
a => a.GetValue("CHEM_CODE")).Select(a => a.Key).ToList();
if (groupRowsC2.Count() == groupRowsC.Count())
{
bool isSame = true;
foreach (var groupRowC in groupRowsC)
{
if (!groupRowsC2.Contains(groupRowC))
{
isSame = false;
}
}
if (isSame)
{
MessageUtil.ShowWarning("恢复后的成分索引码:" + row.GetValue("CIC") + "与" + row2.GetValue("CIC") + "中的成分项目重复,无法恢复!");
return;
}
}
}
// 验证是否与数据库中的重复
CoreClientParam ccp = new CoreClientParam();
ccp.ServerName = "com.steering.pss.qcm.CoreChemStandard";
ccp.MethodName = "getChemByGrade";
ccp.ServerParams = new object[] { groupRowsC, stdCode, row.GetValue("GRADECODE"), row.GetValue("CIC"), "恢复" };
ccp = ob.ExecuteSortResultByQueryToDataTable(ccp, CoreInvokeType.Internal);
if (ccp.ReturnObject.ToString2() != "")
{
MessageUtil.ShowWarning(ccp.ReturnObject.ToString2());
return;
}
}
}
}
ArrayList baseList = new ArrayList();
ArrayList childList = new ArrayList();
foreach (UltraGridRow ugr in ultraGrid1.Rows)
{
if (Convert.ToBoolean(ugr.Cells["CHC"].Value.ToString()))
{
if (CheckAuthority(ugr) == false)
{
MessageUtil.ShowWarning(errMessage);
return;
}
DataRow rowCic = null;
if (ugr.GetValue("VALIDFLAG") != "")
{
rowCic = GetMscCicByCic(ugr.GetValue("CIC"));
}
if (comBaseStdRow != null && comBaseStdRow["ACCEPT_BID"].ToString() == "0" && rowCic != null)
{
string[] units = ClsBaseInfo.GetUnitByUserName(rowCic["CREATE_NAME"].ToString(), ob, "002001007", "002001001", "002023005");
/*if (units[0] != UserInfo.GetDeptid() && UserInfo.GetUserID() != "admin")
{
MessageUtil.ShowWarning("该记录只有[" + units[1] + "]才能操作!");
ugr.Activate();
return;
}*/
}
//验证是否被计划使用
//if (CustomInfo == "2")
//{
// string plnMsg = FrmStandardN.CheckPlnCic(ugr.GetValue("CIC"), ob);
// if (plnMsg != "")
// {
// MessageUtil.ShowWarning(plnMsg);
// ugr.Activate();
// return;
// }
//}
if (CheckDataParent(ugr, rowCic, flag) == false)
{
return;
}
if (CheckRows(ugr) && flag)
{
MessageBox.Show("无效记录不能作废!", "提示", MessageBoxButtons.OK, MessageBoxIcon.Warning);
return;
}
if (ugr.Cells["VALIDFLAG"].Value.ToString().Equals("提交审核") || ugr.Cells["VALIDFLAG"].Value.ToString().Equals("已审核"))
{
MessageBox.Show("提交审核或已审核记录不能作废!", "提示", MessageBoxButtons.OK, MessageBoxIcon.Warning);
return;
}
if (!CheckRows(ugr) && !flag)
{
MessageBox.Show("有效记录不能恢复!", "提示", MessageBoxButtons.OK, MessageBoxIcon.Warning);
return;
}
StdCicObject com = new StdCicObject();
com.Cic = ugr.Cells["CIC"].Value.ToString();
com.DeleteName = UserInfo.GetUserName();
baseList.Add(JSONFormat.Format(com));
if (flag && ugr.HasChild())
{
if (MessageBox.Show("所对应子记录都将作废!", "提示", MessageBoxButtons.YesNo, MessageBoxIcon.Question) == DialogResult.No)
{
return;
}
foreach (UltraGridRow ugrC in ugr.ChildBands[0].Rows)
{
StdChemObject comC = new StdChemObject();
comC.Cic = ugrC.Cells["CIC"].Value.ToString();
comC.IndexSeq = ugrC.Cells["INDEX_SEQ"].Value.ToString();
comC.DeleteName = UserInfo.GetUserName();
childList.Add(JSONFormat.Format(comC));
}
}
_cic = ugr.Cells["CIC"].Value.ToString();
}
//如果主表行拥有子项
if (ugr.HasChild())
{
foreach (UltraGridRow ugrC in ugr.ChildBands[0].Rows)
{
//如果子项被勾选
if (Convert.ToBoolean(ugrC.Cells["CHC"].Value.ToString()))
{
DataRow rowCic = null;
if (ugr.GetValue("VALIDFLAG") != "")
{
rowCic = GetMscCicByCic(ugr.GetValue("CIC"));
}
if (comBaseStdRow != null && comBaseStdRow["ACCEPT_BID"].ToString() == "0" && rowCic != null)
{
string[] units = ClsBaseInfo.GetUnitByUserName(rowCic["CREATE_NAME"].ToString(), ob, "002001007", "002001001", "002023005");
/*if (units[0] != UserInfo.GetDeptid() && UserInfo.GetUserID() != "admin")
{
MessageUtil.ShowWarning("该记录只有[" + units[1] + "]才能操作!");
ugrC.Activate();
return;
}*/
}
//验证是否被计划使用
//if (CustomInfo == "2")
//{
// string plnMsg = FrmStandardN.CheckPlnCic(ugr.GetValue("CIC"), ob);
// if (plnMsg != "")
// {
// MessageUtil.ShowWarning(plnMsg);
// ugrC.Activate();
// return;
// }
//}
if (CheckAuthority(ugrC) == false)
{
MessageUtil.ShowWarning(errMessage);
return;
}
if (!flag && CheckRows(ugrC.ParentRow) && !Convert.ToBoolean(ugrC.ParentRow.Cells["CHC"].Value))
{
MessageBox.Show("请选择主记录", "提示", MessageBoxButtons.OK, MessageBoxIcon.Warning);
return;
}
if (CheckRows(ugrC) && flag)
{
MessageBox.Show("无效记录不能作废", "提示", MessageBoxButtons.OK, MessageBoxIcon.Warning);
return;
}
if (!CheckRows(ugrC) && !flag)
{
MessageBox.Show("有效记录不能恢复", "提示", MessageBoxButtons.OK, MessageBoxIcon.Warning);
return;
}
if (flag)
{
if (ugr.Cells["VALIDFLAG"].Value.ToString() != ""
&& ugrC.ParentRow.Cells["VALIDFLAG"].Value.ToString() != "录入状态"
&& ugrC.ParentRow.Cells["VALIDFLAG"].Value.ToString() != "无效")
{
MessageUtil.ShowWarning("主记录为提交审核或已审核状态时,无法作废");
return;
}
}
StdChemObject comC = new StdChemObject();
comC.Cic = ugrC.Cells["CIC"].Value.ToString();
comC.IndexSeq = ugrC.Cells["INDEX_SEQ"].Value.ToString();
comC.DeleteName = UserInfo.GetUserName();
childList.Add(JSONFormat.Format(comC));
_cic = ugr.Cells["CIC"].Value.ToString();
_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.CoreChemStandard.deleteOrResume", new Object[] { baseList, childList, flag }, this.ob);
if (count > 0)
{
DoQuery();
MessageBox.Show((flag ? "作废" : "恢复") + "成功!", "提示", MessageBoxButtons.OK, MessageBoxIcon.Question);
}
}
}
///
/// 行记录是否有效
///
///
///
private bool CheckRows(UltraGridRow ugr)
{
if (ugr.Cells["VALIDFLAG"].Value.ToString().Equals("无效"))
return true;
else
return false;
}
private void ultraGrid1_AfterRowInsert(object sender, RowEventArgs e)
{
string style = "";
if (CustomInfo == "1")
style = "G";
if (CustomInfo == "2")
style = "N";
if (CustomInfo == "3")
style = "K";
if (CustomInfo == "4")
style = "S";
UltraGridRow ugr = ultraGrid1.DisplayLayout.ActiveRow;
if (!ugr.HasParent()) //主表自动填充主键(成分索引号)
{
string sic = "";
int temp = 0;
for (int i = 0; i < ultraGrid1.Rows.Count - 1; i++)
{
string str = ultraGrid1.Rows[i].Cells["CIC"].Value.ToString().Substring(4, 6);
if (Convert.ToInt32(str) > temp)
temp = Convert.ToInt32(str);
}
sic = "CIC" + style + string.Format("{0:000000}", temp + 1);
ugr.Cells["CIC"].Value = sic;
//ugr.Cells["COUNT"].Value = "0";
}
else
{
ugr.Cells["ISCHECK"].Value = true;
ugr.Cells["ISJUDGE"].Value = true;
ugr.Cells["ISQUOTE"].Value = true;
}
//增加行如果没有勾选则不可编辑
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)
{
if (e.Cell.Column.Key.Equals("STDMIN") || e.Cell.Column.Key.Equals("STDMAX") || e.Cell.Column.Key.Equals("STDMIN")
|| e.Cell.Column.Key.Equals("ELE_MIN") || e.Cell.Column.Key.Equals("ELE_MAX") || e.Cell.Column.Key.Equals("SIZE_MIN2") ||
e.Cell.Column.Key.Equals("SIZE_MIN") || e.Cell.Column.Key.Equals("SIZE_MAX2") || e.Cell.Column.Key.Equals("SIZE_MAX"))
return;
ultraGrid1.UpdateData();
UltraGridRow ugr = ultraGrid1.ActiveRow;
if (e.Cell.Column.Key.Equals("CHEM_CODE")) /// 成分下拉框操作
{
ugr.Cells["CHEM_NAME"].Value = ugr.Cells["CHEM_CODE"].Text;
string chemCode = ugr.Cells["CHEM_CODE"].Value.ToString();
DataRow[] dr = ((DataTable)ultras[2].DataSource).Select("CHEM_CODE ='" + chemCode + "'");
if (dr.Length > 0)
{
ugr.Cells["XH"].Value = Convert.ToInt32(dr[0][0].ToString().Substring(1));
ugr.Cells["CHEM_TYPE"].Value = dr[0][2];
ugr.Cells["CHEM_FORMULA"].Value = dr[0][3];
}
else
{
ugr.Cells["CHEM_NAME"].Value = "";
ugr.Cells["CHEM_TYPE"].Value = "";
ugr.Cells["CHEM_FORMULA"].Value = "";
}
}
if (e.Cell.Column.Key.Equals("")) //接箍操作
{
ugr.Cells["SPEC_JG_DESC"].Value = ugr.Cells["SPEC_JG"].Text;
}
if (e.Cell.Column.Key.Equals("MSC"))//冶金规范码
{
string msc = ugr.Cells["MSC"].Value.ToString();
DataRow[] dr = ((DataTable)ultras[10].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_B"].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];
}
}
if (e.Cell.Column.Key.Equals("SIZE_CODE2")) //限制规格描述一
{
ugr.Cells["SIZE_NAME2"].Value = ugr.Cells["SIZE_CODE2"].Text;
string code2 = ugr.Cells["SIZE_CODE2"].Value.ToString();
string code = ugr.Cells["SIZE_CODE"].Value.ToString();
if (!code2.Equals("") && !code.Equals("") && code.Equals(code2))
{
MessageBox.Show("请重新选择限制规格<一>:限制规格", "提示", MessageBoxButtons.OK, MessageBoxIcon.Warning);
ugr.Cells["SIZE_NAME2"].Value = "";
ugr.Cells["SIZE_CODE2"].Value = "";
return;
}
if (ugr.Cells["SIZE_CODE2"].Value.ToString() == "")
{
ugr.Cells["SIZE_MIN_SIGN2"].Value = "";
ugr.Cells["SIZE_MIN2"].Value = "";
ugr.Cells["SIZE_MAX_SIGN2"].Value = "";
ugr.Cells["SIZE_MAX2"].Value = "";
}
}
if (e.Cell.Column.Key.Equals("SIZE_CODE")) //限制规格描述二
{
ugr.Cells["SIZE_NAME"].Value = ugr.Cells["SIZE_CODE"].Text;
string code2 = ugr.Cells["SIZE_CODE2"].Value.ToString();
string code = ugr.Cells["SIZE_CODE"].Value.ToString();
if (!code2.Equals("") && !code.Equals("") && code.Equals(code2))
{
MessageBox.Show("请重新选择限制规格<二>:限制规格", "提示", MessageBoxButtons.OK, MessageBoxIcon.Information);
ugr.Cells["SIZE_NAME"].Value = "";
ugr.Cells["SIZE_CODE"].Value = "";
return;
}
if (ugr.Cells["SIZE_CODE"].Value.ToString() == "")
{
ugr.Cells["SIZE_MIN_SIGN"].Value = "";
ugr.Cells["SIZE_MIN"].Value = "";
ugr.Cells["SIZE_MAX_SIGN"].Value = "";
ugr.Cells["SIZE_MAX"].Value = "";
}
}
if (e.Cell.Column.Key.Equals("ELE_CODE")) //限制元素描述
{
ugr.Cells["ELE_NAME"].Value = ugr.Cells["ELE_CODE"].Text;
if (ugr.Cells["ELE_CODE"].Value.ToString() == "")
{
ugr.Cells["ELE_MIN_SIGN"].Value = "";
ugr.Cells["ELE_MIN"].Value = "";
ugr.Cells["ELE_MAX_SIGN"].Value = "";
ugr.Cells["ELE_MAX"].Value = "";
ugr.Update();
}
}
if (e.Cell.Column.Key.Equals("REP_CODE")) //替代元素描述
{
ugr.Cells["REP_NAME"].Value = ugr.Cells["REP_CODE"].Text;
if (ugr.Cells["REP_CODE"].Value.ToString() == "")
{
ugr.Cells["REP_MIN_SIGN"].Value = "";
ugr.Cells["REP_MIN"].Value = "";
ugr.Cells["REP_MAX_SIGN"].Value = "";
ugr.Cells["REP_MAX"].Value = "";
ugr.Cells["REP_VAL"].Value = "";
}
}
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"))
{
e.Cell.Row.Cells[i].Activation = activation;
}
}
}
if (e.Cell.Column.Key.Equals("GRADECODE")) //钢种下拉框操作
{
ugr.Cells["GRADENAME"].Value = ugr.Cells["GRADECODE"].Text;
}
if (e.Cell.Column.Key.Equals("PROCESS_CODE")) //工序下拉框选择
{
ugr.Cells["PROCESS_DESC"].Value = ugr.Cells["PROCESS_CODE"].Text;
}
if (e.Cell.Column.Key.Equals("ISCHECK")) //是否检验
{
if (!Convert.ToBoolean(e.Cell.Value.ToString()))
{
ugr.Cells["ISJUDGE"].Value = false;
//ugr.Cells["ISQUOTE"].Value = false;
}
}
if (e.Cell.Column.Key.Equals("ISJUDGE"))
{
if (Convert.ToBoolean(ugr.Cells["ISJUDGE"].Value.ToString()))
{
ugr.Cells["ISCHECK"].Value = true;
}
}
if (e.Cell.Column.Key.Equals("STD_CODE_NK")) //内控标准选择
{
string stdCode = ugr.Cells["STD_CODE_NK"].Value.ToString();
ugr.Cells["STD_NAME_NK"].Value = ugr.Cells["STD_CODE_NK"].Text;
DataRow[] dr = ((DataTable)ultras[7].DataSource).Select("STD_CODE='" + stdCode + "'");
if (dr.Length > 0)
{
ugr.Cells["STDSTYLE"].Value = dr[0][2];
}
}
ultraGrid1.ActiveRow.Update();
ultraGrid1.UpdateData();
}
///
/// 从表数据
///
/// UltraGridRow
///
private StdChemObject GetChildData(UltraGridRow ugr, DataRow rowCic)
{
if (CheckAuthority(ugr) == false) return null;
if (rowCic != null && (rowCic["VALIDFLAG"].ToString() == "2" || rowCic["VALIDFLAG"].ToString() == "3"))
{
errMessage = "主记录为提交审核或已审核状态时,无法修改";
return null;
}
string cic = ugr.Cells["CIC"].Value.ToString().Trim();
string indexSeq = ugr.Cells["INDEX_SEQ"].Value.ToString().Trim();
string chemName = ugr.Cells["CHEM_NAME"].Value.ToString().Trim();
if (chemName.Equals(""))
{
errMessage = "请选择化学元素描述";
return null;
}
string chemCode = ugr.Cells["CHEM_CODE"].Value.ToString().Trim();
string wholeBacklog = ugr.Cells["CHEM_TYPE"].Value.ToString().Trim();
if (wholeBacklog.Equals("单一元素"))
wholeBacklog = "A";
else
wholeBacklog = "B";
string chemFormula = ugr.Cells["CHEM_FORMULA"].Value.ToString().Trim();
string isCheck = ugr.Cells["ISCHECK"].Value.ToString().Trim();
if (Convert.ToBoolean(isCheck))
{
isCheck = "1";
}
else isCheck = "0";
string isjudge = ugr.Cells["ISJUDGE"].Value.ToString().Trim();
if (Convert.ToBoolean(isjudge))
{
isjudge = "1";
}
else isjudge = "0";
string isquote = ugr.Cells["ISQUOTE"].Value.ToString().Trim();
if (Convert.ToBoolean(isquote))
{
isquote = "1";
}
else isquote = "0";
string complexType = ugr.Cells["COMPLEX_TYPE"].Value.ToString().Trim();
if (Convert.ToBoolean(complexType))
{
complexType = "1";
}
else
{
complexType = "0";
}
string stdminSign = ugr.Cells["STDMIN_SIGN"].Value.ToString().Trim();
string stdMin = ugr.Cells["STDMIN"].Value.ToString().Trim();
string stdmaxSign = ugr.Cells["STDMAX_SIGN"].Value.ToString().Trim();
string stdMax = ugr.Cells["STDMAX"].Value.ToString().Trim().Trim();
if (!stdminSign.Equals(""))
{
if (stdMin.Equals(""))
{
errMessage = "请输入标准范围下限值";
return null;
}
if (complexType.Equals("0"))
{
if (!StringUtil.IsNumber(stdMin))
{
errMessage = "标准范围下限值请输入数字";
return null;
}
}
else
{
if (!QcmBaseCommon.CheckElement(stdMin, this.ob))
{
errMessage = "标准范围下限值输入公式不合法,请重新输入";
return null;
}
}
}
else
{
if (!stdMin.Equals(""))
{
errMessage = "请选择标准范围下限符号";
return null;
}
}
if (stdminSign.Equals("=") && !stdmaxSign.Equals(""))
{
errMessage = "标准范围下限符号为'=',不能选择上限符号";
return null;
}
if (isjudge.Equals("1") && stdminSign.Equals("") && stdmaxSign.Equals(""))
{
errMessage = "请选择标准范围下限符号或者上限符号";
return null;
}
if (!stdmaxSign.Equals(""))
{
if (stdMax.Equals(""))
{
errMessage = "请输入标准范围上限值";
return null;
}
if (complexType.Equals("0"))
{
if (!StringUtil.IsNumber(stdMax))
{
errMessage = "标准范围上限值请输入数字";
return null;
}
}
else
{
if (!QcmBaseCommon.CheckElement(stdMin, this.ob))
{
errMessage = "标准范围上限值输入公式不合法,请重新输入";
}
}
}
else
{
if (!stdMax.Equals(""))
{
errMessage = "请选择标准范围上限符号";
return null;
}
}
if (complexType.Equals("0") && !stdMin.Equals("") && !stdMax.Equals("")) //&& double.Parse(stdMin) > double.Parse(stdMax)
{
int i = QcmBaseInfo.CheckStdData(stdminSign, stdmaxSign, stdMin, stdMax);
if (i == 0)
{
errMessage = "输入的数据不完整";
return null;
}
if (i == 1)
{
errMessage = "标准范围下限值与上限值相等,上下限符号请选择<=和>=";
return null;
}
if (i == 2)
{
errMessage = "标准范围下限值不能大于上限值";
return null;
}
}
string stdTarget = ugr.Cells["STDTARGET"].Value.ToString().Trim();
string modelCode = ugr.Cells["MODEL_CODE"].Value.ToString().Trim();
string modelDesc = ugr.Cells["MODEL_DESC"].Value.ToString().Trim();
string stdMemo = ugr.Cells["STDMEMO"].Value.ToString().Trim();
string ele_code = ugr.Cells["ELE_CODE"].Value.ToString().Trim();
string ele_name = ugr.Cells["ELE_NAME"].Value.ToString().Trim();
string ele_min_sign = ugr.Cells["ELE_MIN_SIGN"].Value.ToString().Trim();
string ele_min = ugr.Cells["ELE_MIN"].Value.ToString().Trim();
string ele_max_sign = ugr.Cells["ELE_MAX_SIGN"].Value.ToString().Trim();
string ele_max = ugr.Cells["ELE_MAX"].Value.ToString().Trim();
string repcode = ugr.Cells["REP_CODE"].Value.ToString().Trim();
string repname = ugr.Cells["REP_NAME"].Value.ToString().Trim();
string repminsign = ugr.Cells["REP_MIN_SIGN"].Value.ToString().Trim();
string repmin = ugr.Cells["REP_MIN"].Value.ToString().Trim();
string repmaxsign = ugr.Cells["REP_MAX_SIGN"].Value.ToString().Trim();
string repmax = ugr.Cells["REP_MAX"].Value.ToString().Trim();
string repval = ugr.Cells["REP_VAL"].Value.ToString().Trim();
string size_code2 = ugr.Cells["SIZE_CODE2"].Value.ToString().Trim();
string size_name2 = ugr.Cells["SIZE_NAME2"].Value.ToString().Trim();
string size_min_sign2 = ugr.Cells["SIZE_MIN_SIGN2"].Value.ToString().Trim();
string size_min2 = ugr.Cells["SIZE_MIN2"].Value.ToString().Trim();
string size_max_sign2 = ugr.Cells["SIZE_MAX_SIGN2"].Value.ToString().Trim();
string size_max2 = ugr.Cells["SIZE_MAX2"].Value.ToString().Trim();
string size_code = ugr.Cells["SIZE_CODE"].Value.ToString().Trim();
string size_name = ugr.Cells["SIZE_NAME"].Value.ToString().Trim();
string size_min_sign = ugr.Cells["SIZE_MIN_SIGN"].Value.ToString().Trim();
string size_min = ugr.Cells["SIZE_MIN"].Value.ToString().Trim();
string size_max_sign = ugr.Cells["SIZE_MAX_SIGN"].Value.ToString().Trim();
string size_max = ugr.Cells["SIZE_MAX"].Value.ToString().Trim();
string specJG = ugr.Cells["SPEC_JG"].Value.ToString().Trim();
string specJGDesc = ugr.Cells["SPEC_JG_DESC"].Value.ToString().Trim();
if (ele_min_sign.Equals("=") && !ele_max_sign.Equals(""))
{
errMessage = "限制元素下限符号为'=',不能选择上限符号";
return null;
}
if (size_min_sign2.Equals("=") && !size_max_sign2.Equals(""))
{
errMessage = "限制规格(一)下限符号为'=',不能选择上限符号";
return null;
}
if (size_min_sign.Equals("=") && !size_max_sign.Equals(""))
{
errMessage = "限制规格(二)下限符号为'=',不能选择上限符号";
return null;
}
if (repminsign.Equals("=") && !repmaxsign.Equals(""))
{
errMessage = "替代元素下限符号为'=',不能选择上限符号";
return null;
}
if (!ele_name.Equals(""))
{
if (ele_name.Equals(chemName))
{
errMessage = "化学元素描述不能与限制元素描述相同";
return null;
}
if (ele_min_sign.Equals("") && ele_max_sign.Equals(""))
{
errMessage = "请选择限制元素上限符号或者下限符号";
return null;
}
if (!ele_min_sign.Equals("") && ele_min.Equals(""))
{
errMessage = "请输入限制元素下限值";
return null;
}
if (ele_min_sign.Equals("") && !ele_min.Equals(""))
{
errMessage = "请选择限制元素下限符号";
return null;
}
if (!ele_max_sign.Equals("") && ele_max.Equals(""))
{
errMessage = "请输入限制元素上限值";
return null;
}
if (ele_max_sign.Equals("") && !ele_max.Equals(""))
{
errMessage = "请选择限制元素上限符号";
return null;
}
if (!ele_max.Equals("") && !StringUtil.IsNumber(ele_max))
{
errMessage = "限制元素上限值请输入数字";
return null;
}
if (!ele_min.Equals("") && !StringUtil.IsNumber(ele_min))
{
errMessage = "限制元素下限值请输入数字";
return null;
}
if (!ele_max_sign.Equals("") && !ele_min_sign.Equals("")) //&& Convert.ToInt32(ele_min) > Convert.ToInt32(ele_max)
{
int i = QcmBaseInfo.CheckStdData(ele_min_sign, ele_max_sign, ele_min, ele_max);
if (i == 0)
{
errMessage = "输入的数据不完整";
return null;
}
if (i == 1)
{
errMessage = "限制元素下限值与上限值相等,上下限符号请选择<=和>=";
return null;
}
if (i == 2)
{
errMessage = "限制元素下限值不能大于上限值";
return null;
}
}
}
else
{
if (!ele_max_sign.Equals("") || !ele_min_sign.Equals("") || !ele_min.Equals("") || !ele_max.Equals(""))
{
errMessage = "请选择限制元素描述";
return null;
}
}
//-------------------新增的7个字段-----------------------------------------
if (!repname.Equals(""))
{
if (repname.Equals(chemName))
{
errMessage = "化学元素描述不能与替代元素描述相同";
return null;
}
if (repminsign.Equals("") && repmaxsign.Equals(""))
{
errMessage = "请选择替代元素上限符号或者下限符号";
return null;
}
if (!repminsign.Equals("") && repmin.Equals(""))
{
errMessage = "请输入替代元素下限值";
return null;
}
if (repminsign.Equals("") && !repmin.Equals(""))
{
errMessage = "请选择替代元素下限符号";
return null;
}
if (!repmaxsign.Equals("") && repmax.Equals(""))
{
errMessage = "请输入替代元素上限值";
return null;
}
if (repmaxsign.Equals("") && !repmax.Equals(""))
{
errMessage = "请选择替代元素上限符号";
return null;
}
if (!repmax.Equals("") && !StringUtil.IsNumber(repmax))
{
errMessage = "替代元素上限值请输入数字";
return null;
}
if (!repmin.Equals("") && !StringUtil.IsNumber(repmin))
{
errMessage = "替代元素下限值请输入数字";
return null;
}
if (!repmaxsign.Equals("") && !repminsign.Equals("")) //&& Convert.ToInt32(repmin) > Convert.ToInt32(repmax)
{
int i = QcmBaseInfo.CheckStdData(repminsign, repmaxsign, repmin, repmax);
if (i == 0)
{
errMessage = "输入的数据不完整";
return null;
}
if (i == 1)
{
errMessage = "替代元素下限值与上限值相等,上下限符号请选择<=和>=";
return null;
}
if (i == 2)
{
errMessage = "替代元素下限值不能大于上限值";
return null;
}
}
}
else
{
if (!repmaxsign.Equals("") || !repminsign.Equals("") || !repmin.Equals("") || !repmax.Equals(""))
{
errMessage = "请选择替代元素描述";
return null;
}
}
//----------------新增的7个字段处理结束-------------
if (!specJGDesc.Equals("") && !specJGDesc.Equals("-1"))
{
if (!size_name.Equals("") || !size_name2.Equals(""))
{
errMessage = "存在接箍描述,不能选择限制规格(一)或者(二)";
return null;
}
}
if (!size_name.Equals("") || !size_name2.Equals(""))
{
if (!specJGDesc.Equals("") && !specJGDesc.Equals("-1"))
{
errMessage = "存在限制规格(一)或者限制规格(二),不能选择接箍描述";
return null;
}
}
if (!size_name2.Equals(""))
{
if (size_min_sign2.Equals("") && size_max_sign2.Equals(""))
{
errMessage = "请选择限制规格(一)下限符号或者上限符号";
return null;
}
if (!size_min_sign2.Equals("") && size_min2.Equals(""))
{
errMessage = "请输入限制规格(一)下限值";
return null;
}
if (size_min_sign2.Equals("") && !size_min2.Equals(""))
{
errMessage = "请选择限制规格(一)下限符号";
return null;
}
if (!size_max_sign2.Equals("") && size_max2.Equals(""))
{
errMessage = "请输入限制规格(一)下限值";
return null;
}
if (size_max_sign2.Equals("") && !size_max2.Equals(""))
{
errMessage = "请选择限制规格(一)下限符号";
return null;
}
if (!size_max2.Equals("") && !StringUtil.IsNumber(size_max2))
{
errMessage = "限制规格(一)上限值请输入数字";
return null;
}
if (!size_min2.Equals("") && !StringUtil.IsNumber(size_min2))
{
errMessage = "限制规格(一)下限值请输入数字";
return null;
}
if (!size_max2.Equals("") && !size_min2.Equals("")) //&& Convert.ToDouble(size_min2) > Convert.ToDouble(size_max2)
{
int i = QcmBaseInfo.CheckStdData(size_min_sign2, size_max_sign2, size_min2, size_max2);
if (i == 0)
{
errMessage = "输入的数据不完整";
return null;
}
if (i == 1)
{
errMessage = "限制规格(一)下限值与上限值相等,上下限符号请选择<=和>=";
return null;
}
if (i == 2)
{
errMessage = "限制规格(一)下限值不能大于上限值";
return null;
}
}
}
else
{
if (!size_min_sign2.Equals("") || !size_max2.Equals("") || !size_max2.Equals("") || !size_min2.Equals(""))
{
errMessage = "请选择限制规格(一)描述";
return null;
}
}
if (!size_name.Equals(""))
{
if (size_min_sign.Equals("") && size_max_sign.Equals(""))
{
errMessage = "请选择限制规格(二)下限符号或者上限符号";
return null;
}
if (!size_min_sign.Equals("") && size_min.Equals(""))
{
errMessage = "请输入限制规格(二)下限值";
return null;
}
if (size_min_sign.Equals("") && !size_min.Equals(""))
{
errMessage = "请选择限制规格(二)下限符号";
return null;
}
if (!size_max_sign.Equals("") && size_max.Equals(""))
{
errMessage = "请输入限制规格(二)下限值";
return null;
}
if (size_max_sign.Equals("") && !size_max.Equals(""))
{
errMessage = "请选择限制规格(二)下限符号";
return null;
}
if (!size_max.Equals("") && !StringUtil.IsNumber(size_max))
{
errMessage = "限制规格(二)上限值请输入数字";
return null;
}
if (!size_min.Equals("") && !StringUtil.IsNumber(size_min))
{
errMessage = "限制规格(二)下限值请输入数字";
return null;
}
if (!size_max.Equals("") && !size_min.Equals("")) //&& Convert.ToDouble(size_min) > Convert.ToDouble(size_max)
{
int i = QcmBaseInfo.CheckStdData(size_min_sign, size_max_sign, size_min, size_max);
if (i == 0)
{
errMessage = "输入的数据不完整";
return null;
}
if (i == 1)
{
errMessage = "限制规格(二)下限值与上限值相等,上下限符号请选择<=和>=";
return null;
}
if (i == 2)
{
errMessage = "限制规格(二)下限值不能大于上限值";
return null;
}
}
}
else
{
if (!size_min_sign.Equals("") || !size_max.Equals("") || !size_max.Equals("") || !size_min.Equals(""))
{
errMessage = "请选择限制规格(二)描述";
return null;
}
}
if (!size_name.Equals("") && !size_name2.Equals("") && size_name.Equals(size_name2))
{
errMessage = "限制规格(二)描述不能与限制规格(一)描述相同";
return null;
}
string createName = UserInfo.GetUserName();
string updateName = UserInfo.GetUserName();
string createTime = ugr.Cells["CREATE_TIME"].Value.ToString().Trim();
string validflag = ugr.Cells["VALIDFLAG"].Value.ToString().Trim();
//if (validflag.Equals("无效"))
//{
// errMessage = "无效记录不能保存";
// return null;
//}
StdChemObject com = new StdChemObject();
com.Cic = cic;
com.IndexSeq = indexSeq;
com.ChemCode = chemCode;
com.ChemName = chemName;
com.ChemType = wholeBacklog;
com.ChemFormula = chemFormula;
com.IsCheck = isCheck;
com.Isjudge = isjudge;
com.IsQuote = isquote;
com.ComplexType = complexType;
com.StdMinSign = stdminSign;
if (stdMin.TryParseDecimal())
{
if (stdMin.StartsWith(".")) stdMin = "0" + stdMin;
}
com.StdMin = stdMin;
com.StdMaxSign = stdmaxSign;
if (stdMax.TryParseDecimal())
{
if (stdMax.StartsWith(".")) stdMax = "0" + stdMax;
}
com.StdMax = stdMax;
com.StdTarget = stdTarget;
com.ModelCode = modelCode;
com.ModelDesc = modelDesc;
com.StdMemo = stdMemo;
com.EleCode = ele_code;
com.EleName = ele_name;
com.EleMinSign = ele_min_sign;
if (ele_min.TryParseDecimal())
{
if (ele_min.StartsWith(".")) ele_min = "0" + ele_min;
}
com.EleMin = ele_min;
com.EleMaxSign = ele_max_sign;
if (ele_max.TryParseDecimal())
{
if (ele_max.StartsWith(".")) ele_max = "0" + ele_max;
}
com.EleMax = ele_max;
com.SizeCode2 = size_code2;
com.SizeName2 = size_name2;
com.SizeMinSign2 = size_min_sign2;
com.SizeMin2 = size_min2;
com.SizeMaxSign2 = size_max_sign2;
com.SizeMax2 = size_max2;
com.SizeCode = size_code;
com.SizeName = size_name;
com.SizeMinSign = size_min_sign;
if (size_min.TryParseDecimal())
{
if (size_min.StartsWith(".")) size_min = "0" + size_min;
}
com.SizeMin = size_min;
com.SizeMaxSign = size_max_sign;
if (size_max.TryParseDecimal())
{
if (size_max.StartsWith(".")) size_max = "0" + size_max;
}
com.SizeMax = size_max;
com.SpecJg = specJG;
com.SpecJgDesc = specJGDesc;
com.CreateName = createName;
com.UpdateName = updateName;
com.CreateTime = createTime;
com.Validflag = ugr.Cells["VALIDFLAG"].Value.ToString();
com.RepMaxSign = repmaxsign;
com.RepMin = repmin;
com.RepMinSign = repminsign;
com.RepMax = repmax;
com.RepName = repname;
com.RepCode = repcode;
com.RepVal = repval;
return com;
}
private DataTable GetMscTabByMsc(string msc)
{
DataTable dt = ServerHelper.GetData("com.steering.pss.qcm.CoreFrmProPSCMSC2.getComMscByMsc",
new object[] { msc }, ob);
return dt;
}
private string GetMscByCic(string cic)
{
DataTable dt = ServerHelper.GetData("com.steering.pss.qcm.CoreChemStandard.getMscCicByCic",
new object[] { cic }, ob);
if (dt.Rows.Count > 0)
{
return dt.Rows[0]["MSC"].ToString();
}
else
{
return "";
}
}
///
/// 通过主键查询成分
///
///
///
private DataRow GetMscCicByCic(string cic)
{
DataTable dt = ServerHelper.GetData("com.steering.pss.qcm.CoreChemStandard.getMscCicByCic",
new object[] { cic }, 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 = GetMscByCic(row.GetValue("CIC"));
}
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;
}
///
/// 主项数据
///
/// UltraGridRow
///
private StdCicObject GetBaseData(UltraGridRow ugr, DataRow cicRow)
{
StdCicObject com = new StdCicObject();
com.Cic = ugr.Cells["CIC"].Value.ToString().Trim();
com.Psc = ugr.Cells["PSC"].Value.ToString().Trim();
com.Msc = ugr.Cells["MSC"].Value.ToString();
if (CustomInfo == "1" && com.Msc.Equals(""))
{
errMessage = "请选择冶金规范码";
return null;
}
if (CheckAuthority(ugr) == false) return null;
com.StdsStyle = ugr.Cells["STDSTYLE"].Value.ToString().Trim();
if (com.StdsStyle.Equals("订货标准"))
com.StdsStyle = "G";
else if (com.StdsStyle.Equals("协议标准"))
com.StdsStyle = "X";
else if (com.StdsStyle.Equals("Alpha"))
com.StdsStyle = "K";
else if (com.StdsStyle.Equals("内控"))
com.StdsStyle = "N";
else if (com.StdsStyle.Equals("试验标准"))
com.StdsStyle = "S";
else
com.StdsStyle = "P";
com.StdCodeNk = ugr.Cells["STD_CODE_NK"].Value.ToString().Trim();
com.StdNameNk = ugr.Cells["STD_NAME_NK"].Value.ToString().Trim();
if (CustomInfo != "1" && com.StdNameNk.Equals(""))
{
errMessage = "请选择标准名称";
return null;
}
com.ProcessCode = ugr.Cells["PROCESS_CODE"].Value.ToString().Trim();
com.ProcessDesc = ugr.Cells["PROCESS_DESC"].Value.ToString().Trim();
com.GradeCode = ugr.Cells["GRADECODE"].Value.ToString().Trim();
com.GradeName = ugr.Cells["GRADENAME"].Value.ToString().Trim();
com.StdCode = ugr.Cells["STD_CODE"].Value.ToString().Trim();
com.StdName = ugr.Cells["STD_CODE"].Text;
com.CreateName = UserInfo.GetUserName();
com.CreateTime = ugr.Cells["CREATE_TIME"].Value.ToString().Trim();
com.UpdateName = UserInfo.GetUserName();
com.Memo = ugr.Cells["MEMO"].Value.ToString();
com.Validflag = ugr.Cells["VALIDFLAG"].Value.ToString().Trim();
com.ModelCode = ugr.Cells["MODEL_CODE"].Value.ToString();
com.ModelDesc = ugr.Cells["MODEL_DESC"].Value.ToString();
com.ProducHead = ugr.GetValue("PRODUC_HEAD");
com.CodeJg = codeJg == "DefaultValue" ? "" : codeJg;
com.SteelcodeNk = ugr.GetValue("STEELCODE_NK");
com.SteelnameNk = ugr.GetValue("STEELNAME_NK");
com.ModelCodeNk = ugr.GetValue("MODEL_CODE_NK");
com.ModelNameNk = ugr.GetValue("MODEL_DESC_NK");
com.ProduccodeNk = ugr.GetValue("PRODUCCODE_NK");
com.ProducnameNk = ugr.GetValue("PRODUCNAME_NK");
com.SmeltingCnt = ugr.GetValue("SMELTING_CNT");
com.ProductCnt = ugr.GetValue("PRODUCT_CNT");
com.MinD = ugr.GetValue("MIN_D");
com.MaxD = ugr.GetValue("MAX_D");
com.MinH = ugr.GetValue("MIN_H");
com.MaxH = ugr.GetValue("MAX_H");
com.MinDSign = ugr.GetValue("MIN_D_SIGN");
com.MaxDSign = ugr.GetValue("MAX_D_SIGN");
com.MinHSign = ugr.GetValue("MIN_H_SIGN");
com.MaxHSign = ugr.GetValue("MAX_H_SIGN");
com.Rate = ugr.GetValue("RATE");
//if (CustomInfo == "2" && ugr.GetValue("PRODUCCODE_NK") == "")
//{
// errMessage = "请选择品名!";
// return null;
//}
if (CustomInfo == "1" && com.Msc.EndsWith("000"))
{
if (com.SmeltingCnt == "")
{
errMessage = "请输入熔炼成分套数!";
ugr.SetCellActive("SMELTING_CNT");
return null;
}
if (com.ProductCnt == "")
{
errMessage = "请输入成品成分套数!";
ugr.SetCellActive("PRODUCT_CNT");
return null;
}
if (com.Rate == "")
{
errMessage = "请选择成品取样频率!";
ugr.SetCellActive("RATE");
return null;
}
}
if (CustomInfo == "2")
{
if (com.GradeCode == "")
{
errMessage = "请选择钢种!";
ugr.SetCellActive("GRADENAME");
return null;
}
else if (com.GradeCode.Split(';').Length >= 2)
{
errMessage = "成分内控只能维护一个适用钢种!";
ugr.SetCellActive("GRADENAME");
return null;
}
if (com.MinDSign != "" && com.MinD == "")
{
errMessage = "请输入外径下限值!";
ugr.SetCellActive("MIN_D");
return null;
}
else if (com.MinDSign == "" && com.MinD != "")
{
errMessage = "请选择外径下限符号!";
ugr.SetCellActive("MIN_D_SIGN");
return null;
}
else if (com.MaxDSign != "" && com.MaxD == "")
{
errMessage = "请输入外径上限值!";
ugr.SetCellActive("MAX_D");
return null;
}
else if (com.MaxDSign == "" && com.MaxD != "")
{
errMessage = "请选择外径上限符号!";
ugr.SetCellActive("MAX_D_SIGN");
return null;
}
else if (com.MinHSign != "" && com.MinH == "")
{
errMessage = "请输入壁厚下限值!";
ugr.SetCellActive("MIN_H");
return null;
}
else if (com.MinHSign == "" && com.MinH != "")
{
errMessage = "请选择壁厚下限符号!";
ugr.SetCellActive("MIN_H_SIGN");
return null;
}
else if (com.MaxHSign != "" && com.MaxH == "")
{
errMessage = "请输入壁厚上限值!";
ugr.SetCellActive("MAX_H");
return null;
}
else if (com.MaxHSign == "" && com.MaxH != "")
{
errMessage = "请选择壁厚上限符号!";
ugr.SetCellActive("MAX_H_SIGN");
return null;
}
else if (com.MinDSign == "=" && com.MaxDSign != "")
{
errMessage = "外径下限符号为等号时,不能存在外径上限符号和外径上限值!";
ugr.SetCellActive("MAX_D_SIGN");
return null;
}
else if (com.MinHSign == "=" && com.MaxHSign != "")
{
errMessage = "壁厚下限符号为等号时,不能存在壁厚上限符号和壁厚上限值!";
ugr.SetCellActive("MAX_H_SIGN");
return null;
}
else if (com.MinD != "" && com.MaxD != ""
&& decimal.Parse(com.MinD) >= decimal.Parse(com.MaxD))
{
errMessage = "外径下限值不能大于等于外径上限值!";
ugr.SetCellActive("MIN_D");
return null;
}
else if (com.MinH != "" && com.MaxH != ""
&& decimal.Parse(com.MinH) >= decimal.Parse(com.MaxH))
{
errMessage = "壁厚下限值不能大于等于壁厚上限值!";
ugr.SetCellActive("MIN_H");
return null;
}
}
//if (com.Validflag.Equals("无效"))
//{
// errMessage = "无效记录不能保存";
// return null;
//}
//界面上简单的验证了下 当这个界面打开很久以后 可能有些记录的状态发生了变化 会不准确 不过不影响
//因为在Update SQL语句里面加了限制条件(这两个状态的都无法修改!)。
if (cicRow != null && (cicRow["VALIDFLAG"].ToString() == "2" || cicRow["VALIDFLAG"].ToString() == "3"))
{
errMessage = "提交审核或已审核的记录不能修改";
return null;
}
return com;
}
private bool CheckDataParent(UltraGridRow ugr, DataRow rowCic, bool flag)
{
if (!flag)
{
if (CustomInfo == "2")
{
if (rowCic["GRADECODE"].ToString() == "")
{
MessageUtil.ShowWarning("请选择钢种并保存后,再恢复记录!");
return false;
}
else if (rowCic["GRADECODE"].ToString().Split(';').Length >= 2)
{
MessageUtil.ShowWarning("成分内控只能维护一个适用钢种,请保留一个适用钢种并保存后,再恢复记录!");
return false;
}
}
}
return true;
}
FrmChemStandard _frmChemStandard = 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.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.ToUpper().Equals("COUNT") && e.Cell.Row.Cells["CHC"].Value.ToString() == "True")
{
UltraGridRow ugr = ultraGrid1.ActiveRow;
List list = new List();
FrmChemPopup fcp = new FrmChemPopup();
if (ugr.ChildBands[0].Rows.Count > 0)
{
for (int i = 0; i < ugr.ChildBands[0].Rows.Count; i++)
{
list.Add(ugr.ChildBands[0].Rows[i].Cells["CHEM_CODE"].Value.ToString());
}
}
fcp.Ob = this.ob;
fcp.ChenList = list;
fcp.ShowDialog();
}
if (e.Cell.Column.Key.Equals("CHKNK"))
{
UltraGridRow ugr = ultraGrid1.ActiveRow;
_frmChemStandard = new FrmChemStandard();
_frmChemStandard.PopupLoad("3", ob);
_frmChemStandard.UltraPanel1.Visible = false;
_frmChemStandard.ultraToolbarsManager1.Visible = true;
_frmChemStandard.Msc = msc;
_frmChemStandard.CodeJg = "";
_frmChemStandard.DoQuery1();
if (_frmChemStandard.ShowDialog() == System.Windows.Forms.DialogResult.OK)
{
DataRow CurRow, NewRow;
for (int i = 0; i < _frmChemStandard.dataTable1.Rows.Count; i++)
{
CurRow = _frmChemStandard.dataTable1.Rows[i];
NewRow = dataTable1.NewRow();
if (!_frmChemStandard.Ids.Contains(CurRow["CIC"].ToString2()))
{
continue;
}
for (int j = 0; j < _frmChemStandard.dataTable1.Columns.Count; j++)
{
try
{
if (dataTable1.Columns.Contains(_frmChemStandard.dataTable1.Columns[j].ColumnName))
{
if (_frmChemStandard.dataTable1.Columns[j].ColumnName == "CIC")
{
NewRow[_frmChemStandard.dataTable1.Columns[j].ColumnName] = ultraGrid1.ActiveRow.GetValue("CIC");
}
else
{
NewRow[_frmChemStandard.dataTable1.Columns[j].ColumnName] = CurRow[j];
}
}
}
catch { }
}
dataTable1.Rows.Add(NewRow);
}
ultraGrid1.UpdateData();
ultraGrid1.ActiveRow.ExpandAll();
}
}
}
///
/// 编辑区 产品规范描述
///
///
///
private void ChcPsc_CheckedChanged(object sender, EventArgs e)
{
if (ultraCheckMSC.Checked)
ultraTextMSC.Enabled = true;
else
ultraTextMSC.Enabled = false;
}
private void ultraCheckStd_CheckedChanged(object sender, EventArgs e)
{
if (ultraCheckStd.Checked)
ultraTextStd.Enabled = true;
else
ultraTextStd.Enabled = false;
}
private void ultraGrid1_CellDataError(object sender, CellDataErrorEventArgs e)
{
e.RaiseErrorEvent = false;
e.RestoreOriginalValue = true;
e.StayInEditMode = true;
MessageBox.Show("数据不合法,请重新输入!", "提示", MessageBoxButtons.OK, MessageBoxIcon.Information);
}
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[1].Columns["UnboundColumn2"].Header.Caption = "内控标准";
ultraGrid1.DisplayLayout.Bands[0].Columns["PROCESS_CODE"].CellActivation = Activation.ActivateOnly;
ultraGrid1.DisplayLayout.Bands[0].Columns["STD_CODE_NK"].CellActivation = Activation.ActivateOnly;
ultraGrid1.DisplayLayout.Bands[0].Columns["MODEL_DESC"].Hidden = true;
}
private void ultraTextEditor1_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.Text = "钢级选择";
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);
}
}
else if (ultraGrid1.ActiveCell.Column.Key == "GRADENAME")
{
string gradeCodes = ultraGrid1.ActiveRow.GetValue("GRADENAME");
FrmGradeChoice frmGradeChoice = new FrmGradeChoice(gradeCodes, ob);
if (frmGradeChoice.ShowDialog() == System.Windows.Forms.DialogResult.OK)
{
ultraGrid1.ActiveRow.SetValue("GRADECODE", frmGradeChoice.GradeCodes);
ultraGrid1.ActiveRow.SetValue("GRADENAME", frmGradeChoice.GradeNames);
}
}
}
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("CIC")).ToList();
Rows = dataTable1.Select("CIC IN ('" + string.Join("','", Ids) + "')");
}
}
this.DialogResult = System.Windows.Forms.DialogResult.OK;
}
}
}