using Core.Mes.Client.Comm.Control;
using Core.Mes.Client.Comm.Server;
using CoreFS.CA06;
using Infragistics.Win.UltraWinGrid;
using System;
using System.Collections;
using System.Data;
using System.Windows.Forms;
namespace Core.StlMes.Client.Qcm
{
public partial class FrmProcessParametersD : FrmBase
{
public FrmProcessParametersD()
{
InitializeComponent();
}
private void FrmProcessParametersD_Load(object sender, EventArgs e)
{
}
///
/// 重写基类方法
///
///
///
public override void ToolBar_Click(object sender, string ToolbarKey)
{
switch (ToolbarKey)
{
case "doQuery":
doQuery();
break;
case "doSave":
this.doSave();
break;
case "Close":
this.Close();
break;
}
}
///
/// 查询功能实现
///
private void doQuery()
{
BindProcessTable();
//BindParametersTable();
}
///
/// 保存操作
///
private void doSave()
{
ultraGrid2.UpdateData();
//往工序点与工艺参数对应表中插入工序点编号和工艺参数编号。
ArrayList Params = new ArrayList();
string stationCode = ultraGrid1.ActiveRow.Cells["STATION_CODE"].Value.ToString();
foreach (DataRow dr in this.parametersTable.Rows)
{
if ((Boolean)dr["CHK"])
{
ArrayList param = new ArrayList();
//工序代码
param.Add(ultraGrid1.ActiveRow.Cells["PROCESS_CODE"].Value.ToString());
//工序描述
param.Add(ultraGrid1.ActiveRow.Cells["PROCESS_DESC"].Value.ToString());
//工序点代码
param.Add(stationCode);
//工序点描述
param.Add(ultraGrid1.ActiveRow.Cells["STATION_DESC"].Value.ToString());
//工艺参数代码
param.Add(dr["CRAFT_CODE"].ToString());
//工艺参数描述
param.Add(dr["CRAFTITEM_DESC"].ToString());
//单个参数维护个数
string allowCount = dr["ALLOW_COUNT"].ToString();
if ("".Equals(allowCount))
{
MessageBox.Show("单个参数维护个数不允许为空。", "提示", MessageBoxButtons.OK, MessageBoxIcon.Warning);
return;
}
param.Add(allowCount);
Params.Add(param);
}
}
//确定保存吗?
if (MessageBox.Show("是否确认保存?", "提示", MessageBoxButtons.YesNo, MessageBoxIcon.Question) == DialogResult.No)
{
return;
}
//将Params作为参数传递到服务端,执行插入工作。
CoreClientParam ccp = new CoreClientParam();
//服务端的包名+类名
ccp.ServerName = "com.steering.pss.qcm.CoreProcessParametersD";
//类里的方法名
ccp.MethodName = "doSave";
ccp.ServerParams = new object[] { Params, stationCode };
ccp = this.ExecuteNonQuery(ccp, CoreInvokeType.Internal);
if (ccp.ReturnCode == -1)
{
return;
}
else
{
MessageBox.Show("保存成功", "提示", MessageBoxButtons.OK, MessageBoxIcon.Information);
BindProcessTable();
foreach (UltraGridRow row in ultraGrid1.Rows)
{
if (stationCode.Equals(row.Cells["STATION_CODE"].Value.ToString()))
{
row.Activate();
}
}
}
}
///
/// 绑定右侧数据源,工艺参数与对应表两表联查
///
private void BindParametersTable(string processCode)
{
DataTable dt = ServerHelper.GetData("com.steering.pss.qcm.CoreProcessParametersD.getLineList", new Object[] { processCode }, this.ob);
GridHelper.CopyDataToDatatable(ref dt, ref this.parametersTable, true);
GridHelper.RefreshAndAutoSizeExceptColumns(ultraGrid2, new UltraGridColumn[] {
ultraGrid2.DisplayLayout.Bands[0].Columns["CHK"]
});
}
///
/// 绑定工序点数据源
///
private void BindProcessTable()
{
//DataTable dt = ServerHelper.GetData("com.steering.pss.qcm.CoreControlPointBasics.getLineList", new Object[] { true, "" }, this.ob);
//GridHelper.CopyDataToDatatable(ref dt, ref this.processTable, true);
DataTable dt = ServerHelper.GetData("com.steering.pss.qcm.CoreProcessParametersD.GetProcessGL", null, this.ob);
GridHelper.CopyDataToDatatable(ref dt, ref this.processTable, true);
GridHelper.RefreshAndAutoSizeExceptColumns(ultraGrid1, new UltraGridColumn[] {
});
}
private void ultraGrid1_AfterRowActivate(object sender, EventArgs e)
{
//select 工艺参数 from 对应表 where 工序点 = 当前选中工序点编号
string processCode = ultraGrid1.ActiveRow.Cells["STATION_CODE"].Value.ToString();
BindParametersTable(processCode);
DataTable dt = ServerHelper.GetData("com.steering.pss.qcm.CoreProcessParametersD.GetParameters", new Object[] { processCode }, this.ob);
//将界面上所有复选框重置为false。
if (parametersTable.Rows.Count > 0)
{
foreach (DataRow dr in parametersTable.Rows)
{
dr["CHK"] = false;
}
}
//判断是否有勾选项。
if (dt.Rows.Count > 0)
{
foreach (DataRow dr in parametersTable.Rows)
{
for (int i = 0; i < dt.Rows.Count; i++)
{
if (dr["CRAFT_CODE"].ToString().Equals(dt.Rows[i]["CRAFTITEM_CODE"].ToString()))
{
dr["CHK"] = true;
break;
}
}
}
}
//未勾选不允许编辑数据。
for (int i = 0; i < ultraGrid2.Rows.Count; i++)
{
for (int j = 0; j < ultraGrid2.Rows[i].Cells.Count; j++)
{
if (j != 4)
{
ultraGrid2.Rows[i].Cells[j].Activation = Infragistics.Win.UltraWinGrid.Activation.NoEdit;
}
}
//如果已经选中,则单个参数可维护个数允许编辑。
if ((Boolean)ultraGrid2.Rows[i].Cells[4].Value)
{
ultraGrid2.Rows[i].Cells[5].Activation = Infragistics.Win.UltraWinGrid.Activation.AllowEdit;
}
}
}
///
/// 勾选时,让单个参数维护个数可编辑
///
///
///
private void ultraGrid2_CellChange(object sender, CellEventArgs e)
{
ultraGrid2.UpdateData();
if (e.Cell.Column.Key.Equals("CHK"))
{
if ((Boolean)e.Cell.Value)
{
for (int i = 0; i < e.Cell.Row.Cells.Count; i++)
{
//16 17 18 19 20 21 24
if (i != 0 && i != 1 && i != 2 && i != 3)
{
e.Cell.Row.Cells[i].Activation = Infragistics.Win.UltraWinGrid.Activation.AllowEdit;
}
}
}
else
{
for (int i = 0; i < e.Cell.Row.Cells.Count; i++)
{
if (i != 4)
{
e.Cell.Row.Cells[i].Activation = Infragistics.Win.UltraWinGrid.Activation.NoEdit;
}
}
}
}
}
private void ultraGrid2_AfterCellUpdate(object sender, CellEventArgs e)
{
}
}
}