using System;
using System.Collections.Generic;
using System.Collections;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Text;
using System.Windows.Forms;
using CoreFS.CA06;
using Infragistics.Win.UltraWinGrid;
using Core.StlMes.Client.LgCommon;
namespace Core.StlMes.Client.LgIntegrationQuery
{
public partial class frmStationconMateriel : frmStyleBase
{
public bool isSave = false; //改变未保存
public string pos_name = ""; //改变前的的岗位名
public ArrayList beforeCposid = new ArrayList(); //改变前岗位
public ArrayList beforeMcode = new ArrayList(); //改变前的物料编码
public ArrayList beforeMtype = new ArrayList(); //改变前的物料类型
public ArrayList beforeMname = new ArrayList(); //改变前的物料类型
public ArrayList afterMcode = new ArrayList(); //改变后的物料物料编码
public frmStationconMateriel()
{
InitializeComponent();
}
private void frmStationconMateriel_Load(object sender, EventArgs e)
{
QueryData();
SetColumnMode3(ultraGrid1);
SetColumnMode3(ultraGrid2);
SetColumnMode(ultraGrid2);
}
private void QueryData()
{
dataTable1.Clear();
GetDataSource(getMaterType());
ultraGrid1.DisplayLayout.Bands[0].Columns["ERPITEMCODE"].Header.VisiblePosition = 1;
GetStationconMateriel();
SetExistMaintenanceColor();
}
// 设置下拉列表物料类型
///
/// 设置下拉列表物料类型
///
///
private void SetColumnMode3( Infragistics.Win.UltraWinGrid.UltraGrid ultGrid )
{
DataTable dt = new DataTable();
dt.TableName = "WLLX";
DataColumn dc = new DataColumn("BCBM", Type.GetType("System.String"));
dt.Columns.Add(dc);
dc = new DataColumn("BCNA", Type.GetType("System.String"));
dt.Columns.Add(dc);
DataRow dr = dt.NewRow();
dr["BCBM"] = "HJ";
dr["BCNA"] = "合金";
dt.Rows.Add(dr);
dr = dt.NewRow();
dr["BCBM"] = "FL";
dr["BCNA"] = "辅料";
dt.Rows.Add(dr);
dr = dt.NewRow();
dr["BCBM"] = "WS";
dr["BCNA"] = "喂线";
dt.Rows.Add(dr);
dr = dt.NewRow();
dr["BCBM"] = "BH";
dr["BCNA"] = "保护渣";
dt.Rows.Add(dr);
dr = dt.NewRow();
dr["BCBM"] = "GT";
dr["BCNA"] = "钢铁料";
dt.Rows.Add(dr);
ClsControlPack.SetGridDropDownList("MATERIELTYPE", "Table1", "物料类型名称", 90, ultGrid, dt, "BCBM", "BCNA");
}
// 设置下拉列表岗位信息
///
/// 设置下拉列表岗位信息
///
///
private void SetColumnMode(Infragistics.Win.UltraWinGrid.UltraGrid ultGrid)
{
DataTable dt = new DataTable();
dt.TableName = "WLLX";
DataColumn dc = new DataColumn("BCBM", Type.GetType("System.String"));
dt.Columns.Add(dc);
dc = new DataColumn("BCNA", Type.GetType("System.String"));
dt.Columns.Add(dc);
DataRow dr = dt.NewRow();
dr["BCBM"] = "HMP";
dr["BCNA"] = "铁水预处理";
dt.Rows.Add(dr);
dr = dt.NewRow();
dr["BCBM"] = "BOF";
dr["BCNA"] = "转炉";
dt.Rows.Add(dr);
dr = dt.NewRow();
dr["BCBM"] = "CAS";
dr["BCNA"] = "吹氩站";
dt.Rows.Add(dr);
dr = dt.NewRow();
dr["BCBM"] = "LFS";
dr["BCNA"] = "精炼炉";
dt.Rows.Add(dr);
dr = dt.NewRow();
dr["BCBM"] = "RHS";
dr["BCNA"] = "RH炉";
dt.Rows.Add(dr);
dr = dt.NewRow();
dr["BCBM"] = "CCM";
dr["BCNA"] = "连铸机";
dt.Rows.Add(dr);
ClsControlPack.SetGridDropDownList("CRAFTPOSID", "Table1", "岗位", 130, ultGrid, dt, "BCBM", "BCNA");
}
// 保存物料信息
///
/// 保存物料信息
///
private void SaveData()
{
try
{
if (ultraGrid1.Rows.Count == 0)
{
MessageBox.Show("没有可选的物料!", "提示", MessageBoxButtons.OK, MessageBoxIcon.Asterisk);
return;
}
ArrayList listCposid = new ArrayList(); //岗位
ArrayList listMcode = new ArrayList(); //物料编码
ArrayList listMtype = new ArrayList(); //物料类型
ArrayList listMname = new ArrayList(); //物料名称
string flag="0";
string strCraftPosID = "";
bool blValue = false;
if (ultraGrid1.Rows.Count > 0)
{
if (rdbHmp.Checked) strCraftPosID = "HMP";
if (rdbBOF.Checked) strCraftPosID = "BOF";
if (rdbCAS.Checked) strCraftPosID = "CAS";
if (rdbLFS.Checked) strCraftPosID = "LFS";
if (rdbRHS.Checked) strCraftPosID = "RHS";
if (rdbVDS.Checked) strCraftPosID = "VDS";
if (rdbCCM.Checked) strCraftPosID = "CCM";
ultraGrid1.UpdateData();
for (int i = 0; i < ultraGrid1.Rows.Count; i++)
{
if (Convert.ToBoolean(ultraGrid1.Rows[i].Cells["Flag"].Value) == true)
{
listCposid.Add(strCraftPosID);
listMcode.Add(ultraGrid1.Rows[i].Cells["MATERIELCODE"].Value.ToString().Trim());
listMtype.Add(ultraGrid1.Rows[i].Cells["MATERIELTYPE"].Value.ToString().Trim());
listMname.Add(ultraGrid1.Rows[i].Cells["MATERIELNAME"].Value.ToString().Trim());
blValue = true;
}
}
if (blValue == false)
{
listCposid = beforeCposid;
listMcode = beforeMcode;
listMtype = beforeMtype;
listMname = beforeMname;
flag = "1";
//MessageBox.Show("没有为岗位选择物料!", "提示", MessageBoxButtons.OK, MessageBoxIcon.Asterisk);
//return;
}
//定义一个ArrayList集合存储变量[参数]值
string strErr = "";
ArrayList sArgs = new ArrayList();
sArgs.Add(listCposid);
sArgs.Add(listMcode);
sArgs.Add(listMtype);
sArgs.Add(listMname);
sArgs.Add(getMaterType());
sArgs.Add(flag);
ClsDataAccessPack.DoProcedure("frmMater_AddToPos.select", sArgs, out strErr, ob);
if (strErr == "")
{
QueryData();
MessageBox.Show("岗位物料配置保存成功!", "提示", MessageBoxButtons.OK, MessageBoxIcon.Asterisk);
}
else
{
MessageBox.Show("岗位物料配置保存失败!", "提示", MessageBoxButtons.OK, MessageBoxIcon.Asterisk);
}
}
}
catch (System.Exception ex)
{
Console.WriteLine(ex.ToString());
}
}
// 获取物料
///
/// 获取物料
///
///
private void GetDataSource(string strMType)
{
try
{
string strErr = "";
//定义一个ArrayList集合存储变量[参数]值
ArrayList arry = new ArrayList();
arry.Add("frmStoresProject.select");
arry.Add(strMType);
CommonClientToServer cctos = new CommonClientToServer();
cctos.ob = this.ob;
DataSet ds = cctos.ExecuteQueryFunctions("Core.LgMes.Server.Common.ComDBQuery",
"doSimpleQuery", arry, out strErr);
if (strErr == "" && ds != null)
{
int i;
for (i = 0; i < ds.Tables[0].Rows.Count; i++)
{
DataRow dr = dataTable1.NewRow();
dr["Flag"] = false;
dr["MaterielCode"] = ds.Tables[0].Rows[i]["MaterielCode"].ToString();
dr["MaterielName"] = ds.Tables[0].Rows[i]["MaterielName"].ToString();
dr["MaterielforShort"] = ds.Tables[0].Rows[i]["MaterielforShort"].ToString();
dr["MaterielType"] = ds.Tables[0].Rows[i]["MaterielType"].ToString();
dr["MaterielUnits"] = ds.Tables[0].Rows[i]["MaterielUnits"].ToString();
dr["JmType"] = ds.Tables[0].Rows[i]["JmType"].ToString();
//dr["ERPITEMCODE"] = dw.Rows[i]["ERPITEMCODE"];
dataTable1.Rows.Add(dr);
}
}
}
catch { }
// PublicMethod.RefreshAndAutoSize(ultraGrid1);
}
// 获取岗位对应物料
///
/// 获取岗位对应物料
///
private void GetStationconMateriel()
{
try
{
string strErr = "";
string strCPosid = "";
string strMType = "";
dataSet2.Tables[0].Clear();
//定义一个ArrayList集合存储变量[参数]值
ArrayList arry = new ArrayList();
arry.Add("frmStationconMateriel.select");
arry.Add(getPosType());
arry.Add(getMaterType());
CommonClientToServer cctos = new CommonClientToServer();
cctos.ob = this.ob;
DataSet ds = cctos.ExecuteQueryFunctions("Core.LgMes.Server.Common.ComDBQuery",
"doSimpleQuery", arry, out strErr);
if (strErr == "" && ds != null)
{
int i;
for (i = 0; i < ds.Tables[0].Rows.Count; i++)
{
DataRow dr = dataSet2.Tables[0].NewRow();
dr["CRAFTPOSID"] = ds.Tables[0].Rows[i]["CRAFTPOSID"].ToString();
dr["MATERIELCODE"] = ds.Tables[0].Rows[i]["MATERIELCODE"].ToString();
dr["MATERIELTYPE"] = ds.Tables[0].Rows[i]["MATERIELTYPE"].ToString();
dr["MATERIELNAME"] = ds.Tables[0].Rows[i]["MATERIELNAME"].ToString();
dataSet2.Tables[0].Rows.Add(dr);
}
}
}
catch { }
}
// 删除岗位对应物料
///
/// 删除岗位对应物料
///
private void DeleteMaintenance()
{
try
{
string strCraftposID = "";
string strMaterielCode = "";
string strErr = "";
if (ultraGrid2.ActiveRow != null)
{
strCraftposID = ultraGrid2.ActiveRow.Cells["CraftposID"].Value.ToString();
strMaterielCode = ultraGrid2.ActiveRow.Cells["MaterielCode"].Value.ToString();
//定义一个ArrayList集合存储变量[参数]值
ArrayList arry = new ArrayList();
arry.Add("frmSMateriel_DelPInfo.select");
arry.Add(strCraftposID);
arry.Add(strMaterielCode);
CommonClientToServer cctos = new CommonClientToServer();
cctos.ob = this.ob;
string info = cctos.NoQueryFunctions("Core.LgMes.Server.Common.ComDBSave",
"doSimpleSave", arry, out strErr);
if (strErr == "" && info == "")
{
MessageBox.Show("删除成功!", "提示", MessageBoxButtons.OK, MessageBoxIcon.Asterisk);
GetStationconMateriel();
}
else { MessageBox.Show("删除失败,请重新操作!", "提示", MessageBoxButtons.OK, MessageBoxIcon.Asterisk); }
}
else
MessageBox.Show("请在右边岗位与物料对应列表选择要删除的记录!", "提示", MessageBoxButtons.OK, MessageBoxIcon.Asterisk);
}
catch { }
}
// 标识已经配置的物料
///
/// 标识已经配置的物料
///
private void SetExistMaintenanceColor()
{
try
{
//for (int j = 0; j < ultraGrid1.Rows.Count; j++)
//{
// // ultraGrid1.DisplayLayout.Rows[j].CellAppearance.ForeColor = Color.Black;
// // ultraGrid1.DisplayLayout.Rows[j].Cells["Flag"].Value = "FALSE";
// // ultraGrid1.DisplayLayout.Rows[j].Cells["Flag"].Column.CellActivation = Infragistics.Win.UltraWinGrid.Activation.AllowEdit;
//}
beforeCposid.Clear();
beforeMcode.Clear();
beforeMtype.Clear();
beforeMname.Clear();
afterMcode.Clear();
foreach (DataRow dr in dataSet2.Tables[0].Rows)
{
for (int i = 0; i < ultraGrid1.Rows.Count; i++)
{
if (dr["MATERIELCODE"].ToString() == ultraGrid1.Rows[i].Cells["MATERIELCODE"].Value.ToString())
{
beforeCposid.Add(getPosType());
beforeMcode.Add(ultraGrid1.Rows[i].Cells["MATERIELCODE"].Value.ToString());
beforeMtype.Add(ultraGrid1.Rows[i].Cells["MATERIELTYPE"].Value.ToString());
beforeMname.Add(ultraGrid1.Rows[i].Cells["MATERIELNAME"].Value.ToString());
afterMcode.Add(ultraGrid1.Rows[i].Cells["MATERIELCODE"].Value.ToString());
ultraGrid1.DisplayLayout.Rows[i].Cells["Flag"].Value = "TRUE";
// ultraGrid1.DisplayLayout.Rows[i].Cells["Flag"].Activation = Infragistics.Win.UltraWinGrid.Activation.NoEdit;
ultraGrid1.DisplayLayout.Rows[i].CellAppearance.ForeColor = Color.Red;
}
}
}
}
catch { }
}
// 获得物料类型
///
/// 获得物料类型
///
private string getMaterType()
{
string type = "";
if (this.radHJ.Checked == true)
{
type = radHJ.Tag.ToString();
}
else if (this.radFL.Checked == true)
{
type = radFL.Tag.ToString();
}
else if (this.radWS.Checked == true)
{
type = radWS.Tag.ToString();
}
else if (this.radBHZ.Checked == true)
{
type = radBHZ.Tag.ToString();
}
else if (this.radGT.Checked == true)
{
type = radGT.Tag.ToString();
}
else if (this.radAllType.Checked == true)
{
type = "";
}
return type;
}
// 获得岗位类型
///
/// 获得岗位类型
///
private string getPosType()
{
string type = "";
if (this.rdbHmp.Checked == true)
{
type = rdbHmp.Tag.ToString();
}
else if (this.rdbBOF.Checked == true)
{
type = rdbBOF.Tag.ToString();
}
else if (this.rdbCAS.Checked == true)
{
type = rdbCAS.Tag.ToString();
}
else if (this.rdbLFS.Checked == true)
{
type = rdbLFS.Tag.ToString();
}
else if (this.rdbRHS.Checked == true)
{
type = rdbRHS.Tag.ToString();
}
else if (this.rdbVDS.Checked == true)
{
type = rdbVDS.Tag.ToString();
}
else if (this.rdbCCM.Checked == true)
{
type = rdbCCM.Tag.ToString();
}
return type;
}
// 比较两个ArrayList是否值相等
///
/// 比较两个ArrayList是否值相等
///
/// 值型一维数组1
/// 值型一维数组2
/// 比较结果,相等则true,否则false
public static bool IsEquals(ArrayList array1, ArrayList array2)
{
//比较类型是否一样
if (!Object.ReferenceEquals(array1.GetType(), array2.GetType()))
{
return false;
}
//比较长度是否一样
if (array1.Count != array2.Count)
{
return false;
}
//比较成员是否对应相等
for (int i = 0; i < array1.Count; i++)
{
string v1 = array1[i].ToString().Trim();
string v2 = array2[i].ToString().Trim();
if (v1 != v2)
{
return false;
}
}
return true;
}
private void radMater_CheckedChanged(object sender, EventArgs e)
{
try
{
//if (((RadioButton)sender).Checked == false)
//{
// pos_name = ((RadioButton)sender).Tag.ToString();
//}
if (((RadioButton)sender).Checked)
{
//if (!IsEquals(beforeMcode, afterMcode))
//{
// isSave = true;
// if (MessageBox.Show("岗位物料配置已修改,还未保存!\n保存点击【是】,放弃点击【否】", "提示", MessageBoxButtons.YesNo, MessageBoxIcon.Question) == DialogResult.Yes)
// {
// SaveData();
// }
// isSave = false; ;
//}
QueryData();
}
}
catch { }
}
public override void ToolBar_Click(object sender, string ToolbarKey)
{
switch (ToolbarKey)
{
//case "Add":
// SaveData();
// break;
//case "Delete":
// if ((MessageBox.Show("确认要删除所选记录!", "提示", MessageBoxButtons.YesNo, MessageBoxIcon.Asterisk)) == DialogResult.Yes)
// {
// DeleteMaintenance();
// }
// break;
case "Query":
try
{
//if (!IsEquals(beforeMcode, afterMcode))
//{
// if (MessageBox.Show("岗位物料配置已修改,还未保存!\n保存点击【是】,放弃点击【否】", "提示", MessageBoxButtons.YesNo, MessageBoxIcon.Question) == DialogResult.Yes)
// {
// SaveData();
// }
//}
QueryData();
}
catch { }
break;
case "Save":
SaveData();
break;
case "Exit":
this.Close();
break;
default:
break;
}
}
private void rdbHmp_CheckedChanged(object sender, EventArgs e)
{
try
{
if (!((RadioButton)sender).Checked)
{
//if (!IsEquals(beforeMcode, afterMcode))
//{
// if (MessageBox.Show("岗位物料配置已修改,还未保存!\n保存点击【是】,放弃点击【否】", "提示", MessageBoxButtons.YesNo, MessageBoxIcon.Question) == DialogResult.Yes)
// {
// SaveData();
// }
//}
QueryData();
}
}
catch { }
}
private void ultraGrid1_AfterCellActivate(object sender, EventArgs e)
{
//if (ultraGrid1.ActiveRow != null)
//{
// if (ultraGrid1.ActiveRow.CellAppearance.ForeColor == Color.Red)
// {
// MessageBox.Show("所选岗位已经存在该物料,物料不能重复", "提示", MessageBoxButtons.OK, MessageBoxIcon.Asterisk);
// return;
// }
// foreach (DataRow dr in dataSet2.Tables[0].Rows)
// {
// if (dr["MATERIELCODE"].ToString() == ultraGrid1.ActiveRow.Cells["MATERIELCODE"].Value.ToString())
// {
// MessageBox.Show("所选岗位已经存在该物料,物料不能重复", "提示", MessageBoxButtons.OK, MessageBoxIcon.Asterisk);
// return;
// }
// }
//}
}
private void ultraGrid1_AfterCellUpdate(object sender, CellEventArgs e)
{
try
{
if (ultraGrid1.Rows.Count == 0)
return;
else
{
ultraGrid1.UpdateData();
if (Convert.ToBoolean(ultraGrid1.ActiveRow.Cells["Flag"].Value) == true)
{
if (!afterMcode.Contains(ultraGrid1.ActiveRow.Cells["MATERIELCODE"].Value.ToString()))
{
afterMcode.Add(ultraGrid1.ActiveRow.Cells["MATERIELCODE"].Value.ToString());
}
ultraGrid1.ActiveRow.CellAppearance.ForeColor = Color.Red;
}
else
{
if (afterMcode.Contains(ultraGrid1.ActiveRow.Cells["MATERIELCODE"].Value.ToString()))
{
afterMcode.Remove(ultraGrid1.ActiveRow.Cells["MATERIELCODE"].Value.ToString());
}
ultraGrid1.ActiveRow.CellAppearance.ForeColor = Color.Black;
}
}
}
catch { }
}
private void frmStationconMateriel_FormClosing(object sender, FormClosingEventArgs e)
{
try
{
//if (!IsEquals(beforeMcode, afterMcode))
//{
// if (MessageBox.Show("岗位物料配置已修改,还未保存!\n保存点击【是】,放弃点击【否】", "提示", MessageBoxButtons.YesNo, MessageBoxIcon.Question) == DialogResult.Yes)
// {
// SaveData();
// }
//}
}
catch { }
}
}
}