using Core.Mes.Client.Comm.Control;
using Core.Mes.Client.Comm.Server;
using Core.Mes.Client.Comm.Tool;
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 FrmPscStationSelect : FrmBase
{
private FrmProPSCMSC2 _frm = null;
private UltraGridRow _row = null;
private FrmPscStationSelect()
{
InitializeComponent();
ExceptionHelper.RegistException();
}
public FrmPscStationSelect(FrmProPSCMSC2 frm, UltraGridRow row) : this()
{
_frm = frm;
_row = row;
LoadStationData();
}
private void LoadStationData()
{
DataTable dt = null;
ArrayList list = new ArrayList();
list.Add(_row.Cells["PROCESS_CODE"].Value.ToString());
list.Add(_row.GetValue("PROCESS_CODE_C"));
try
{
dt = ServerHelper.GetData("com.steering.pss.qcm.CoreFrmProPSCMSC2.queryBaseStation",
new object[] { list }, _frm.ob);
}
catch
{
return;
}
AddBaseStationDataWithCount(dt);
//foreach (UltraGridRow row in ultraGridSta.Rows)
//{
// if (row.GetValue("CHOOSE") == "True")
// {
// row.SetValue("UCCHOOSE", "True");
// }
//}
if (_frm.UltraGrid4.ActiveRow != null)
{
if (_frm._dicMscStation.ContainsKey(_row.Cells["PROCESS_CODE"].Value.ToString()))
{
AddMscStationData(_frm._dicMscStation[_row.Cells["PROCESS_CODE"].Value.ToString()]);
ultraGridSta.UpdateData();
return;
}
DataTable dt2 = null;
ArrayList list2 = new ArrayList();
list2.Add(_frm.UltraGrid4.ActiveRow.Cells["MSC"].Value.ToString());
list2.Add(_frm.UltraGrid4.ActiveRow.Cells["MSC_PLINE"].Value.ToString());
list2.Add(_row.Cells["PROCESS_CODE"].Value.ToString());
try
{
dt2 = ServerHelper.GetData("com.steering.pss.qcm.CoreFrmProPSCMSC2.queryMscStation",
new object[] { list2 }, _frm.ob);
}
catch
{
return;
}
AddMscStationData(dt2);
}
if (_frm._dicMscStation.ContainsKey(_row.Cells["PROCESS_CODE"].Value.ToString()))
{
AddMscStationData(_frm._dicMscStation[_row.Cells["PROCESS_CODE"].Value.ToString()]);
ultraGridSta.UpdateData();
return;
}
COM_MSC_STATION.AcceptChanges();
ultraGridSta.UpdateData();
//GridHelper.RefreshAndAutoSize(ultraGridSta);
}
///
/// 根据工序的循环次数在客户端自动生成对应的行数。
///
///
private void AddBaseStationDataWithCount(DataTable dt)
{
int count = int.Parse(_row.Cells["ICOUNT"].Value.ToString() == ""
? "1" : _row.Cells["ICOUNT"].Value.ToString());
//GridHelper.CopyDataToDatatable(ref dt, ref COM_MSC_STATION, true);
for (int i = 0; i < count; i++)
{
foreach (DataRow drOld in dt.Rows)
{
DataRow drNew = COM_MSC_STATION.NewRow();
foreach (DataColumn dcOld in dt.Columns)
{
if (COM_MSC_STATION.Columns.Contains(dcOld.ColumnName))
{
drNew[dcOld.ColumnName] = drOld[dcOld.ColumnName].ToString();
}
}
drNew["PROCESS_SEQ"] = (i + 1).ToString();
COM_MSC_STATION.Rows.Add(drNew);
}
}
}
private void AddMscStationData(DataTable dt)
{
foreach (DataRow dr in dt.Rows)
{
UltraGridRow[] rows = GridHelper.GetRowsWithKey(ultraGridSta,
new string[] { "STATION_CODE", "PROCESS_SEQ" },
new string[] { dr["STATION_CODE"].ToString(), dr["PROCESS_SEQ"].ToString() });
if (rows.Length == 0) continue;
rows[0].Cells["MSC"].Value = dr["MSC"].ToString();
rows[0].Cells["MSC_PLINE"].Value = dr["MSC_PLINE"].ToString();
rows[0].Cells["COST"].Value = dr["COST"].ToString();
rows[0].Cells["CHOOSE"].Value = dr["CHOOSE"].ToString();
rows[0].Cells["RETURN_RESULT"].Value = dr["RETURN_RESULT"].ToString();
rows[0].Cells["SEND_CHECKPLAN"].Value = dr["SEND_CHECKPLAN"].ToString();
//rows[0].Cells["GROUP_SEQ"].Value = dr["GROUP_SEQ"].ToString();
rows[0].Cells["MEMO"].Value = dr["MEMO"].ToString();
rows[0].Cells["UCCHOOSE"].Value = true;
}
}
private void AddMscStationData(UltraGrid grid)
{
UltraGridRow[] rows = GridHelper.GetRowsWithKey(grid, new string[] { "UCCHOOSE" }, new string[] { "True" });
foreach (UltraGridRow row in rows)
{
string stationCode = row.Cells["STATION_CODE"].Value.ToString();
string processSeq = row.Cells["PROCESS_SEQ"].Value.ToString();
UltraGridRow[] rowsSta = GridHelper.GetRowsWithKey(ultraGridSta,
new string[] { "STATION_CODE", "PROCESS_SEQ" },
new string[] { stationCode, processSeq });
if (rowsSta.Length == 0) continue;
rowsSta[0].Cells["COST"].Value = row.Cells["COST"].Value;
rowsSta[0].Cells["CHOOSE"].Value = row.Cells["CHOOSE"].Value.ToString() == "True" ? true : false;
rowsSta[0].Cells["RETURN_RESULT"].Value = row.Cells["RETURN_RESULT"].Value.ToString() == "True" ? true : false;
rowsSta[0].Cells["SEND_CHECKPLAN"].Value = row.Cells["SEND_CHECKPLAN"].Value.ToString() == "True" ? true : false;
rowsSta[0].Cells["MEMO"].Value = row.Cells["MEMO"].Value;
rowsSta[0].Cells["UCCHOOSE"].Value = row.Cells["UCCHOOSE"].Value.ToString() == "True" ? true : false;
}
}
private void InitCheckState()
{
UltraGridRow[] rows = GridHelper.GetRowsWithKey(ultraGridSta,
new string[] { "MSC" }, new string[] { "" });
foreach (UltraGridRow row in rows)
{
row.Cells["UCCHOOSE"].Value = true;
}
}
private void button1_Click(object sender, EventArgs e)
{
this.ultraGridSta.UpdateData();
foreach (UltraGridRow row in ultraGridSta.Rows)
{
if (row.GetValue("UCCHOOSE") == "False") continue;
if (row.GetValue("COST") != "" && row.GetValue("COST").TryParseDecimal() == false)
{
MessageUtil.ShowWarning("标准成本不是有效的数字!");
row.SetCellActive("COST");
return;
}
}
this.DialogResult = DialogResult.OK;
}
private void button2_Click(object sender, EventArgs e)
{
this.DialogResult = DialogResult.Cancel;
}
private void ultraGridSta_CellChange(object sender, CellEventArgs e)
{
ultraGridSta.UpdateData();
}
private void ultraGridSta_InitializeRow(object sender, InitializeRowEventArgs e)
{
// CHOOSE UCCHOOSE
}
private void MustCheck(bool isCheck)
{
foreach (UltraGridRow row in ultraGridSta.Rows)
{
if (bool.Parse(row.GetValue("CHOOSE")))
{
row.SetValue("UCCHOOSE", isCheck.ToString());
}
}
ultraGridSta.UpdateData();
}
private void labelCheckBox1_CheckBox_CheckedChanged(object sender, EventArgs e)
{
MustCheck(labelCheckBox1.Checked);
}
}
}