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 Core.StlMes.Client.LgCommon;
namespace Core.StlMes.Client.LgIntegrationQuery
{
public partial class FrmStoresMateriel : Core.StlMes.Client.LgCommon.frmStyleBase
{
//string strMess = "";
//string MaterielCode = "";
//string MaterielName = "";
//string MaterielforShort = "";
//string MaterielType = "";
//string MaterielUnits="";
//string JmType = "";
public ArrayList beforeMcode = new ArrayList(); //改变前的物料编码
public ArrayList beforeMtype = new ArrayList(); //改变前的物料类型
public ArrayList beforeMname = new ArrayList(); //改变前的物料类型
public ArrayList afterMcode = new ArrayList(); //改变后的物料物料编码
public DataSet allMater;
public FrmStoresMateriel()
{
InitializeComponent();
}
private void FrmStoresMateriel_Load(object sender, EventArgs e)
{
QueryData();
// SetColumnMode1();
SetColumnMode2();
SetColumnMode3();
SetColumnMode4();
}
private void QueryData()
{
dataTable1.Clear();
GetAllDataSource(getEnableSqlWhere());
GetDataSource(getMaterSqlWhere());
SetExistMaintenanceColor();
}
///
/// 加料过程类型
///
private void SetColumnMode1()
{
DataTable dt = new DataTable();
dt.TableName = "JIALIAO";
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"] = "YLGC";
dr["BCNA"] = "冶炼过程添加料";
dt.Rows.Add(dr);
dr = dt.NewRow();
dr["BCBM"] = "CGGC";
dr["BCNA"] = "出钢过程添加料";
dt.Rows.Add(dr);
ClsControlPack.SetGridDropDownList("JMTYPE", "Table1", "加料过程类型", 90, ultraGrid1, dt, "BCBM", "BCNA");
ClsControlPack.SetGridDropDownList("JMTYPE", "Table2", "加料过程类型", 90, ultraGrid2, dt, "BCBM", "BCNA");
}
///
/// 物料单位
///
private void SetColumnMode2()
{
DataTable dt = new DataTable();
dt.TableName = "DANWEI";
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"] = "KG";
dr["BCNA"] = "千克";
dt.Rows.Add(dr);
dr = dt.NewRow();
dr["BCBM"] = "TON";
dr["BCNA"] = "吨";
dt.Rows.Add(dr);
dr = dt.NewRow();
dr["BCBM"] = "D";
dr["BCNA"] = "袋";
dt.Rows.Add(dr);
dr = dt.NewRow();
dr["BCBM"] = "M";
dr["BCNA"] = "米";
dt.Rows.Add(dr);
dr = dt.NewRow();
dr["BCBM"] = "KM3";
dr["BCNA"] = "立方米";
dt.Rows.Add(dr);
dr = dt.NewRow();
dr["BCBM"] = "KWH";
dr["BCNA"] = "千瓦时";
dt.Rows.Add(dr);
ClsControlPack.SetGridDropDownList("MATERIELUNITS", "Table1", "物料单位", 90, ultraGrid1, dt, "BCBM", "BCNA");
ClsControlPack.SetGridDropDownList("MATERIELUNITS", "Table2", "物料单位", 90, ultraGrid2, dt, "BCBM", "BCNA");
}
///
/// 物料类型名称
///
private void SetColumnMode3()
{
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, ultraGrid1, dt, "BCBM", "BCNA");
ClsControlPack.SetGridDropDownList("MATERIELTYPE", "Table2", "物料类型名称", 90, ultraGrid2, dt, "BCBM", "BCNA");
}
///
/// 消耗类型
///
private void SetColumnMode4()
{
DataTable dt = new DataTable();
dt.TableName = "XHLX";
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"] = "0";
dr["BCNA"] = "默认";
dt.Rows.Add(dr);
dr = dt.NewRow();
dr["BCBM"] = "1";
dr["BCNA"] = "实际消耗";
dt.Rows.Add(dr);
dr = dt.NewRow();
dr["BCBM"] = "2";
dr["BCNA"] = "计量点";
dt.Rows.Add(dr);
ClsControlPack.SetGridDropDownList("CONSUMPTIONTYPE", "Table1", "消耗类型", 90, ultraGrid1, dt, "BCBM", "BCNA");
}
// 保存物料信息
///
/// 保存物料信息
///
private void SaveData()
{
try
{
if (ultraGrid2.Rows.Count == 0)
{
MessageBox.Show("没有可选的物料!", "提示", MessageBoxButtons.OK, MessageBoxIcon.Asterisk);
return;
}
ArrayList listMcode = new ArrayList(); //物料编码
ArrayList listMtype = new ArrayList(); //物料类型
ArrayList listMname = new ArrayList(); //物料名称
ArrayList listMunits = new ArrayList(); //物料单位
string flag = "0";
string mtype = getMaterType();
bool blValue = false;
if (ultraGrid2.Rows.Count > 0)
{
ultraGrid2.UpdateData();
for (int i = 0; i < ultraGrid2.Rows.Count; i++)
{
if (Convert.ToBoolean(ultraGrid2.Rows[i].Cells["Flag"].Value) == true)
{
//if (ultraGrid2.Rows[i].Cells["MATERIELTYPE"].Value.ToString().Trim() == "" || ultraGrid2.Rows[i].Cells["MATERIELTYPE"].Value.ToString().Trim() == mtype)
//{
listMcode.Add(ultraGrid2.Rows[i].Cells["MATERIELCODE"].Value.ToString().Trim());
listMtype.Add(mtype);
listMname.Add(ultraGrid2.Rows[i].Cells["MATERIELNAME"].Value.ToString().Trim());
listMunits.Add(ultraGrid2.Rows[i].Cells["MATERIELUNITS"].Value.ToString().Trim());
blValue = true;
//}
}
}
if (blValue == false)
{
listMcode = beforeMcode;
listMtype = beforeMtype;
listMname = beforeMname;
flag = "1";
}
//定义一个ArrayList集合存储变量[参数]值
string strErr = "";
ArrayList sArgs = new ArrayList();
sArgs.Add(listMcode);
sArgs.Add(listMtype);
sArgs.Add(listMname);
sArgs.Add(listMunits);
sArgs.Add(flag);
ClsDataAccessPack.DoProcedure("frmStoresMater_Add.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());
}
}
// 获取SAP物料信息
///
/// 获取SAP物料信息
///
private void GetAllDataSource(string sqlWhere)
{
try
{
string strErr = "";
ArrayList codelist = new ArrayList();
//定义一个ArrayList集合存储变量[参数]值
string type = getMaterType();
ArrayList arry = new ArrayList();
ArrayList sqlList = new ArrayList();
arry.Add("FrmSapMateriel.Query");
CoreClientParam ccp = new CoreClientParam();
DataTable dt = new DataTable();
ccp.ServerName = "Core.LgMes.Server.Common.ComDBQuery";
ccp.MethodName = "doQuery";
ccp.ServerParams = new object[] { arry, sqlList };
ccp.SourceDataTable = dt;
this.ExecuteSortResultByQueryToDataTable(ccp, CoreInvokeType.Internal);
DataSet ds = new DataSet();
ds.Tables.Add(dt.Copy());
dataTable2.Clear();
if (strErr == "" && ds != null)
{
if (radEnable.Checked)
{
string mcode = "";
GetDataSource("");
for (int i = 0; i < ds.Tables[0].Rows.Count; i++)
{
mcode="";
for (int j = 0; j < allMater.Tables[0].Rows.Count; j++)
{
if (ds.Tables[0].Rows[i]["MaterielCode"].ToString() == allMater.Tables[0].Rows[j]["MATERIELCODE"].ToString()
&& allMater.Tables[0].Rows[j]["MATERIELTYPE"].ToString() != type)
{
mcode = ds.Tables[0].Rows[i]["MaterielCode"].ToString();
}
}
if (mcode == "")
{
DataRow dr = dataTable2.NewRow();
dr["Flag"] = "FALSE";
dr["MaterielCode"] = ds.Tables[0].Rows[i]["MaterielCode"];
dr["MaterielName"] = ds.Tables[0].Rows[i]["MaterielName"];
dr["MaterielType"] = ds.Tables[0].Rows[i]["MaterielType"];
dr["MaterielUnits"] = ds.Tables[0].Rows[i]["MaterielUnits"];
dataTable2.Rows.Add(dr);
}
}
}
else
{
for (int i = 0; i < ds.Tables[0].Rows.Count; i++)
{
DataRow dr = dataTable2.NewRow();
dr["Flag"] = "FALSE";
dr["MaterielCode"] = ds.Tables[0].Rows[i]["MaterielCode"];
dr["MaterielName"] = ds.Tables[0].Rows[i]["MaterielName"];
dr["MaterielType"] = ds.Tables[0].Rows[i]["MaterielType"];
dr["MaterielUnits"] = ds.Tables[0].Rows[i]["MaterielUnits"];
dataTable2.Rows.Add(dr);
}
}
}
ultraGrid2.UpdateData();
dataTable2.AcceptChanges();
}
catch { }
}
// 获取类型物料信息
///
/// 获取类型物料信息
///
private void GetDataSource(string sqlWhere)
{
try
{
string strErr = "";
//定义一个ArrayList集合存储变量[参数]值
ArrayList arry = new ArrayList();
ArrayList sqlList = new ArrayList();
arry.Add("FrmStoresMateriel.Query");
sqlList.Add(sqlWhere);
CoreClientParam ccp = new CoreClientParam();
DataTable dt = new DataTable();
ccp.ServerName = "Core.LgMes.Server.Common.ComDBQuery";
ccp.MethodName = "doQuery";
ccp.ServerParams = new object[] { arry, sqlList };
ccp.SourceDataTable = dt;
this.ExecuteSortResultByQueryToDataTable(ccp, CoreInvokeType.Internal);
if (sqlWhere == "")
{
allMater=new DataSet();
allMater.Tables.Add(dt.Copy());
return;
}
DataSet ds = new DataSet();
ds.Tables.Add(dt.Copy());
dataTable1.Clear();
if (strErr == "" && ds != null)
{
int i;
for (i = 0; i < ds.Tables[0].Rows.Count; i++)
{
DataRow dr = dataTable1.NewRow();
dr["MaterielCode"] = ds.Tables[0].Rows[i]["MaterielCode"];
dr["MaterielName"] = ds.Tables[0].Rows[i]["MaterielName"];
dr["MaterielforShort"] = ds.Tables[0].Rows[i]["MaterielforShort"];
dr["MaterielType"] = ds.Tables[0].Rows[i]["MaterielType"];
dr["MaterielUnits"] = ds.Tables[0].Rows[i]["MaterielUnits"];
dr["CONSUMPTIONTYPE"] = ds.Tables[0].Rows[i]["CONSUMPTIONTYPE"];
dr["JmType"] = ds.Tables[0].Rows[i]["JmType"];
dataTable1.Rows.Add(dr);
}
ultraGrid1.UpdateData();
dataTable1.AcceptChanges();
}
}
catch { }
}
// 保存消耗类型
///
/// 保存消耗类型
///
private void SaveType()
{
try
{
ArrayList listMcode = new ArrayList(); //物料编码
ArrayList listMtype = new ArrayList(); //物料消耗类型
ArrayList listNameShort = new ArrayList(); //物料简称
if (ultraGrid1.Rows.Count == 0)
{
MessageBox.Show("该类型没有配置物料信息!", "提示", MessageBoxButtons.OK, MessageBoxIcon.Asterisk);
return;
}
ultraGrid1.UpdateData();
for (int i = 0; i < ultraGrid1.Rows.Count; i++)
{
listMcode.Add(ultraGrid1.Rows[i].Cells["MATERIELCODE"].Value.ToString().Trim());
listMtype.Add(ultraGrid1.Rows[i].Cells["CONSUMPTIONTYPE"].Value.ToString().Trim());
if (ultraGrid1.Rows[i].Cells["MATERIELFORSHORT"].Value.ToString().Trim() == "")
{
MessageBox.Show("物料编码为【" + ultraGrid1.Rows[i].Cells["MATERIELCODE"].Value.ToString().Trim() +
"】的物料简称不能为空!", "提示", MessageBoxButtons.OK, MessageBoxIcon.Asterisk);
}
else
{
listNameShort.Add(ultraGrid1.Rows[i].Cells["MATERIELFORSHORT"].Value.ToString().Trim());
}
}
string strErr = "";
ArrayList sArgs = new ArrayList();
sArgs.Add(listMcode);
sArgs.Add(listMtype);
sArgs.Add(listNameShort);
ClsDataAccessPack.DoProcedure("frmConsumptionType_Update", sArgs, out strErr, ob);
if (strErr == "")
{
QueryData();
MessageBox.Show("物料消耗类型保存成功!", "提示", MessageBoxButtons.OK, MessageBoxIcon.Asterisk);
}
else
{
MessageBox.Show("物料消耗类型保存失败!", "提示", MessageBoxButtons.OK, MessageBoxIcon.Asterisk);
}
}
catch { }
}
// 获得物料类型
///
/// 获得物料类型
///
private string getMaterType()
{
try
{
string type = "";
string sqlWhere = "";
if (this.radHJ.Checked)
{
type = radHJ.Tag.ToString();
}
else if (this.radFL.Checked)
{
type = radFL.Tag.ToString();
}
else if (this.radWS.Checked)
{
type = radWS.Tag.ToString();
}
else if (this.radBHZ.Checked)
{
type = radBHZ.Tag.ToString();
}
else if (this.radGT.Checked)
{
type = radGT.Tag.ToString();
}
return type;
}
catch
{
return "";
}
}
// 获得物料类型查询条件
///
/// 获得物料类型查询条件
///
private string getMaterSqlWhere()
{
string mater_type = getMaterType();
if (mater_type == "") return "";
string sqlWhere = "";
sqlWhere += " and MATERIELTYPE='" + mater_type + "'";
return sqlWhere;
}
// 获得可选的物料类型
///
/// 获得可选的物料类型
///
private string getEnableType()
{
string type = "";
if (this.radEnable.Checked)
{
type = radEnable.Tag.ToString();
}
else if (this.radAll.Checked)
{
type = radAll.Tag.ToString();
}
return type;
}
// 获得可选物料查询条件
///
/// 获得可选物料查询条件
///
private string getEnableSqlWhere()
{
string enable_type = getEnableType();
string mater_type = getMaterType();
string sqlWhere = "";
if (enable_type == "ENA")
{
sqlWhere += " and MATERIELTYPE='" + mater_type + "' or MATERIELTYPE is null";
}
return sqlWhere;
}
// 标识已经配置的物料
///
/// 标识已经配置的物料
///
private void SetExistMaintenanceColor()
{
try
{
string type = getMaterType();
string mater_type = "";
beforeMcode.Clear();
beforeMtype.Clear();
beforeMname.Clear();
afterMcode.Clear();
GetDataSource("");
for (int i = 0; i < ultraGrid2.Rows.Count; i++)
{
for (int j = 0; j < ultraGrid1.Rows.Count; j++)
{
if (ultraGrid1.Rows[j].Cells["MATERIELCODE"].Value.ToString() == ultraGrid2.Rows[i].Cells["MATERIELCODE"].Value.ToString())
{
beforeMcode.Add(ultraGrid2.Rows[i].Cells["MATERIELCODE"].Value.ToString());
beforeMtype.Add(type);
beforeMname.Add(ultraGrid2.Rows[i].Cells["MATERIELNAME"].Value.ToString());
afterMcode.Add(ultraGrid2.Rows[i].Cells["MATERIELCODE"].Value.ToString());
ultraGrid2.Rows[i].Cells["Flag"].Value = "TRUE";
ultraGrid2.DisplayLayout.Rows[i].Cells["Flag"].Value = "TRUE";
ultraGrid2.DisplayLayout.Rows[i].CellAppearance.ForeColor = Color.Red;
ultraGrid2.Rows[i].Cells["MATERIELTYPE"].Value = ultraGrid1.Rows[j].Cells["MATERIELTYPE"].Value.ToString();
}
}
if (radAll.Checked)
{
if (allMater.Tables[0].Rows.Count > 0)
{
for (int m = 0; m < allMater.Tables[0].Rows.Count; m++)
{
if (ultraGrid2.Rows[i].Cells["MATERIELCODE"].Value.ToString() == allMater.Tables[0].Rows[m]["MATERIELCODE"].ToString()
&& allMater.Tables[0].Rows[m]["MATERIELTYPE"].ToString() != type)
{
ultraGrid2.Rows[i].Cells["MATERIELTYPE"].Value = allMater.Tables[0].Rows[m]["MATERIELTYPE"].ToString();
ultraGrid2.DisplayLayout.Rows[i].Cells["Flag"].Activation = Infragistics.Win.UltraWinGrid.Activation.NoEdit;
ultraGrid2.DisplayLayout.Rows[i].Appearance.BackColor = Color.PaleGoldenrod;
}
}
}
}
}
}
catch { }
}
// 比较两个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;
}
///
/// 功能按钮
///
public override void ToolBar_Click(object sender, string ToolbarKey)
{
switch (ToolbarKey)
{
case "Query":
//if (!IsEquals(beforeMcode, afterMcode))
//{
// if (MessageBox.Show("物料配置已修改,还未保存!\n保存点击【是】,放弃点击【否】", "提示", MessageBoxButtons.YesNo, MessageBoxIcon.Question) == DialogResult.Yes)
// {
// SaveData();
// }
//}
QueryData();
break;
case "Save":
ultraGrid2.UpdateData();
SaveData();
break;
case "SaveType":
SaveType();
break;
case "Exit":
this.Close();
break;
default:
break;
}
}
private void ultraToolbarsManager1_ToolClick(object sender, Infragistics.Win.UltraWinToolbars.ToolClickEventArgs e)
{
switch (e.Tool.Key)
{
default:
break;
}
}
private void radEnable_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 radMater_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 ultraGrid2_AfterCellUpdate(object sender, Infragistics.Win.UltraWinGrid.CellEventArgs e)
{
try
{
if (ultraGrid2.Rows.Count == 0)
return;
else
{
ultraGrid2.UpdateData();
if (Convert.ToBoolean(ultraGrid2.ActiveRow.Cells["Flag"].Value) == true)
{
if (!afterMcode.Contains(ultraGrid2.ActiveRow.Cells["MATERIELCODE"].Value.ToString()))
{
afterMcode.Add(ultraGrid2.ActiveRow.Cells["MATERIELCODE"].Value.ToString());
}
ultraGrid2.ActiveRow.CellAppearance.ForeColor = Color.Red;
}
else
{
if (afterMcode.Contains(ultraGrid2.ActiveRow.Cells["MATERIELCODE"].Value.ToString()))
{
afterMcode.Remove(ultraGrid2.ActiveRow.Cells["MATERIELCODE"].Value.ToString());
}
ultraGrid2.ActiveRow.CellAppearance.ForeColor = Color.Black;
}
}
}
catch { }
}
private void FrmStoresMateriel_FormClosing(object sender, FormClosingEventArgs e)
{
try
{
//if (((RadioButton)sender).Checked)
//{
// if (!IsEquals(beforeMcode, afterMcode))
// {
// if (MessageBox.Show("物料配置已修改,还未保存!\n保存点击【是】,放弃点击【否】", "提示", MessageBoxButtons.YesNo, MessageBoxIcon.Question) == DialogResult.Yes)
// {
// SaveData();
// }
// }
//}
}
catch { }
}
}
}