using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Drawing;
using System.Data;
using System.Linq;
using System.Text;
using System.Windows.Forms;
using Core.StlMes.Client.SaleOrder.BLL;
using CoreFS.CA06;
using Core.Mes.Client.Comm.Tool;
using Infragistics.Win.UltraWinEditors;
using Infragistics.Win.UltraWinGrid;
using Core.StlMes.Client.Qcm;
using Core.Mes.Client.Comm.Server;
using CoreFS.SA06;
using Infragistics.Win;
using Core.Mes.Client.Comm.Control;
namespace Core.StlMes.Client.SaleOrder.Control
{
public partial class CraftOrdDesignStdDicCtrl : UserControl
{
private CraftOrdDesignStdDicBLL _designStdDicBLL;
private CraftOrdDesignMscPlBLL _designMscPlBLL;
private CraftOrdDesignMscPlPrcBLL _designMscPlPrcBLL;
private UltraComboEditor[] ultras = new UltraComboEditor[11];
private OpeBase _ob;
public CraftOrdDesignStdDicCtrl(System.Windows.Forms.Control container, OpeBase ob)
{
InitializeComponent();
_ob = ob;
_designStdDicBLL = new CraftOrdDesignStdDicBLL(ob);
_designMscPlBLL = new CraftOrdDesignMscPlBLL(ob);
_designMscPlPrcBLL = new CraftOrdDesignMscPlPrcBLL(ob);
container.Controls.Add(this);
this.Dock = DockStyle.Fill;
LoadBaseData();
}
private void LoadBaseData()
{
for (int i = 0; i < ultras.Length; i++)
{
ultras[i] = new UltraComboEditor();
this.Controls.Add(ultras[i]);
ultras[i].Visible = false;
ultras[i].DropDownListWidth = -1;
}
//从表
UltraGridBand ugbC = entityGrid1.DisplayLayout.Bands[0];
//探伤位置
QcmBaseCommon.InitDrop(ultras[2], "com.steering.pss.qcm.ComBaseQuery.geComBaseInfo4020", "BASENAME", "BASECODE", false, _ob);
ugbC.Columns["PositionCode"].EditorComponent = ultras[2];
ugbC.Columns["PositionCode"].Style = Infragistics.Win.UltraWinGrid.ColumnStyle.DropDownList;
//探伤标准
QcmBaseCommon.InitDrop(ultras[3], "com.steering.pss.qcm.ComBaseQuery.geComBaseInfo4021", "BASENAME", "BASECODE", false, _ob);
ugbC.Columns["StdDesc"].EditorComponent = ultras[3];
ugbC.Columns["StdDesc"].Style = Infragistics.Win.UltraWinGrid.ColumnStyle.DropDownList;
//探伤级别
QcmBaseCommon.InitDrop(ultras[4], "com.steering.pss.qcm.ComBaseQuery.geComBaseInfo4022", "BASENAME", "BASECODE", false, _ob);
ugbC.Columns["LvCode"].EditorComponent = ultras[4];
ugbC.Columns["LvCode"].Style = Infragistics.Win.UltraWinGrid.ColumnStyle.DropDownList;
//检验项
QcmBaseCommon.InitDrop(ultras[6], "com.steering.pss.qcm.ComBaseQuery.getComBasePhyD", "PHY_NAME", "PHY_CODE", true, _ob);
ugbC.Columns["PhyCode"].EditorComponent = ultras[6];
ugbC.Columns["PhyCode"].Style = Infragistics.Win.UltraWinGrid.ColumnStyle.DropDownList;
//刻槽位置
QcmBaseCommon.InitDrop(ultras[7], "com.steering.pss.qcm.ComBaseQuery.geComBaseInfo4023", "BASENAME", "BASENAME", false, _ob);
ugbC.Columns["GroovePos"].EditorComponent = ultras[7];
ugbC.Columns["GroovePos"].Style = Infragistics.Win.UltraWinGrid.ColumnStyle.DropDownList;
//刻槽方向
QcmBaseCommon.InitDrop(ultras[8], "com.steering.pss.qcm.ComBaseQuery.geComBaseInfo4024", "BASENAME", "BASENAME", false, _ob);
ugbC.Columns["GrooveDir"].EditorComponent = ultras[8];
ugbC.Columns["GrooveDir"].Style = Infragistics.Win.UltraWinGrid.ColumnStyle.DropDownList;
//检验频次
QcmBaseCommon.InitDrop(ultras[9], "com.steering.pss.qcm.ComBaseQuery.geComBaseInfo4011", "BASENAME", "BASECODE", false, _ob);
ugbC.Columns["Rate"].EditorComponent = ultras[9];
ugbC.Columns["Rate"].Style = Infragistics.Win.UltraWinGrid.ColumnStyle.DropDownList;
}
///
/// 查询质量设计探伤
///
///
public void Query(CraftOrdDesignStdDicEntity designStdDicEntity)
{
this.CraftOrdDesignStdDicEntityBindingSource.DataSource = _designStdDicBLL.Query(designStdDicEntity);
}
private string designKey = "";
private string[] _parms;
///
/// 查询质量设计探伤
///
///
public void QueryByDesignKeyDic(string[] parms)
{
designKey = parms[0];
_parms = parms;
var data = _designStdDicBLL.QueryByDesignKeyDic(parms);
var list = data.Select(p => p.Dic).Distinct().ToList();
if (list.Count > 1)
{
ultras[10].DataSource = data.Select(p => p.Dic).Distinct().ToList();
QcmBaseQuery.BindColumn(ultras[10], "Dic", entityGrid1.DisplayLayout.Bands[0]);
}
this.CraftOrdDesignStdDicEntityBindingSource.DataSource = data;
//UltraComboEditor cmb = new UltraComboEditor();
foreach (var row in entityGrid1.Rows)
{
GridEdite(row);
if (row.GetValue("CraftSource") == "0")
{
row.Cells["Chk"].Value = null;
row.Cells["Chk"].Activation = Activation.ActivateOnly;
row.Update();
}
//if (cmb.ValueList.FindString(row.GetValue("Dic")) == -1)
//{
// cmb.ValueList.ValueListItems.Add(row.GetValue("Dic"));
//}
}
//cmb.DisplayStyle = EmbeddableElementDisplayStyle.WindowsVista;
//entityGrid1.DisplayLayout.Bands[0].Columns["Dic"].EditorComponent = cmb;
//entityGrid1.DisplayLayout.Bands[0].Columns["Dic"].Style = Infragistics.Win.UltraWinGrid.ColumnStyle.DropDownList;
}
public void Clear()
{
this.CraftOrdDesignStdDicEntityBindingSource.Clear();
}
public void Save()
{
List parms = new List();
var rows = entityGrid1.Rows.Where(a => a.GetValue("Chk") == "True");
foreach (var row in rows)
{
var parm = EntityHelper.CopyEntity(row.ListObject);
parm.DescRate = row.GetText("Rate");
parm.LvDesc = row.GetText("LvCode");
parm.PhyName = row.GetText("PhyCode");
parm.PositionDesc = row.GetText("PositionCode");
if (parm.MscPline == "")
{
MessageUtil.ShowWarning("请选择制程!");
row.SetCellActive("MscPline");
return;
}
//if (parm.ProcessDescC == "")
//{
// MessageUtil.ShowWarning("请选择二级工序!");
// row.SetCellActive("ProcessDescC");
// return;
//}
if (parm.Dic == "")
{
MessageUtil.ShowWarning("请选择探伤索引码!");
row.SetCellActive("Dic");
return;
}
if (parm.PhyName.Equals(""))
{
MessageUtil.ShowWarning("请选择材质检验项!");
return;
}
if (parm.PositionDesc.Equals(""))
{
MessageUtil.ShowWarning("请选择探伤位置!");
return;
}
if (parm.StdDesc.Equals(""))
{
MessageUtil.ShowWarning("请选择探伤参考标准!");
return;
}
if (parm.LvDesc.Equals(""))
{
MessageUtil.ShowWarning("请选择探伤级别!");
return;
}
if (parm.Coverage.Equals("") || !StringUtil.IsNumber(parm.Coverage) || Convert.ToDouble(parm.Coverage) > 100 || Convert.ToDouble(parm.Coverage) < 0)
{
MessageUtil.ShowWarning("请输入探伤覆盖率:0~100!");
return;
}
if (!parm.Coverage.Equals("") && parm.Coverage.StartsWith("."))
parm.Coverage = "0" + parm.Coverage;
if (parm.GroovePos.Equals(""))
{
MessageUtil.ShowWarning("请选择刻槽位置!");
return;
}
if (parm.DescRate == "")
{
MessageUtil.ShowWarning("请选择检验频次!");
return;
}
else
{
if (parm.DescRate == "按比例")
{
if (parm.DescVal == "")
{
MessageUtil.ShowWarning("请输入频率值!");
return;
}
if (!StringUtil.IsNumber(parm.DescVal))
{
MessageUtil.ShowWarning("频率值:请输入数字!");
return;
}
if (Convert.ToDouble(parm.DescVal) <= 0 || Convert.ToDouble(parm.DescVal) > 100)
{
MessageUtil.ShowWarning("频率值:请输入大于0小于等于100的数字!");
return;
}
}
}
if (parm.MinD != "" || parm.MaxD != "")
{
if (parm.MinD == "")
{
MessageUtil.ShowWarning("请输入适用规格-外径下限!");
row.SetCellActive("MIN_D");
return;
}
else if (parm.MinD.TryParseDouble() == false)
{
MessageUtil.ShowWarning("适用规格-外径下限:请输入数字!");
row.SetCellActive("MIN_D");
return;
}
if (parm.MinD == "")
{
MessageUtil.ShowWarning("请输入适用规格-外径上限!");
row.SetCellActive("MAX_D");
return;
}
else if (parm.MaxD.TryParseDouble() == false)
{
MessageUtil.ShowWarning("适用规格-外径上限:请输入数字!");
row.SetCellActive("MAX_D");
return;
}
}
if (parm.MinH != "" || parm.MaxH != "")
{
if (parm.MinH == "")
{
MessageUtil.ShowWarning("请输入适用规格-壁厚下限!");
row.SetCellActive("MIN_H");
return;
}
else if (parm.MinH.TryParseDouble() == false)
{
MessageUtil.ShowWarning("适用规格-壁厚下限:请输入数字!");
row.SetCellActive("MIN_H");
return;
}
if (parm.MaxH == "")
{
MessageUtil.ShowWarning("请输入适用规格-壁厚上限!");
row.SetCellActive("MAX_H");
return;
}
else if (parm.MaxH.TryParseDouble() == false)
{
MessageUtil.ShowWarning("适用规格-壁厚上限:请输入数字!");
row.SetCellActive("MAX_H");
return;
}
}
parm.CreateName = CoreUserInfo.UserInfo.GetUserName();
parm.UpdateName = CoreUserInfo.UserInfo.GetUserName();
parm.DeleteName = CoreUserInfo.UserInfo.GetUserName();
parm.SpeclFl = "2";
parm.DesginKey = designKey;
parms.Add(parm);
}
if (MessageUtil.ShowYesNoAndQuestion("是否确认保存?") == DialogResult.No)
{
return;
}
_designStdDicBLL.Save(parms);
MessageUtil.ShowTips("保存成功!");
QueryByDesignKeyDic(_parms);
}
public void Delete()
{
List parms = new List();
var rows = entityGrid1.Rows.Where(a => a.GetValue("Chk") == "True");
foreach (var row in rows)
{
var parm = EntityHelper.CopyEntity(row.ListObject);
parm.CreateName = CoreUserInfo.UserInfo.GetUserName();
parm.UpdateName = CoreUserInfo.UserInfo.GetUserName();
parm.DeleteName = CoreUserInfo.UserInfo.GetUserName();
parm.SpeclFl = "2";
parm.DesginKey = designKey;
parms.Add(parm);
}
if (MessageUtil.ShowYesNoAndQuestion("是否确认删除?") == DialogResult.No)
{
return;
}
_designStdDicBLL.Delete(parms);
MessageUtil.ShowTips("删除成功!");
}
private void GridEdite(UltraGridRow row)
{
if (row.GetValue("Chk") == "True")
{
foreach (UltraGridCell cell in row.Cells)
{
if (cell.Column.CellActivation == Activation.AllowEdit)
{
cell.Activation = Activation.AllowEdit;
}
}
}
else
{
foreach (UltraGridCell cell in row.Cells)
{
if (cell.Column.Key == "Chk") continue;
if (cell.Column.CellActivation == Activation.AllowEdit)
{
cell.Activation = Activation.ActivateOnly;
}
}
}
}
private void entityGrid1_CellChange(object sender, CellEventArgs e)
{
entityGrid1.UpdateData();
GridEdite(e.Cell.Row);
}
private void entityGrid1_AfterRowInsert(object sender, RowEventArgs e)
{
e.Row.Cells["CraftSource"].Value = "1";
e.Row.Cells["SpeclFl"].Value = "2";
}
private void ultraTextEditor1_EditorButtonClick(object sender, EditorButtonEventArgs e)
{
UltraGridRow row = entityGrid1.ActiveRow;
string key = entityGrid1.ActiveCell.Column.Key;
if (key == "MscPline")
{
DataTable dt = _designMscPlBLL.QueryMscPlineProcess(designKey);
dt.Columns["MSC_PLINE"].Caption = "制程号";
dt.Columns["WHOLE_BACKLOG"].Caption = "全程途径码";
dt.Columns["WHOLE_BACKLOG_DESC"].Caption = "全程途径描述";
dt.Columns["PROCESS_DESC"].Caption = "工序";
dt.Columns["PROCESS_DESC_C"].Caption = "二级工序";
dt.Columns["DIC"].Caption = "探伤内控索引码";
DataTable dtNew = dt.Clone();
foreach (DataRow dr in dt.Rows)
{
string[] dics = dr["DIC"].ToString().Split(',');
foreach (string dic in dics)
{
DataRow drNew = dtNew.NewRow();
drNew["MSC_PLINE"] = dr["MSC_PLINE"];
drNew["WHOLE_BACKLOG"] = dr["WHOLE_BACKLOG"];
drNew["WHOLE_BACKLOG_DESC"] = dr["WHOLE_BACKLOG_DESC"];
drNew["PROCESS_DESC"] = dr["PROCESS_DESC"];
drNew["PROCESS_DESC_C"] = dr["PROCESS_DESC_C"];
drNew["PROCESS_CODE"] = dr["PROCESS_CODE"];
drNew["PROCESS_CODE_C"] = dr["PROCESS_CODE_C"];
drNew["DIC"] = dic.Trim();
dtNew.Rows.Add(drNew);
}
}
BaseInfoPopup popup = new BaseInfoPopup(dtNew, "MSC_PLINE", "CIC", "SIC", "PIC", "WIC", "GIC", "PROCESS_CODE", "PROCESS_CODE_C");
GridHelper.RefreshAndAutoSize(popup.UltraGrid1);
popup.LabelTextBox1.Caption = "制程号";
if (popup.ShowDialog() == DialogResult.OK)
{
row.SetValue("MscPline", popup.ChoicedRow.GetValue("MSC_PLINE"));
row.SetValue("ProcessDescC", popup.ChoicedRow.GetValue("PROCESS_DESC_C"));
row.SetValue("ProcessCodeC", popup.ChoicedRow.GetValue("PROCESS_CODE_C"));
row.SetValue("ProcessDesc", popup.ChoicedRow.GetValue("PROCESS_DESC"));
row.SetValue("ProcessCode", popup.ChoicedRow.GetValue("PROCESS_CODE"));
row.SetValue("Dic", popup.ChoicedRow.GetValue("DIC"));
}
}
else if (key == "ProcessDescC")
{
string mscPline = entityGrid1.ActiveRow.GetValue("MscPline");
DataTable dt = _designMscPlPrcBLL.queryProcess(designKey, mscPline);
dt.Columns["PROCESS_DESC"].Caption = "工序";
dt.Columns["PROCESS_DESC_C"].Caption = "二级工序";
BaseInfoPopup popup = new BaseInfoPopup(dt, "PROCESS_DESC_C", "PROCESS_CODE", "PROCESS_CODE_C");
popup.LabelTextBox1.Caption = "二级工序";
if (popup.ShowDialog() == DialogResult.OK)
{
row.SetValue("ProcessDescC", popup.ChoicedRow.GetValue("PROCESS_DESC_C"));
row.SetValue("ProcessCodeC", popup.ChoicedRow.GetValue("PROCESS_CODE_C"));
row.SetValue("ProcessDesc", popup.ChoicedRow.GetValue("PROCESS_DESC"));
row.SetValue("ProcessCode", popup.ChoicedRow.GetValue("PROCESS_CODE"));
}
}
else if (key == "Dic")
{
string mscPline = entityGrid1.ActiveRow.GetValue("MscPline");
string processCode = entityGrid1.ActiveRow.GetValue("ProcessCode");
DataTable dt = _designMscPlPrcBLL.queryProcessNkIndex(designKey, mscPline, processCode);
dt.Columns["DIC"].Caption = "探伤内控索引码";
BaseInfoPopup popup = new BaseInfoPopup(dt, "DIC", "PIC", "SIC", "CIC", "WIC", "GIC");
popup.LabelTextBox1.Caption = "探伤内控索引码";
if (popup.ShowDialog() == DialogResult.OK)
{
row.SetValue("Dic", popup.ChoicedRow.GetValue("DIC"));
}
}
}
}
}