using Core.Mes.Client.Comm.Server;
using Core.Mes.Client.Comm.Tool;
using CoreFS.CA06;
using Infragistics.Win.UltraWinEditors;
using System;
using System.Data;
using System.Drawing;
using System.Linq;
namespace Core.StlMes.Client.Qcm
{
public partial class FrmWaterRatioPopup : FrmBase
{
private FrmWaterRatio ratio = new FrmWaterRatio();
private string _ordLnPk = "";
private string _stdName = "";
public FrmWaterRatioPopup(string stdCode, string stdName, string steelCode, string stdStyleCode,
string ordLnPk, string stdCodeNk, OpeBase ob)
{
InitializeComponent();
ExceptionHelper.RegistException();
_ordLnPk = ordLnPk;
_stdName = stdName;
this.ob = ob;
if (_ordLnPk.Length < 32 && !_ordLnPk.StartsWith("BL"))
{
ultraToolbarsManager1.Tools["设定"].SharedProps.Visible = false;
}
ratio.Load += ratio_Load;
ratio.UltraGrid1.AfterRowActivate += ratio_AfterRowActivate;
ratio.StdCode = stdCode;
ratio.SteelCode = steelCode;
ratio.StdStyleCode = stdStyleCode;
ratio.StdCodeNk = stdCodeNk;
ratio.PopupLoad("", ob);
SetDefaultCondition();
FrmWaterRatioPopup_Fill_Panel.Controls.Add(ratio.SplitContainer1);
ratio.UltraGrid1.InitializeRow += new Infragistics.Win.UltraWinGrid.InitializeRowEventHandler(UltraGrid1_InitializeRow);
ratio.UltraGrid1.AfterRowInsert += new Infragistics.Win.UltraWinGrid.RowEventHandler(UltraGrid1_AfterRowInsert);
}
void ratio_AfterRowActivate(object sender, EventArgs e)
{
ratio_Load(null, null);
}
public void ratio_Load(object sender, EventArgs e)
{
DataRow setRatio = GetSetRatio(_ordLnPk);
if (setRatio != null)
{
string ratioId = setRatio["RATIO_ID"].ToString();
var row = ratio.UltraGrid1.Rows.Where(a => a.GetValue("RATIO_ID") == ratioId).FirstOrDefault();
if (row != null)
{
row.Cells["CHK"].Value = true;
row.Update();
}
}
DataTable dt = GetMatchRatioId(_ordLnPk);
if (dt.Rows.Count > 0)
{
var rows = ratio.UltraGrid1.Rows.Where(a => dt.Select("RATIO_ID = '" + a.GetValue("RATIO_ID") + "'").Length > 0);
ratio.UltraGrid1.BeginUpdate();
foreach (var row in rows)
{
row.Appearance.BackColor = Color.FromArgb(124, 205, 124);
}
ratio.UltraGrid1.EndUpdate();
}
}
///
/// 获取设定水压系数
///
///
///
private DataRow GetSetRatio(string ordLnPk)
{
DataTable dt = ServerHelper.GetData("com.steering.pss.qcm.CoreWaterRatio.getSetRatio",
new object[] { ordLnPk }, ob);
if (dt.Rows.Count > 0)
{
return dt.Rows[0];
}
else
{
return null;
}
}
private DataTable GetMatchRatioId(string ordLnPk)
{
DataTable dt = ServerHelper.GetData("com.steering.pss.qcm.CoreWaterRatio.getMatchRatioId",
new object[] { ordLnPk }, ob);
return dt;
}
void UltraGrid1_AfterRowInsert(object sender, Infragistics.Win.UltraWinGrid.RowEventArgs e)
{
//DataTable dt = (DataTable)((UltraComboEditor)e.Row.Cells["STD_NAME"].EditorComponent).DataSource;
//DataRow[] drs = dt.Select("STD_CODE = '" + ratio.StdCode + "'");
//if (drs.Length > 0)
//{
// e.Row.SetValue("STD_NAME", drs[0]["STD_CODE"].ToString());
// e.Row.SetValue("STD_CODE", drs[0]["STD_CODE"].ToString());
//}
e.Row.Cells["STD_NAME"].Value = _stdName;
e.Row.Cells["STD_CODE"].Value = ratio.StdCode;
DataTable dt2 = (DataTable)((UltraComboEditor)ratio.UltraGrid1.DisplayLayout.Bands[0].Columns["STD_STYLE"].EditorComponent).DataSource;
DataRow[] dr2s = dt2.Select("STD_STYLE_DESC = '" + ratio.StdStyleCode + "'");
if (dr2s.Length > 0)
{
e.Row.SetValue("STD_STYLE_DESC", dr2s[0]["STD_STYLE_DESC"].ToString());
e.Row.SetValue("STD_STYLE", dr2s[0]["STD_STYLE"].ToString());
}
ratio.GetSteelNew(e.Row.Cells["RATIO_ID"].Value.ToString(), e.Row.Cells["STD_CODE"].Value.ToString());
}
void UltraGrid1_InitializeRow(object sender, Infragistics.Win.UltraWinGrid.InitializeRowEventArgs e)
{
//DataTable dt = (DataTable)((UltraComboEditor)e.Row.Cells["STD_NAME"].EditorComponent).DataSource;
//if (ratio.StdCode != "")
//{
// dt.DefaultView.RowFilter = "STD_CODE = '" + ratio.StdCode + "'";
//}
//e.Row.Cells["STD_NAME"].Value = _stdName;
//e.Row.Cells["STD_CODE"].Value = ratio.StdCode;
}
private void SetDefaultCondition()
{
DataTable dt2 = (DataTable)((UltraComboEditor)ratio.UltraGrid1.DisplayLayout.Bands[0].Columns["STD_STYLE"].EditorComponent).DataSource;
if (ratio.StdStyleCode != "")
{
dt2.DefaultView.RowFilter = "STD_STYLE_DESC = '" + ratio.StdStyleCode + "'";
}
}
private void ultraToolbarsManager1_ToolClick(object sender, Infragistics.Win.UltraWinToolbars.ToolClickEventArgs e)
{
switch (e.Tool.Key)
{
case "查询":
ratio.ToolBar_Click(null, "Query");
break;
case "保存":
ratio.ToolBar_Click(null, "Save");
break;
case "作废":
ratio.ToolBar_Click(null, "Delete");
break;
case "恢复":
ratio.ToolBar_Click(null, "Resume");
break;
case "刷新":
ratio.ToolBar_Click(null, "Refresh");
break;
case "水压引用":
ratio.ToolBar_Click(null, "WaterStd");
break;
case "设定":
SetRatio();
break;
case "关闭":
this.Close();
break;
}
}
private void SetRatio()
{
var row = ratio.UltraGrid1.Rows.Where(a => a.GetValue("CHK") == "True").FirstOrDefault();
if (row == null)
{
MessageUtil.ShowWarning("请选择一条记录!");
return;
}
string ordLnPk = _ordLnPk;
string ratioId = row.GetValue("RATIO_ID");
ServerHelper.SetData("com.steering.pss.qcm.CoreWaterRatio.setRatio",
new object[] { ordLnPk, ratioId }, ob);
MessageUtil.ShowTips("设定成功!");
}
}
}