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.Drawing;
using System.Linq;
using System.Text.RegularExpressions;
using System.Windows.Forms;
namespace Core.StlMes.Client.Qcm
{
///
/// 水压标准
///
public partial class FrmWaterPressureStand : FrmBase
{
public FrmWaterPressureStand()
{
InitializeComponent();
ExceptionHelper.RegistException();
this.IsLoadUserView = true;
}
public void PopupLoad(string customInfo, OpeBase ob)
{
this.CustomInfo = customInfo;
this.ob = ob;
FrmWaterPressureStand_Load(null, null);
}
private bool isPasting = false;
//提示信息
private string errMessage = "";
//用于 定位
private string _wic = "";
//展开
private bool _isEx = false;
//public int isSelect = 0;
private UltraComboEditor uce = new UltraComboEditor();
//用户冶金规范管理界面调用。 此处为查询条件。
public string WIC = "";
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 psc = "";
public string Psc
{
get { return psc; }
set { psc = value; }
}
private string ordLnPk = "";
public string OrdLnPk
{
get { return ordLnPk; }
set { ordLnPk = value; }
}
public override void ToolBar_Click(object sender, string ToolbarKey)
{
switch (ToolbarKey)
{
case "Query":
this.DoQuery();
break;
case "Delete":
DoUpdateOrResume(true);
break;
case "Resume":
DoUpdateOrResume(false);
break;
case "Copy":
Copy();
break;
case "Paste":
isPasting = true;
try
{
Paste();
}
finally
{
isPasting = false;
}
break;
case "Save":
DoSave();
break;
case "Refresh":
BandToUltraGrid();
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("Wic", 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("Wic");
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 wic = "";
UltraGridRow rowParent;
if (ultraGrid1.ActiveRow.HasParent())
{
//if (ultraGrid1.ActiveRow.ParentRow.ChildBands[0].Rows.Count > 0)
//{
// MessageUtil.ShowWarning("该记录下存在子记录,不能进行粘贴操作!");
// return;
//}
wic = ultraGrid1.ActiveRow.ParentRow.GetValue("WIC");
rowParent = ultraGrid1.ActiveRow.ParentRow;
}
else
{
//if (ultraGrid1.ActiveRow.ChildBands[0].Rows.Count > 0)
//{
// MessageUtil.ShowWarning("该记录下存在子记录,不能进行粘贴操作!");
// return;
//}
wic = ultraGrid1.GetActiveRowValue("WIC");
rowParent = ultraGrid1.ActiveRow;
}
List notCopyColumns = new List();
notCopyColumns.AddRange("CHC", "CREATE_TIME", "CREATE_NAME", "UPDATE_TIME", "UPDATE_NAME",
"DELETE_TIME", "DELETE_NAME", "VALIDFLAG", "WIC", "MSC", "STD_CODE_NK", "STD_NAME_NK", "PSC_DESC", "PSC",
"STD_NAME", "PRODUCNAME", "STEELNAME", "STDSTYLE", "PROCESS_DESC", "STD_STYLE_DESC",
"PRODUCCODE_NK", "PRODUCNAME_NK", "PROCESS_CDOE", "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;
if (!copyTab.Columns.Contains(columnName)) continue;
tempRow[columnName] = row[columnName];
}
tempRow["WIC"] = wic;
dataTable2.Rows.Add(tempRow);
}
dataTable2.EndInit();
if (copyTab.Rows.Count > 0 && ultraGrid1.ActiveRow != null)
{
ultraGrid1.ActiveRow.ExpandAll();
}
ultraGrid1.UpdateData();
}
private void FrmWaterPressureStand_Load(object sender, EventArgs e)
{
BandToUltraGrid();
HideColumn();
}
///
/// 根据参数隐藏不同的列
///
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;
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")
{
ultraGrid1.DisplayLayout.Bands[0].Columns["MSC"].Hidden = true;
ultraGrid1.DisplayLayout.Bands[0].Columns["PSC_DESC"].Hidden = true;
ultraGrid1.DisplayLayout.Bands[0].Columns["PRODUCNAME"].Hidden = true;
ultraGrid1.DisplayLayout.Bands[0].Columns["STD_NAME"].Hidden = true;
ultraGrid1.DisplayLayout.Bands[0].Columns["STEELNAME"].Hidden = true;
ultraGrid1.DisplayLayout.Bands[0].Columns["STEELCODE"].Hidden = true;
ultraGrid1.DisplayLayout.Bands[0].Columns["STD_STYLE_DESC"].Hidden = true;
ultraGrid1.DisplayLayout.Bands[0].Columns["STD_CODE_NK"].Header.Caption = "内控管理编号";
ultraCheckPscDesc.Visible = false;
ultraTextPscDesc.Visible = false;
InnerChange();
}
if (CustomInfo == "3")
{
ultraGrid1.DisplayLayout.Bands[0].Columns["MSC"].Hidden = true;
ultraGrid1.DisplayLayout.Bands[0].Columns["PSC_DESC"].Hidden = true;
ultraGrid1.DisplayLayout.Bands[0].Columns["PRODUCNAME"].Hidden = true;
ultraGrid1.DisplayLayout.Bands[0].Columns["STD_NAME"].Hidden = true;
ultraGrid1.DisplayLayout.Bands[0].Columns["STEELCODE"].Hidden = true;
ultraGrid1.DisplayLayout.Bands[0].Columns["STEELNAME"].Hidden = true;
ultraGrid1.DisplayLayout.Bands[0].Columns["STD_STYLE_DESC"].Hidden = true;
ultraCheckPscDesc.Visible = false;
ultraTextPscDesc.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 void DoQuery()
{
//查询交付标准或者内控标准
string style = "G";
if (CustomInfo == "2")
style = "N";
if (CustomInfo == "3")
style = "K";
ArrayList QueryConditon = GetQueryConditon();
//查询主表数据
DataTable dt = ServerHelper.GetData("com.steering.pss.qcm.CoreWaterStand.getCoreWaterStand",
new Object[] { QueryConditon, style, msc, codeJg, produccodeNk, steelcodeNk, processCode, modelCode }, this.ob);
dataTable2.Clear();
GridHelper.CopyDataToDatatable(ref dt, ref this.dataTable1, true);
//从表查询
string valid = "1";
if (ultraCheckValid.Checked)
valid = "0";
DataTable dt1 = ServerHelper.GetData("com.steering.pss.qcm.CoreWaterStand.getCoreWaterStandC",
new Object[] { valid, stdCode, style, msc, codeJg, produccodeNk, steelcodeNk, processCode, modelCode }, this.ob);
dt1 = QcmBaseCommon.FilterTable(dt, dt1, "WIC");
GridHelper.CopyDataToDatatable(ref dt1, ref this.dataTable2, true);
QcmBaseCommon.SetUltraGridNoEdit(ultraGrid1);
this.ultraGrid1.DisplayLayout.Bands[1].Columns["Ratio"].CellActivation = Activation.ActivateOnly;
//自适应
UltraGridColumn[] col = new UltraGridColumn[] { this.ultraGrid1.DisplayLayout.Bands[0].Columns["MEMO"], this.ultraGrid1.DisplayLayout.Bands[0].Columns["MIN_D"],
this.ultraGrid1.DisplayLayout.Bands[0].Columns["MAX_D"],this.ultraGrid1.DisplayLayout.Bands[0].Columns["MIN_H"],this.ultraGrid1.DisplayLayout.Bands[0].Columns["MAX_H"]
,this.ultraGrid1.DisplayLayout.Bands[0].Columns["MODEL_DESC"]};
GridHelper.RefreshAndAutoSizeExceptRows(ultraGrid1, col);
WriteTxtToGrid();
//isSelect = 0;
//展开或者定位
UltraGridRow[] rows1 = GridHelper.GetRowsWithKey(ultraGrid1, new string[] { "WIC" }, new string[] { _wic });
if (rows1.Length > 0)
{
rows1[0].Activate();
if (_isEx)
rows1[0].ExpandAll();
}
foreach (UltraGridRow ugr in ultraGrid1.Rows)
{
ugr.Cells["CHKNK"].Value = "选择";
}
_isEx = false;
_wic = "";
ultraGrid1.UpdateData();
dataTable1.AcceptChanges();
dataTable2.AcceptChanges();
//清空复制数据
//_copyedRows.Clear();
}
public void QueryPurchaseAgreement(string stdCodeNk)
{
dataTable2.Clear();
dataTable1.Clear();
DataTable dtP = ServerHelper.GetData("com.steering.pss.qcm.CoreWaterStand.getPurchaseAgreementWic",
new object[] { stdCodeNk }, ob);
GridHelper.CopyDataToDatatable(ref dtP, ref this.dataTable1, true);
DataTable dtC = ServerHelper.GetData("com.steering.pss.qcm.CoreWaterStand.getPurchaseAgreementWater",
new object[] { stdCodeNk }, ob);
GridHelper.CopyDataToDatatable(ref dtC, ref this.dataTable2, true);
QcmBaseCommon.SetGridColor(ultraGrid1, "VALIDFLAG", "无效");
QcmBaseCommon.SetUltraGridNoEdit(ultraGrid1);
}
private void WriteTxtToGrid()
{
foreach (UltraGridRow row in ultraGrid1.Rows)
{
foreach (UltraGridRow row2 in row.ChildBands[0].Rows)
{
row2.Cells["RatioMng"].Value = "维护";
}
}
}
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();
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 (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;
}
}
ArrayList baseList = new ArrayList();
ArrayList childList = new ArrayList();
for (int i = 0; i < ultraGrid1.Rows.Count; i++)
{
UltraGridRow ugr = ultraGrid1.Rows[i];
DataRow rowWic = null;
//主表行
if (Convert.ToBoolean(ugr.Cells["CHC"].Value))
{
if (ugr.GetValue("VALIDFLAG") != "")
{
rowWic = GetMscWicByWic(ugr.GetValue("WIC"));
}
if (comBaseStdRow != null && comBaseStdRow["ACCEPT_BID"].ToString() == "0" && rowWic != null)
{
string[] units = ClsBaseInfo.GetUnitByUserName(rowWic["CREATE_NAME"].ToString(), ob, "002001007", "002001001", "002023005");
if (units[0] != UserInfo.GetDeptid() && UserInfo.GetUserID() != "admin")
{
MessageUtil.ShowWarning("该记录只有[" + units[1] + "]才能操作!");
ugr.Activate();
return;
}
}
PressWaterObject comM = GetBaseData(ugr, rowWic);
if (comM == null)
{
MessageBox.Show(errMessage, "提示", MessageBoxButtons.OK, MessageBoxIcon.Information);
return;
}
baseList.Add(JSONFormat.Format(comM));
_wic = comM.Wic.ToString();
}
//从表行
if (ugr.HasChild())
{
if (ugr.Cells["VALIDFLAG"].Value.ToString().Equals("") && !Convert.ToBoolean(ugr.Cells["CHC"].Value))
{
MessageBox.Show("请选择主记录", "提示", MessageBoxButtons.OK, MessageBoxIcon.Information);
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") != "")
{
rowWic = GetMscWicByWic(ugr.GetValue("WIC"));
}
if (comBaseStdRow != null && comBaseStdRow["ACCEPT_BID"].ToString() == "0" && rowWic != null)
{
string[] units = ClsBaseInfo.GetUnitByUserName(rowWic["CREATE_NAME"].ToString(), ob, "002001007", "002001001", "002023005");
if (units[0] != UserInfo.GetDeptid() && UserInfo.GetUserID() != "admin")
{
MessageUtil.ShowWarning("该记录只有[" + units[1] + "]才能操作!");
ugrChild.Activate();
return;
}
}
PressWaterCObject comMC = GetChildData(ugrChild, rowWic);
if (comMC == null)
{
if (errMessage == "")
return;
MessageBox.Show(errMessage, "提示", MessageBoxButtons.OK, MessageBoxIcon.Information);
return;
}
childList.Add(JSONFormat.Format(comMC));
_wic = comMC.Wic;
_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.CoreWaterStand.saveCoreWaterStand",
new object[] { baseList, childList, style }, this.ob);
if (count > 0)
{
MessageBox.Show("保存成功", "提示", MessageBoxButtons.OK, MessageBoxIcon.Information);
DoQuery();
}
}
}
///
/// 作废或者恢复
///
///
private void DoUpdateOrResume(bool flag)
{
ultraGrid1.UpdateData();
if (GetGridSelectCount() == 0)
{
MessageBox.Show("请选择记录!", "提示", MessageBoxButtons.OK, MessageBoxIcon.Information);
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;
}
}
ultraGrid1.UpdateData();
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 rowWic = null;
if (ugr.GetValue("VALIDFLAG") != "")
{
rowWic = GetMscWicByWic(ugr.GetValue("WIC"));
}
if (comBaseStdRow != null && comBaseStdRow["ACCEPT_BID"].ToString() == "0" && rowWic != null)
{
string[] units = ClsBaseInfo.GetUnitByUserName(rowWic["CREATE_NAME"].ToString(), ob, "002001007", "002001001", "002023005");
if (units[0] != UserInfo.GetDeptid() && UserInfo.GetUserID() != "admin")
{
MessageUtil.ShowWarning("该记录只有[" + units[1] + "]才能操作!");
ugr.Activate();
return;
}
}
if (CheckAuthority(ugr) == false)
{
MessageUtil.ShowWarning(errMessage);
}
PressWaterObject comM = new PressWaterObject();
comM.DeleteName = UserInfo.GetUserName();
comM.Wic = ugr.Cells["WIC"].Value.ToString();
if (ugr.Cells["VALIDFLAG"].Value.Equals("无效") && flag)
{
MessageBox.Show("无效记录不能作废", "提示", MessageBoxButtons.OK, MessageBoxIcon.Information);
return;
}
if (flag && (ugr.Cells["VALIDFLAG"].Value.Equals("提交审核") || ugr.Cells["VALIDFLAG"].Value.Equals("已审核")))
{
MessageBox.Show("提交审核或已审核记录不能作废!", "提示", MessageBoxButtons.OK, MessageBoxIcon.Information);
return;
}
if (ugr.Cells["VALIDFLAG"].Value.Equals("有效") && (!flag))
{
MessageBox.Show("有效记录不能恢复", "提示", MessageBoxButtons.OK, MessageBoxIcon.Information);
return;
}
if (ugr.HasChild() && flag)
{
//子记录全部删除
if (MessageBox.Show("对应子记录将全部作废!", "提示", MessageBoxButtons.YesNo, MessageBoxIcon.Question) == DialogResult.No)
{
return;
}
foreach (UltraGridRow ugrc in ugr.ChildBands[0].Rows)
{
PressWaterCObject comMC = new PressWaterCObject();
comMC.DeleteName = UserInfo.GetUserName();
comMC.Wic = ugrc.Cells["WIC"].Value.ToString();
comMC.Xh = ugrc.Cells["XH"].Value.ToString();
childList.Add(JSONFormat.Format(comMC));
}
}
baseList.Add(JSONFormat.Format(comM));
_wic = comM.Wic.ToString();
}
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 rowWic = null;
if (ugr.GetValue("VALIDFLAG") != "")
{
rowWic = GetMscWicByWic(ugr.GetValue("WIC"));
}
if (comBaseStdRow != null && comBaseStdRow["ACCEPT_BID"].ToString() == "0" && rowWic != null)
{
string[] units = ClsBaseInfo.GetUnitByUserName(rowWic["CREATE_NAME"].ToString(), ob, "002001007", "002001001", "002023005");
if (units[0] != UserInfo.GetDeptid() && UserInfo.GetUserID() != "admin")
{
MessageUtil.ShowWarning( "该记录只有[" + units[1] + "]才能操作!");
ugrc.Activate();
return;
}
}
if (CheckAuthority(ugrc) == false)
{
MessageUtil.ShowWarning(errMessage);
}
if (!flag && ugrc.ParentRow.Cells["VALIDFLAG"].Value.Equals("无效") && !Convert.ToBoolean(ugrc.ParentRow.Cells["CHC"].Value))
{
MessageBox.Show("请选择主记录", "提示", MessageBoxButtons.OK, MessageBoxIcon.Information);
return;
}
PressWaterCObject comMC = new PressWaterCObject();
comMC.DeleteName = UserInfo.GetUserName();
comMC.Wic = ugrc.Cells["WIC"].Value.ToString();
comMC.Xh = ugrc.Cells["XH"].Value.ToString();
if (ugrc.Cells["VALIDFLAG"].Value.Equals("无效") && flag)
{
MessageBox.Show("无效记录不能作废", "提示", MessageBoxButtons.OK, MessageBoxIcon.Information);
return;
}
if (ugrc.Cells["VALIDFLAG"].Value.Equals("有效") && !flag)
{
MessageBox.Show("有效记录不能恢复", "提示", MessageBoxButtons.OK, MessageBoxIcon.Information);
return;
}
if (flag)
{
if (ugrc.ParentRow.Cells["VALIDFLAG"].Value.ToString() != "录入状态"
&& ugrc.ParentRow.Cells["VALIDFLAG"].Value.ToString() != "无效"
&& ugr.Cells["VALIDFLAG"].Value.ToString() != "")
{
MessageUtil.ShowWarning("主记录为提交审核或已审核状态时,无法作废");
return;
}
}
childList.Add(JSONFormat.Format(comMC));
_wic = comMC.Wic;
_isEx = true;
}
}
}
}
if (flag)
{
if (MessageBox.Show("作废选中记录,您是否继续?", "提示", MessageBoxButtons.YesNo, MessageBoxIcon.Question) == DialogResult.No)
{
return;
}
}
else
{
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.CoreWaterStand.deleteOrResume", new Object[] { baseList, childList, flag }, this.ob);
if (count > 0)
{
DoQuery();
if (flag)
MessageBox.Show("作废成功!", "提示", MessageBoxButtons.OK, MessageBoxIcon.Information);
else
MessageBox.Show("恢复成功!", "提示", MessageBoxButtons.OK, MessageBoxIcon.Information);
}
}
}
///
/// 新增行
///
///
///
private void ultraGrid1_AfterRowInsert(object sender, Infragistics.Win.UltraWinGrid.RowEventArgs e)
{
UltraGridRow ugr = ultraGrid1.DisplayLayout.ActiveRow;
string style = "G";
if (CustomInfo == "2")
style = "N";
if (CustomInfo == "3")
style = "K";
if (!ugr.HasParent()) //主表自动填充主键(水压索引号)
{
string wic = "";
int temp = 0;
for (int i = 0; i < ultraGrid1.Rows.Count - 1; i++)
{
string str = ultraGrid1.Rows[i].Cells["WIC"].Value.ToString().Substring(4, 6);
if (Convert.ToInt32(str) > temp)
temp = Convert.ToInt32(str);
}
wic = "WIC" + style + string.Format("{0:000000}", temp + 1);
ugr.Cells["WIC"].Value = wic;
}
//从表自动填充序号
if (ugr.HasParent())
{
int index = 0;
string wic = ugr.Cells["WIC"].Value.ToString();
foreach (UltraGridRow ug in ultraGrid1.Rows)
{
if (ug.Cells["WIC"].Value.ToString().Equals(wic))
{
for (int i = 0; i < ug.ChildBands[0].Rows.Count - 1; i++)
{
int indexSeq = Convert.ToInt32(ug.ChildBands[0].Rows[i].Cells["XH"].Value.ToString());
if (indexSeq > index)
index = indexSeq;
}
}
}
ugr.Cells["XH"].Value = index + 1;
ugr.Cells["GET_MAXVALUE"].Value = true;
ugr.Cells["GET_MINVALUE"].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 (e.Cell.Column.Key.Equals("SPEC_JG_DESC")) //接箍下拉框操作
{
ugr.Cells["SPEC_JG"].Value = ugr.Cells["SPEC_JG_DESC"].Value.ToString();
}
if (e.Cell.Column.Key.Equals("PSC_DESC")) //产品规范
{
string psc = ugr.Cells["PSC_DESC"].Value.ToString();
string[] str = psc.Split(',');
ugr.Cells["PSC"].Value = str[0];
ugr.Cells["PRODUCNAME"].Value = str[1];
ugr.Cells["STDSTYLE"].Value = str[2];
ugr.Cells["STD_NAME"].Value = str[3];
ugr.Cells["STEELNAME"].Value = str[4];
ugr.Cells["STD_STYLE_DESC"].Value = str[5];
}
if (e.Cell.Column.Key.Equals("PROCESS_DESC")) //工序
{
ugr.Cells["PROCESS_CDOE"].Value = ugr.Cells["PROCESS_DESC"].Value.ToString();
}
//标准内控
if (e.Cell.Column.Key.Equals("STD_CODE_NK")) //标准下拉框选择
{
ugr.Cells["STD_NAME_NK"].Value = ugr.Cells["STD_CODE_NK"].Text;
DataRow[] dr = ((DataTable)uce.DataSource).Select("STD_CODE='" + ugr.Cells["STD_CODE_NK"].Value + "'");
if (dr.Length > 0)
ugr.Cells["STDSTYLE"].Value = dr[0][2];
}
if (e.Cell.Column.Key.Equals("GET_MAXVALUE"))
{
if (Convert.ToBoolean(e.Cell.Value))
{
e.Cell.Row.Cells["GET_MINVALUE"].Value = false;
}
}
if (e.Cell.Column.Key.Equals("GET_MINVALUE"))
{
if (Convert.ToBoolean(e.Cell.Value))
{
e.Cell.Row.Cells["GET_MAXVALUE"].Value = false;
}
}
if (e.Cell.Column.Key.Equals("MSC")) //冶金规范码
{
string msc = ugr.Cells["MSC"].Value.ToString();
string[] str = msc.Split('@');
ugr.Cells["PSC"].Value = str[1];
ugr.Cells["PSC_DESC"].Value = str[2];
ugr.Cells["PRODUCNAME"].Value = str[3];
ugr.Cells["STDSTYLE"].Value = str[7];
ugr.Cells["STD_NAME"].Value = str[4];
ugr.Cells["STEELNAME"].Value = str[5];
ugr.Cells["STD_STYLE_DESC"].Value = str[6];
ugr.Cells["STEELCODE"].Value = str[8];
ugr.Cells["STD_CODE"].Value = str[9];
}
if (e.Cell.Column.Key.Equals("FORMULA"))
{
string formula = ugr.Cells["FORMULA"].Value.ToString();
if (formula != "")
{
if (formula[formula.Length - 1] == 'f')
FindRatio(e);
}
if (!formula.Contains("f"))
ugr.Cells["Ratio"].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 == "PRESSURE_Y" || e.Cell.Column.Key == "PRESSURE")
{
e.Cell.Row.Cells["FORMULA"].Value = "";
e.Cell.Row.Cells["Ratio"].Value = "";
e.Cell.Row.Cells["ROUND_RULE"].Value = "";
e.Cell.Row.Cells["SRC_VALUE"].Value = "";
}
else if (e.Cell.Column.Key == "SRC_VALUE" || e.Cell.Column.Key == "ROUND_RULE")
{
double value = e.Cell.Row.GetValue("SRC_VALUE") == "" ? 0 : double.Parse(e.Cell.Row.GetValue("SRC_VALUE"));
if (value != 0)
{
string roundRule = e.Cell.Row.GetValue("ROUND_RULE");
CoreClientParam ccp = new CoreClientParam();
ccp.ServerName = "com.steering.pss.qcm.CoreWaterStand";
ccp.MethodName = "waterRound";
ccp.ServerParams = new object[] { value, roundRule };
ccp = ob.ExecuteQuery(ccp, CoreInvokeType.Internal);
double[] values = (double[])ccp.ReturnObject;
double mpa = values[0];
double psi = values[1];
e.Cell.Row.SetValue("PRESSURE", mpa.ToString());
e.Cell.Row.SetValue("PRESSURE_BAR", (mpa * 10).ToString()); // 1bar=0.1MPa
e.Cell.Row.SetValue("PRESSURE_Y", psi.ToString());
e.Cell.Row.Cells["FORMULA"].Value = "";
}
}
else if (e.Cell.Column.Key == "FORMULA")
{
e.Cell.Row.SetValue("PRESSURE", "");
e.Cell.Row.SetValue("PRESSURE_Y", "");
e.Cell.Row.SetValue("SRC_VALUE", "");
}
//if (e.Cell.Column.Key == "PRESSURE_Y")
//{
// if (e.Cell.Value.ToString() != "")
// {
// //英制压力转公制压力系数为0.00689476
// e.Cell.Row.Cells["PRESSURE"].Value = Math.Round(double.Parse(e.Cell.Value.ToString()) * 0.00689476, 2);
// }
// else
// {
// e.Cell.Row.Cells["PRESSURE"].Value = 0;
// }
//}
//else if (e.Cell.Column.Key == "PRESSURE")
//{
// if (e.Cell.Value.ToString() != "")
// {
// if (double.Parse(e.Cell.Value.ToString()) > 6894.76)
// {
// MessageUtil.ShowWarning("公制压力上限为68900");
// e.Cell.Row.Cells["PRESSURE"].Value = 6894.76;
// }
// //公制压力转英制压力系数为14.5
// e.Cell.Row.Cells["PRESSURE_Y"].Value = Math.Round(double.Parse(e.Cell.Value.ToString()) / 0.00689476, 2);
// }
// else
// {
// e.Cell.Row.Cells["PRESSURE_Y"].Value = 0;
// }
//}
ultraGrid1.UpdateData();
}
///
/// 查询条件
///
///
private ArrayList GetQueryConditon()
{
ArrayList list = new ArrayList();
string stdName = "";
if (ultraCheckStd.Checked)
stdName = ultraTextStd.Text.Trim();
list.Add(stdName);
string pscDesc = "";
if (CustomInfo == "1")
{
if (ultraCheckPscDesc.Checked)
{
pscDesc = ultraTextPscDesc.Text.Trim();
}
}
list.Add(pscDesc);
string valid = "1";
if (ultraCheckValid.Checked)
valid = "0";
list.Add(valid);
list.AddRange(stdCode);
list.Add(WIC);
return list;
}
private DataTable GetMscTabByMsc(string msc)
{
DataTable dt = ServerHelper.GetData("com.steering.pss.qcm.CoreFrmProPSCMSC2.getComMscByMsc",
new object[] { msc }, ob);
return dt;
}
private string GetMscByWic(string wic)
{
DataTable dt = ServerHelper.GetData("com.steering.pss.qcm.CoreWaterStand.getComWicByWic",
new object[] { wic }, ob);
if (dt.Rows.Count > 0)
{
return dt.Rows[0]["MSC"].ToString();
}
return "";
}
///
/// 通过主键查询水压主表
///
///
///
private DataRow GetMscWicByWic(string wic)
{
DataTable dt = ServerHelper.GetData("com.steering.pss.qcm.CoreWaterStand.getComWicByWic",
new object[] { wic }, 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 = GetMscByWic(row.GetValue("WIC"));
}
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 PressWaterObject GetBaseData(UltraGridRow ugr, DataRow rowWic)
{
PressWaterObject com = new PressWaterObject();
com.Msc = ugr.Cells["MSC"].Text.Trim();
if (CustomInfo == "1" && com.Msc == "")
{
errMessage = "请选择冶金规范码";
return null;
}
if (CheckAuthority(ugr) == false) return null;
com.Wic = ugr.Cells["WIC"].Value.ToString().Trim();
com.Psc = ugr.Cells["PSC"].Value.ToString().Trim();
//if (CustomInfo=="1"&&com.Psc.Equals(""))
//{
// errMessage = "请选择产品规范描述";
// return null;
//}
string stdstyle = ugr.Cells["STDSTYLE"].Value.ToString().Trim();
if (stdstyle.Equals("订货标准"))
com.Stdstyle = "G";
else if (stdstyle.Equals("协议标准"))
com.Stdstyle = "X";
else if (stdstyle.Equals("Alpha"))
com.Stdstyle = "K";
else if (stdstyle.Equals("内控"))
com.Stdstyle = "N";
else if (stdstyle.Equals("试验标准"))
com.Stdstyle = "S";
else
com.Stdstyle = "P";
com.ProcessCdoe = ugr.Cells["PROCESS_CDOE"].Value.ToString().Trim();
com.ProcessDesc = ugr.Cells["PROCESS_DESC"].Text.ToString().Trim();
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.MinD = ugr.Cells["MIN_D"].Value.ToString().Trim();
com.MaxD = ugr.Cells["MAX_D"].Value.ToString().Trim();
com.MinH = ugr.Cells["MIN_H"].Value.ToString().Trim();
com.MaxH = ugr.Cells["MAX_H"].Value.ToString().Trim();
com.SpecJg = ugr.Cells["SPEC_JG"].Value.ToString().Trim();
com.SpecJgDesc = ugr.Cells["SPEC_JG_DESC"].Text.ToString().Trim();
if (!com.MinD.Equals("") && !com.MaxD.Equals("") && Convert.ToDouble(com.MinD) > Convert.ToDouble(com.MaxD))
{
errMessage = "外径最小值大于最大值,请重新输入";
return null;
}
if (!com.MinH.Equals("") && !com.MaxH.Equals("") && Convert.ToDouble(com.MinH) > Convert.ToDouble(com.MaxH))
{
errMessage = "壁厚最小值大于最大值,请重新输入";
return null;
}
if (!com.SpecJg.Equals("") && (!com.MinD.Equals("") || !com.MaxD.Equals("") || !com.MinH.Equals("") || !com.MaxH.Equals("")))
{
errMessage = "接箍规格描述与外径壁厚不能同时存在";
return null;
}
com.ModelCode = ugr.Cells["MODEL_CODE"].Value.ToString().Trim();
com.ModelDesc = ugr.Cells["MODEL_DESC"].Text.ToString().Trim();
com.CreateName = UserInfo.GetUserName();
com.CreateTime = ugr.Cells["CREATE_TIME"].Value.ToString().Trim();
com.UpdateName = UserInfo.GetUserName();
com.Validflag = ugr.Cells["VALIDFLAG"].Value.ToString().Trim();
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.ModelDescNk = ugr.GetValue("MODEL_DESC_NK");
com.ProduccodeNk = ugr.GetValue("PRODUCCODE_NK");
com.ProducnameNk = ugr.GetValue("PRODUCNAME_NK");
com.Memo = ugr.GetValue("MEMO");
if (rowWic != null && (rowWic["VALIDFLAG"].ToString() == "2" || rowWic["VALIDFLAG"].ToString() == "3"))
{
errMessage = "提交审核或已审核记录不能保存!";
return null;
}
//if (CustomInfo == "2" && com.ProduccodeNk == "")
//{
// errMessage = "请选择品名!";
// return null;
//}
return com;
}
///
/// 从表数据
///
///
///
private PressWaterCObject GetChildData(UltraGridRow ugr, DataRow rowWic)
{
if (CheckAuthority(ugr) == false) return null;
if (rowWic != null && (rowWic["VALIDFLAG"].ToString() == "2" || rowWic["VALIDFLAG"].ToString() == "3"))
{
errMessage = "主记录为提交审核或已审核状态时,无法修改";
return null;
}
if (CheckFormula() == false)
{
errMessage = "";
return null;
}
PressWaterCObject com = new PressWaterCObject();
com.Wic = ugr.Cells["WIC"].Value.ToString().Trim();
com.Xh = ugr.Cells["XH"].Value.ToString().Trim();
com.PressureY = ugr.Cells["pressure_y"].Value.ToString().Trim();
com.Pressure = ugr.Cells["pressure"].Value.ToString().Trim();
com.Formula = ugr.Cells["formula"].Text.Trim();
com.RoundRule = ugr.GetValue("ROUND_RULE");
com.OutputStyle = ugr.GetValue("OUTPUT_STYLE");
com.ZbsOutputStyle = ugr.GetValue("ZBS_OUTPUT_STYLE");
com.PressureBar = ugr.Cells["PRESSURE_BAR"].Value.ToString().Trim();
if (com.RoundRule == "")
{
errMessage = "请选择圆整规则";
return null;
}
if (com.PressureY == "" && com.Pressure == "" && com.Formula == "")
{
errMessage = "请输入试验压力或者试验压力公式";
return null;
}
if (com.OutputStyle == "")
{
errMessage = "请选择工艺文件输出方式";
return null;
}
if (com.ZbsOutputStyle == "")
{
errMessage = "请选择质保书输出方式";
return null;
}
string formula = com.Formula.Replace("f", "1").Replace("YS", "1").Replace("TS", "1").Replace("D", "2").Replace("t", "1");
if (!com.Formula.Equals("") && formula.CompileFormula() == null)
{
errMessage = "公式不合法,请重新输入";
return null;
}
com.SaveTime = ugr.Cells["save_time"].Value.ToString().Trim();
if (com.SaveTime.Equals(""))
{
errMessage = "请输入保压时间";
return null;
}
com.Maxval = ugr.Cells["GET_MAXVALUE"].Value.ToString().Trim();
com.Minval = ugr.Cells["GET_MINVALUE"].Value.ToString().Trim();
if ((com.Pressure != "" || com.PressureY != "") && com.Formula != "")
{
if (com.Maxval == "" && com.Minval == "")
{
errMessage = "请选择取大值或取小值";
return null;
}
}
if (Convert.ToBoolean(com.Maxval))
com.Maxval = "1";
else
com.Maxval = "0";
if (Convert.ToBoolean(com.Minval))
com.Minval = "1";
else
com.Minval = "0";
//if ((com.Pressure != "" || com.PressureY != "") && com.Formula == "")
//{
// com.Maxval = "0";
// com.Minval = "0";
//}
//if ((com.Pressure == "" && com.PressureY == "") && com.Formula != "")
//{
// com.Maxval = "0";
// com.Minval = "0";
//}
com.CreateName = UserInfo.GetUserName();
com.CreateTime = ugr.Cells["create_time"].Value.ToString().Trim();
com.UpdateName = UserInfo.GetUserName();
com.Validflag = ugr.Cells["validflag"].Value.ToString().Trim();
com.Memo = ugr.Cells["memo"].Value.ToString();
//if (com.Formula.Contains("f"))
//{
// //if (ugr.Cells["Ratio"].Value == null)
// //{
// // errMessage = "找不到符合要求的水压系数,请先维护!";
// // return null;
// //}
// com.Formula = com.Formula.Replace("f", ugr.Cells["Ratio"].Value.ToString());
//}
return com;
}
public void PopupRefresh()
{
if (CustomInfo == "1")
{
UltraComboEditor UceMsc = new UltraComboEditor();
this.Controls.Add(UceMsc);
UceMsc.Visible = false;
DataTable dt = ServerHelper.GetData("com.steering.pss.qcm.ComBaseQuery.getMsc", new Object[] { msc }, ob);
QcmBaseCommon.InitDropList(UceMsc, dt, "MSC", false);
ClsBaseInfo.SetComboItemHeight(UceMsc);
ultraGrid1.DisplayLayout.Bands[0].Columns["MSC"].EditorComponent = UceMsc;
ultraGrid1.DisplayLayout.Bands[0].Columns["MSC"].Style = Infragistics.Win.UltraWinGrid.ColumnStyle.DropDownList;
}
}
///
/// 新增下拉框,并绑定下拉框到ultraGrid1的列
///
private void BandToUltraGrid()
{
UltraComboEditor ultraComPsc = new UltraComboEditor();
UltraComboEditor ultraComProcess = new UltraComboEditor();
UltraComboEditor ultraComJG = new UltraComboEditor();
UltraComboEditor cmbProBigType = new UltraComboEditor();
UltraComboEditor cmbRound = new UltraComboEditor();
UltraComboEditor cmbOutput = new UltraComboEditor();
UltraComboEditor cmbZbsOutput = new UltraComboEditor();
this.Controls.Add(ultraComPsc);
this.Controls.Add(ultraComProcess);
this.Controls.Add(ultraComJG);
this.Controls.Add(cmbProBigType);
this.Controls.Add(cmbRound);
this.Controls.Add(cmbOutput);
this.Controls.Add(cmbZbsOutput);
ultraComPsc.Visible = false;
ultraComProcess.Visible = false;
ultraComJG.Visible = false;
cmbProBigType.Visible = false;
cmbRound.Visible = false;
cmbOutput.Visible = false;
cmbZbsOutput.Visible = false;
//绑定数据源 产品规范描述
QcmBaseCommon.InitDropUltraComEditor(ultraComPsc, "com.steering.pss.qcm.ComBaseQuery.getPsc", "PSC_DESC", this.ob, false);
//工序
//内控标准
this.Controls.Add(uce);
uce.Visible = false;
UltraGridBand ugb = ultraGrid1.DisplayLayout.Bands[0];
if (this.CustomInfo == "2")
{
QcmBaseQuery.NitializeInnerStandard(uce, false, this.ob);
QcmBaseQuery.BindColumn(uce, "STD_CODE_NK", ugb);
}
if (this.CustomInfo == "3")
{
QcmBaseQuery.NitializeAlphaStandard(uce, false, this.ob);
QcmBaseQuery.BindColumn(uce, "STD_CODE_NK", ugb);
}
//结箍
QcmBaseCommon.InitDropUltraComEditor(ultraComJG, "com.steering.pss.qcm.ComBaseQuery.getComMSCJG", "SPEC_JG_DESC", this.ob, true);
//如果是交付标准则绑定产品规范描述,否则绑定内控标准名称
if (CustomInfo == "1")
{
ugb.Columns["PSC_DESC"].EditorComponent = ultraComPsc;
ugb.Columns["PSC_DESC"].Style = Infragistics.Win.UltraWinGrid.ColumnStyle.DropDownList;
}
else
{
ugb.Columns["STD_CODE_NK"].EditorComponent = uce;
ugb.Columns["STD_CODE_NK"].Style = Infragistics.Win.UltraWinGrid.ColumnStyle.DropDownList;
}
//结箍
ugb.Columns["SPEC_JG_DESC"].EditorComponent = ultraComJG;
ugb.Columns["SPEC_JG_DESC"].Style = Infragistics.Win.UltraWinGrid.ColumnStyle.DropDownList;
//不可编辑
if (CustomInfo == "1")
{
UltraComboEditor UceMsc = new UltraComboEditor();
this.Controls.Add(UceMsc);
UceMsc.Visible = false;
DataTable dt = ServerHelper.GetData("com.steering.pss.qcm.ComBaseQuery.getMsc", new Object[] { msc }, ob);
QcmBaseCommon.InitDropList(UceMsc, dt, "MSC", false);
ClsBaseInfo.SetComboItemHeight(UceMsc);
ultraGrid1.DisplayLayout.Bands[0].Columns["MSC"].EditorComponent = UceMsc;
ultraGrid1.DisplayLayout.Bands[0].Columns["MSC"].Style = Infragistics.Win.UltraWinGrid.ColumnStyle.DropDownList;
}
UltraComboEditor cmbWtr = new UltraComboEditor();
cmbWtr.DropDownListWidth = -1;
this.Controls.Add(cmbWtr);
cmbWtr.Visible = false;
ClsBaseInfo.FillWtrExpress(cmbWtr, ob, true);
ultraGrid1.DisplayLayout.Bands[1].Columns["FORMULA"].EditorComponent = cmbWtr;
ultraGrid1.DisplayLayout.Bands[1].Columns["FORMULA"].Style = Infragistics.Win.UltraWinGrid.ColumnStyle.DropDownList;
QcmBaseQuery.NitializeProductBigType(cmbProBigType, false, ob);
QcmBaseQuery.BindColumn(cmbProBigType, "PRODUC_HEAD", ugb);
ClsBaseInfo.SetComboItemHeight(cmbProBigType);
//圆整规则
UltraComboEditor cmbRoundRule = new UltraComboEditor();
cmbRoundRule.DropDownListWidth = -1;
cmbRoundRule.Visible = false;
this.Controls.Add(cmbRoundRule);
ClsBaseInfo.FillComBaseInfo(cmbRoundRule, "4094", ob, false);
ultraGrid1.DisplayLayout.Bands[1].Columns["ROUND_RULE"].EditorComponent = cmbRoundRule;
ultraGrid1.DisplayLayout.Bands[1].Columns["ROUND_RULE"].Style = Infragistics.Win.UltraWinGrid.ColumnStyle.DropDownList;
//工艺文件压力值输出方式
cmbOutput.DropDownListWidth = -1;
ClsBaseInfo.FillComBaseInfo(cmbOutput, "4107", ob, false);
((DataTable)cmbOutput.DataSource).DefaultView.Sort = "BASECODE ASC";
ultraGrid1.DisplayLayout.Bands[1].Columns["OUTPUT_STYLE"].EditorComponent = cmbOutput;
ultraGrid1.DisplayLayout.Bands[1].Columns["OUTPUT_STYLE"].Style = Infragistics.Win.UltraWinGrid.ColumnStyle.DropDownList;
//质保书压力值输出方式
cmbOutput.DropDownListWidth = -1;
ClsBaseInfo.FillComBaseInfo(cmbZbsOutput, "4109", ob, false);
((DataTable)cmbZbsOutput.DataSource).DefaultView.Sort = "BASECODE ASC";
ultraGrid1.DisplayLayout.Bands[1].Columns["ZBS_OUTPUT_STYLE"].EditorComponent = cmbZbsOutput;
ultraGrid1.DisplayLayout.Bands[1].Columns["ZBS_OUTPUT_STYLE"].Style = Infragistics.Win.UltraWinGrid.ColumnStyle.DropDownList;
}
///
/// 无效则行变颜色
///
///
///
private void ultraGrid1_InitializeRow(object sender, InitializeRowEventArgs e)
{
if (e.Row.Cells["VALIDFLAG"].Value.ToString().Equals("无效"))
{
e.Row.Appearance.ForeColor = Color.Red;
}
else
{
e.Row.Appearance.ForeColor = Color.Black;
}
if (isPasting)
{
e.Row.SetValue("CHC", "True");
}
}
FrmWaterPressureStand _frmWaterPressureStand = null;
private void ultraGrid1_ClickCellButton(object sender, CellEventArgs e)
{
ultraGrid1.UpdateData();
if (e.Cell.Column.Key.Equals("CHKNK"))
{
UltraGridRow ugr = ultraGrid1.ActiveRow;
_frmWaterPressureStand = new FrmWaterPressureStand();
_frmWaterPressureStand.PopupLoad("3", ob);
_frmWaterPressureStand.UltraPanel1.Visible = false;
_frmWaterPressureStand.ultraToolbarsManager1.Visible = true;
_frmWaterPressureStand.Msc = msc;
_frmWaterPressureStand.CodeJg = "";
_frmWaterPressureStand.DoQuery1();
if (_frmWaterPressureStand.ShowDialog() == System.Windows.Forms.DialogResult.OK)
{
DataRow CurRow, NewRow;
for (int i = 0; i < _frmWaterPressureStand.dataTable2.Rows.Count; i++)
{
CurRow = _frmWaterPressureStand.dataTable2.Rows[i];
NewRow = dataTable2.NewRow();
if (!_frmWaterPressureStand.Ids.Contains(CurRow["WIC"].ToString2()))
{
continue;
}
for (int j = 0; j < _frmWaterPressureStand.dataTable2.Columns.Count; j++)
{
try
{
if (dataTable2.Columns.Contains(_frmWaterPressureStand.dataTable2.Columns[j].ColumnName))
{
if (_frmWaterPressureStand.dataTable2.Columns[j].ColumnName == "WIC")
{
NewRow[_frmWaterPressureStand.dataTable2.Columns[j].ColumnName] = ultraGrid1.ActiveRow.GetValue("WIC");
}
else
{
NewRow[_frmWaterPressureStand.dataTable2.Columns[j].ColumnName] = CurRow[j];
}
}
}
catch { }
}
dataTable2.Rows.Add(NewRow);
}
ultraGrid1.UpdateData();
ultraGrid1.ActiveRow.ExpandAll();
}
}
if (e.Cell.Row.Cells["CHC"].Value.ToString() != "True") return;
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.FrmOb = this.ob;
frms.Desc = row.Cells["MODEL_DESC"].Value.ToString();
frms.ShowDialog();
row.Cells["MODEL_CODE"].Value = frms.Code;
row.Cells["MODEL_DESC"].Value = frms.Desc;
}
if (e.Cell.Column.Key == "RatioMng")
{
UltraGridRow row = ultraGrid1.ActiveRow.HasParent() ? ultraGrid1.ActiveRow.ParentRow : ultraGrid1.ActiveRow;
string stdCode = row.Cells["STD_CODE"].Value.ToString();
string stdName = row.Cells["STD_NAME"].Value.ToString();
string steelCode = row.Cells["STEELCODE"].Value.ToString();
string stdStyleCode = row.Cells["STD_STYLE_DESC"].Value.ToString();
string stdCodeNk = row.Cells["STD_CODE_NK"].Value.ToString();
if (psc != "")
{
DataTable dt = ServerHelper.GetData("com.steering.pss.qcm.CoreProductManage.getBasePscByPk",
new object[] { psc }, ob);
stdCode = dt.Rows[0]["STD_CODE"].ToString();
stdName = dt.Rows[0]["STD_NAME"].ToString();
steelCode = dt.Rows[0]["STD_CODE"].ToString();
stdStyleCode = dt.Rows[0]["STD_STYLE_DESC"].ToString();
}
FrmWaterRatioPopup ratio = new FrmWaterRatioPopup(stdCode, stdName, steelCode, stdStyleCode, ordLnPk, stdCodeNk, ob);
ratio.ShowDialog();
}
}
private void ultraGrid1_AfterExitEditMode(object sender, EventArgs e)
{
ultraGrid1.UpdateData();
if (this.CustomInfo == "1")
{
CheckFormula();
}
}
private bool? CheckFormula()
{
UltraGrid ug = ultraGrid1;
UltraGridCell ugc = ug.ActiveCell;
if (ugc == null)
return null;
if (ugc.Column.Key.Equals("FORMULA") && ugc.Row.Cells["CHC"].Value.ToString().ToUpper() == "TRUE")
{
//MessageBox.Show(ugc.Value.ToString());
//if (TestFormula(ugc.Text) == -1 && !ugc.Value.ToString().Equals(""))
//{
// MessageBox.Show("输入的试验压力公式不合法", "提示", MessageBoxButtons.OK, MessageBoxIcon.Warning);
// return false;
//}
if (!ugc.Text.ToString().Contains("f"))
return null;
UltraGridRow ugr = ugc.Row.ParentRow;
string stdname = ugr.Cells["STD_NAME"].Value.ToString();
string steelcode = ugr.Cells["STEELCODE"].Value.ToString();
string min_d = ugr.Cells["MIN_D"].Value.ToString();
string max_d = ugr.Cells["MAX_D"].Value.ToString();
if (min_d == "")
min_d = "0";
if (max_d == "")
max_d = "99999";
DataTable dt = ServerHelper.GetData("com.steering.pss.qcm.CoreWaterStand.getWaterRatio", new Object[] { min_d, max_d, stdname, steelcode }, this.ob);
if (dt != null && dt.Rows.Count > 0)
{
DataTable newdt = new DataTable();
newdt.Columns.Add("Ratio");
for (int i = 0; i < dt.Rows.Count; i++)
{
if (dt.Rows[i][0].ToString() != "")
{
DataRow dr = newdt.NewRow();
dr["Ratio"] = dt.Rows[i][0];
newdt.Rows.Add(dr);
}
if (dt.Rows[i][1].ToString() != "")
{
DataRow dr1 = newdt.NewRow();
dr1["Ratio"] = dt.Rows[i][1];
newdt.Rows.Add(dr1);
}
}
UltraComboEditor uce = new UltraComboEditor();
uce.DataSource = newdt;
uce.DisplayMember = "Ratio";
uce.ValueMember = "Ratio";
this.Controls.Add(uce);
uce.Visible = false;
ultraGrid1.DisplayLayout.Bands[1].Columns["Ratio"].EditorComponent = uce;
ultraGrid1.DisplayLayout.Bands[1].Columns["Ratio"].Style = Infragistics.Win.UltraWinGrid.ColumnStyle.DropDownList;
ultraGrid1.DisplayLayout.Bands[1].Columns["Ratio"].CellActivation = Activation.AllowEdit;
ugc.Row.Cells["Ratio"].Value = dt.Rows[0][0];
}
else
{
MessageBox.Show("找不到符合条件的水压系数,请先维护!", "提示", MessageBoxButtons.OK, MessageBoxIcon.Warning);
return false;
}
}
else
{
ultraGrid1.DisplayLayout.Bands[1].Columns["Ratio"].EditorComponent = null;
ultraGrid1.DisplayLayout.Bands[1].Columns["Ratio"].Style = Infragistics.Win.UltraWinGrid.ColumnStyle.Edit;
ultraGrid1.DisplayLayout.Bands[1].Columns["Ratio"].CellActivation = Activation.ActivateOnly;
}
ultraGrid1.UpdateData();
return true;
}
private void FindRatio(CellEventArgs e)
{
UltraGridRow ugr = e.Cell.Row.ParentRow;
string stdname = ugr.Cells["STD_NAME"].Value.ToString();
string steelcode = ugr.Cells["STEELCODE"].Value.ToString();
string min_d = ugr.Cells["MIN_D"].Value.ToString();
string max_d = ugr.Cells["MAX_D"].Value.ToString();
if (min_d == "")
min_d = "0";
if (max_d == "")
max_d = "99999";
DataTable dt = ServerHelper.GetData("com.steering.pss.qcm.CoreWaterStand.getWaterRatio", new Object[] { min_d, max_d, stdname, steelcode }, this.ob);
if (dt != null && dt.Rows.Count > 0)
{
DataTable newdt = new DataTable();
newdt.Columns.Add("Ratio");
for (int i = 0; i < dt.Rows.Count; i++)
{
if (dt.Rows[i][0].ToString() != "")
{
DataRow dr = newdt.NewRow();
dr["Ratio"] = dt.Rows[i][0];
newdt.Rows.Add(dr);
}
if (dt.Rows[i][1].ToString() != "")
{
DataRow dr1 = newdt.NewRow();
dr1["Ratio"] = dt.Rows[i][1];
newdt.Rows.Add(dr1);
}
}
UltraComboEditor uce = new UltraComboEditor();
uce.DataSource = newdt;
uce.DisplayMember = "Ratio";
uce.ValueMember = "Ratio";
this.Controls.Add(uce);
uce.Visible = false;
ultraGrid1.DisplayLayout.Bands[1].Columns["Ratio"].EditorComponent = uce;
// ultraGrid1.DisplayLayout.Bands[1].Columns["Ratio"].Style = Infragistics.Win.UltraWinGrid.ColumnStyle.DropDownList;
e.Cell.Row.Cells["Ratio"].Value = dt.Rows[0][0];
}
}
private int TestFormula(string str)
{
if (str == "")
return -1;
string formula = str.Replace("YS", "A");
formula = formula.Replace("(", "(");
formula = formula.Replace(")", ")");
//if (!formula.Contains("A"))
// return -1;
int left = 0;
int right = 0;
for (int i = 0; i < formula.Length; i++)
{
if (formula[i] == '(')
left += 1;
if (formula[i] == ')')
right += 1;
}
if (left != right)
{
return -1;
}
string reg = @"^(\(*[ftAD0-9]+(.[ftAD0-9]+)*\)*(\+|-|/|\*))+[ftAD0-9]+(.[ftAD0-9]+)*\)*$"; // f t A D 数字的加减乘除但不能防止其重复出现
if (!Regex.IsMatch(formula, reg))
return -1;
char[] ch = { '*', ' ', '(', ')', '/', 'D' };
string[] str_for = formula.Split(ch, StringSplitOptions.RemoveEmptyEntries);
List list = new List();
for (int i = 0; i < str_for.Length; i++)
{
if (!list.Contains(str_for[i]))
list.Add(str_for[i]);
}
if (list.Count < str_for.Length)
return -1;
return 0;
}
private void ultraGrid1_ClickCell(object sender, ClickCellEventArgs e)
{
}
///
/// 2015-07-15 PDY
///
private void InnerChange()
{
ultraGrid1.DisplayLayout.Bands[0].Columns["PROCESS_DESC"].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 ultraTextEditor3_EditorButtonClick(object sender, EditorButtonEventArgs e)
{
if (ultraGrid1.ActiveCell.Column.Key == "PROCESS_DESC")
{
string processCodes = ultraGrid1.ActiveRow.GetValue("PROCESS_CDOE");
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_CDOE", 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 frmMode = new FrmModel();
frmMode.FrmOb = this.ob;
frmMode.Code = ultraGrid1.ActiveRow.GetValue("MODEL_CODE_NK");
frmMode.Desc = ultraGrid1.ActiveRow.GetValue("MODEL_DESC_NK");
if (frmMode.ShowDialog() == System.Windows.Forms.DialogResult.OK)
{
ultraGrid1.ActiveRow.SetValue("MODEL_CODE_NK", frmMode.Code);
ultraGrid1.ActiveRow.SetValue("MODEL_DESC_NK", frmMode.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 DoQuery1()
{
//查询主表数据
DataTable dt = ServerHelper.GetData("com.steering.pss.qcm.CoreWaterStand.getComWaterNK",
new Object[] { msc }, this.ob);
dataTable2.Clear();
GridHelper.CopyDataToDatatable(ref dt, ref this.dataTable1, true);
//从表查询
DataTable dt1 = ServerHelper.GetData("com.steering.pss.qcm.CoreWaterStand.getComWaterNKC",
new Object[] { msc }, this.ob);
dt1 = QcmBaseCommon.FilterTable(dt, dt1, "WIC");
GridHelper.CopyDataToDatatable(ref dt1, ref this.dataTable2, true);
QcmBaseCommon.SetUltraGridNoEdit(ultraGrid1);
this.ultraGrid1.DisplayLayout.Bands[1].Columns["Ratio"].CellActivation = Activation.ActivateOnly;
//自适应
UltraGridColumn[] col = new UltraGridColumn[] { this.ultraGrid1.DisplayLayout.Bands[0].Columns["MEMO"], this.ultraGrid1.DisplayLayout.Bands[0].Columns["MIN_D"],
this.ultraGrid1.DisplayLayout.Bands[0].Columns["MAX_D"],this.ultraGrid1.DisplayLayout.Bands[0].Columns["MIN_H"],this.ultraGrid1.DisplayLayout.Bands[0].Columns["MAX_H"]
,this.ultraGrid1.DisplayLayout.Bands[0].Columns["MODEL_DESC"]};
GridHelper.RefreshAndAutoSizeExceptRows(ultraGrid1, col);
WriteTxtToGrid();
//isSelect = 0;
//展开或者定位
UltraGridRow[] rows1 = GridHelper.GetRowsWithKey(ultraGrid1, new string[] { "WIC" }, new string[] { _wic });
if (rows1.Length > 0)
{
rows1[0].Activate();
if (_isEx)
rows1[0].ExpandAll();
}
_isEx = false;
_wic = "";
ultraGrid1.UpdateData();
dataTable1.AcceptChanges();
dataTable2.AcceptChanges();
}
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("WIC")).ToList();
Rows = dataTable2.Select("WIC IN ('" + string.Join("','", Ids) + "')");
}
}
this.DialogResult = System.Windows.Forms.DialogResult.OK;
}
}
}