using System;
using System.Collections;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Windows.Forms;
using Core.Mes.Client.Comm.Control;
using Core.Mes.Client.Comm.Format;
using Core.Mes.Client.Comm.Server;
using Core.Mes.Client.Comm.Tool;
using Core.StlMes.Client.PlnSaleOrd.BaseMethod;
using Core.StlMes.Client.PlnSaleOrd.工序排产;
using Core.StlMes.Client.PlnSaleOrd.工序排产.entity;
using CoreFS.CA06;
using Infragistics.Win;
using Infragistics.Win.UltraWinEditors;
using Infragistics.Win.UltraWinGrid;
using Core.StlMes.Client.PlnSaleOrd.窗体;
using Core.StlMes.Client.PlnSaleOrd.炉计划.Tool;
namespace Core.StlMes.Client.PlnSaleOrd
{
///
/// 加工线排产界面
///
public partial class FrmPlnOrderJgxSQuery : FrmBase
{
DataTable dtPlinGroup = null;
private ArrayList _entityList = null;
///
///产线权限
///
private string[] plinePower = new string[] { "" };
///
/// 工序订单编号
///
private string _ProPlanId = "";
///
/// 排产顺序号
///
private string _GxPlanNo = "";
///
/// 默认产线
///
private string PLINECODE = "";
///
/// 列头默认颜色
///
private Color COLOR = new Color();
///
/// 分组与产线下拉框集合
///
private Dictionary UCBDICTION = null;
private string proPlanId = "";
private string gxPlanNo = "";
private string USERNAME = "";
public FrmPlnOrderJgxSQuery()
{
this.IsLoadUserView = true;
InitializeComponent();
System.Threading.Thread t = new System.Threading.Thread(setGridColunm);
t.Start();
}
///
/// 用于初始化F1功能加字段问题
///
///
///
///
private void setGridColunm()
{
BaseHelper.SetGridColunmName(this, ultraGridJgxs);
}
private void FrmPlnOrderJgxS_Load(object sender, EventArgs e)
{
//弹窗CustomInfo的值为NULL
EntityHelper.ShowGridCaption(ultraGridJgxs.DisplayLayout.Bands[0]);
BaseHelper.setUltraGridColumnMaxInput(ultraGridJgxs, new string[] { "WeigthS", "ExpectWt" });
BaseHelper.InitCellPosition(ultraGridJgxs, new string[] { "GxPlanNo", "OrderSeq", "DeliveryNo", "WeigthS", "NumS", "GxProSeq", "PlanUsetime", "Outdiameter", "Wallthick", "Lengthmax", "Lengthmin", "Aimwallthick", "Aimlength", "ShrtLenRato", "Shortest", "LongLenRato", "Longest", "AvgLenMin", "DifrncLenMax", "SiglLen", "EndlenSpecstd", "LengthmaxIn", "LengthminIn", "LengthIn",
"OutnumCut", "InWeightS", "InNumS", "AddWtIn", "AddNumIn", "MatchWtIn", "MatchNumIn",
"BatchedWt", "BatchedNum", "Finishweight", "Finishnum", "ProcessingCost", "TotalCost"
,"FinishWgt","UnfinishWgt","UnfinishNum","OutputNum","ExpectWt","ExpectNum"});
BaseHelper.GridColumnSum(ultraGridJgxs, new string[] { "WeigthS" });
BaseHelper.GridColumnCount(ultraGridJgxs, new string[] { "NumS" });
BaseHelper.InitCellPositionMiddle(ultraGridJgxs, new string[] { "IsRepairPln", "IsPlanOk", "IfMonitorJgx" });
PlanHelper.InitEditPline("G", PLINECODE, ultraGridJgxs, this);
PlanHelper.InitRepairType(ultraGridJgxs, this);
PlanHelper.InitEditGroup("2004", ultraGridJgxs, this, "GroupJgx");
PlanHelper.InitDropGroup("2004", txtGroup, this.ob);
plinePower = PlanHelper.InitDropPlinePower("G", comJgPlne, this.ValidDataPurviewIds, this.ob);
UCBDICTION = PlanHelper.GetPlineUcb("2004", "G", this);
EntityHelper.ShowGridCaption(ultraGrid1.DisplayLayout.Bands[0]);
//炉计划
BaseHelper.setOtherColumnReadOnly(ultraGrid1, new string[] { "CHC" });
BaseHelper.setUltraGridColumnMaxInput(ultraGrid1, new string[] { "RealOutdoubleWt", "RealIndoubleWt", "PlanIndoubleWt" });
BaseHelper.setUltraGridColumnBits(ultraGrid1, new string[] { "RealOutdoubleNum", "RealIndoubleNum", "PlanIndoubleNum" });
BaseHelper.InitCellPosition(ultraGrid1, new string[] { "GxProSeq", "GxPlanNo","OrderSeq", "DeliveryNo", "PlnInsingleNum", "PlnInsingleWt", "PlnIndoubleNum","PlnIndoubleWt","PlnOutsingleNum","PlnOutsingleW" ,"PlnOutdoubleNum","PlnOutdoubleW","OutdiameterIn","WallthickIn","LengthIn","LengthmaxIn",
"LengthminIn","OutnumCut", "Outdiameter","Wallthick","Lengthmin","Lengthmax","CraftSeq","RealOutdoubleWt", "RealIndoubleWt", "PlanIndoubleWt","RealOutdoubleNum", "RealIndoubleNum", "PlanIndoubleNum"});
BaseHelper.GridColumnSum(ultraGrid1, new string[] { "RealOutdoubleWt", "RealIndoubleWt", "PlanIndoubleWt" });
BaseHelper.GridColumnCount(ultraGrid1, new string[] { "RealOutdoubleNum", "RealIndoubleNum", "PlanIndoubleNum" });
BaseHelper.ForbidSort(ultraGrid1);
BaseHelper.SetGroupBySum(ultraGrid1, new string[] { "PlnInsingleWt", "PlnOutsingleW", "PlnIndoubleWt", "PlnOutdoubleW", "PlnInsingleNum", "PlnOutsingleNum", "PlnIndoubleNum", "PlnOutdoubleNum" }, "HeatPlanNo");
COLOR = ultraGridJgxs.DisplayLayout.Override.RowSelectorAppearance.BackColor;
InitColorStyle();
InitTime();
}
///
/// 初始化列状态
///
private void InitColorStyle()
{
ultraGridJgxs.DisplayLayout.Bands[0].Columns["CraftFileLv2G"].Style = Infragistics.Win.UltraWinGrid.ColumnStyle.EditButton;
ultraGridJgxs.DisplayLayout.Bands[0].Columns["CraftFileLv2G"].CellAppearance.BackColor = Color.GreenYellow;
ultraGridJgxs.DisplayLayout.Bands[0].Columns["CraftFileNo"].Style = Infragistics.Win.UltraWinGrid.ColumnStyle.EditButton;
ultraGridJgxs.DisplayLayout.Bands[0].Columns["CraftFileNo"].CellAppearance.BackColor = Color.GreenYellow;
ultraGridJgxs.DisplayLayout.Bands[0].Columns["PreInfo"].Style = Infragistics.Win.UltraWinGrid.ColumnStyle.EditButton;
ultraGridJgxs.DisplayLayout.Bands[0].Columns["PreInfo"].CellAppearance.BackColor = Color.GreenYellow;
ultraGridJgxs.DisplayLayout.Bands[0].Columns["BefProLin"].Style = Infragistics.Win.UltraWinGrid.ColumnStyle.EditButton;
ultraGridJgxs.DisplayLayout.Bands[0].Columns["BefProLin"].CellAppearance.BackColor = Color.GreenYellow;
ultraGridJgxs.DisplayLayout.Bands[0].Columns["TimeDiffer"].CellAppearance.BackColor = Color.GreenYellow;
ultraGridJgxs.DisplayLayout.Bands[0].Columns["BefProNum"].CellAppearance.BackColor = Color.GreenYellow;
ultraGridJgxs.DisplayLayout.Bands[0].Columns["PlanTimeB"].Format = "yyyy-MM-dd HH:mm:ss";
ultraGridJgxs.DisplayLayout.Bands[0].Columns["PlanTimeB"].MaskInput = "yyyy-mm-dd hh:mm:ss";
ultraGridJgxs.DisplayLayout.Bands[0].Columns["PlanTimeB"].Style = Infragistics.Win.UltraWinGrid.ColumnStyle.DateTime;
ultraGridJgxs.DisplayLayout.Bands[0].Columns["ZgStartTime"].Style = Infragistics.Win.UltraWinGrid.ColumnStyle.EditButton;
ultraGridJgxs.DisplayLayout.Bands[0].Columns["ZgStartTime"].CellAppearance.BackColor = Color.GreenYellow;
}
private void chc_CheckedChanged(object sender, EventArgs e)
{
if (chcOrderNo.Checked) { txtOrderNo.ReadOnly = false; } else { txtOrderNo.ReadOnly = true; }
if (chcProplanNo.Checked) { txtProplanNo.ReadOnly = false; } else { txtProplanNo.ReadOnly = true; }
if (chcGroup.Checked) { txtGroup.ReadOnly = false; } else { txtGroup.ReadOnly = true; }
}
private void ultraGridJgxs_InitializeRow(object sender, InitializeRowEventArgs e)
{
PlanHelper.ControlCellEdit(e.Row);
//排产查询界面
if (CustomInfo.Equals("0"))
{
if (UCBDICTION != null)
{
string key = e.Row.Cells["GroupJgx"].Value == null ? "" : e.Row.Cells["GroupJgx"].Value.ToString();
if (UCBDICTION.ContainsKey(key))
{
e.Row.Cells["PlineCode"].EditorComponent = UCBDICTION[key];
}
}
}
}
///
/// 排产查询界面
///
///
///
public override void ToolBar_Click(object sender, string ToolbarKey)
{
base.ToolBar_Click(sender, ToolbarKey);
switch (ToolbarKey)
{
case "Query"://查询
Query();
break;
case "Export": //导出
GridHelper.ulGridToExcel(ultraGridJgxs, "加工排产排序信息");
break;
case "Close"://关闭
this.Close();
break;
default:
break;
}
}
///
/// 查询管加工排产
///
public void Query()
{
WaitingForm2 wf3 = new WaitingForm2("正在刷新,请稍候....");
try
{
this.Cursor = Cursors.WaitCursor;
//产线
string plineCode = "";
if (chcJgPlne.Checked) { plineCode = comJgPlne.Value == null ? "" : comJgPlne.Value.ToString(); }
if (!CustomInfo.Equals("0") && plineCode.Equals(""))
{
MessageUtil.ShowTips("请选择产线!");
return;
}
//状态
string[] listStatus = contorlPlanStatus1.statusArr;
//合同号
string orderNo = "";
if (chcOrderNo.Checked) { orderNo = txtOrderNo.Text.Trim(); }
//订单编号
string proPlanNo = "";
if (chcProplanNo.Checked) { proPlanNo = txtProplanNo.Text.Trim(); }
string group = "";
if (chcGroup.Checked && txtGroup.Value != null) { group = txtGroup.Value.ToString(); }
string planTimeB1 = "";
string planTimeB2 = "";
if (chcPlanTimeB.Checked && txtPlanTimeB2.Value != null && txtPlanTimeB1.Value != null)
{
planTimeB1 = DateTime.Parse(txtPlanTimeB1.Value.ToString()).ToString("yyyy-MM-dd HH:mm:ss");
planTimeB2 = DateTime.Parse(txtPlanTimeB2.Value.ToString()).ToString("yyyy-MM-dd HH:mm:ss");
}
string planTimeE1 = "";
string planTimeE2 = "";
if (chcPlanTimeE.Checked && txtPlanTimeE2.Value != null && txtPlanTimeE1.Value != null)
{
planTimeE1 = DateTime.Parse(txtPlanTimeE1.Value.ToString()).ToString("yyyy-MM-dd HH:mm:ss");
planTimeE2 = DateTime.Parse(txtPlanTimeE2.Value.ToString()).ToString("yyyy-MM-dd HH:mm:ss");
}
List listSource = EntityHelper.GetData
("com.steering.pss.plnsaleord.processOrder.base.ProducHelper.queryPlanOrderG1",
new object[] { plineCode, proPlanNo, orderNo, group, listStatus, planTimeB1, planTimeB2, planTimeE1, planTimeE2 }, this.ob);
plnOrderJgxSOEntityBindingSource.DataSource = listSource;
dtPlinGroup = ServerHelper.GetData("com.steering.pss.plnsaleord.processOrder.base.ProducHelper.queryPlinCodeGroup", null, this.ob);
//ProducHelper.copyLZData(ultraGridJgxs,"G", this.ob);
foreach (UltraGridRow ugr in ultraGridJgxs.Rows)
{
string str = ugr.Cells["PreInfo"].Text.Trim();
if (str!=null&&str != "")
{
string[] sArray = str.Split(new char[3] { '天',',','条' });
ugr.Cells["TimeDiffer"].Value = sArray[0];
ugr.Cells["BefProLin"].Value = sArray[2];
ugr.Cells["BefProNum"].Value = sArray[3];
}
if (dtPlinGroup.Rows.Count > 0)
{
//for (int i = 0; i < dtPlinGroup.Rows.Count; i++)
//{
string plinGroup = dtPlinGroup.Rows[0]["PLINE_NAME_M"].ToString() + "/" + dtPlinGroup.Rows[0]["PLINE_NAME_C"].ToString();
DataRow[] dr = dtPlinGroup.Select("PLINE_NAME_M='" + ugr.Cells["PlineCode"].Text.ToString() + "'AND PLINE_NAME_C ='" + ugr.Cells["AfInfo"].Text + "'", "");
if (dr == null || dr.Length == 0) { }
else
{
//DataTable tmp = dr.Table.Clone(); // 复制DataRow的表结构
//if (tmp.Rows.Count > 0)
//{
ugr.Cells["StockGroupName"].Value = dr[0]["STOCK_GROUP_NAME"].ToString();
//}
}
}
}
//激活操作行代码
if ((!_ProPlanId.Equals("") && !_GxPlanNo.Equals("")) || _entityList != null)
{
foreach (UltraGridRow ugr in ultraGridJgxs.Rows)
{
if (_entityList != null)
{
for (int i = 0; i < _entityList.Count; i++)
{
PlnOrderJgxSEntity jgxsEntity = (PlnOrderJgxSEntity)_entityList[i];
if (ugr.Cells["ProPlanId"].Text.Trim().Equals(jgxsEntity.ProPlanId) && ugr.Cells["GxPlanNo"].Text.Trim().Equals(jgxsEntity.GxPlanNo))
{
ugr.Appearance.BackColor = Color.Wheat;
ugr.Activate();
}
}
}
else
{
if (!_ProPlanId.Equals("") && !_GxPlanNo.Equals(""))
{
if (ugr.Cells["ProPlanId"].Text.Trim().Equals(_ProPlanId) && ugr.Cells["GxPlanNo"].Text.Trim().Equals(_GxPlanNo))
{
ugr.Activate();
break;
}
}
}
}
}
_entityList = null;
_ProPlanId = "";
_GxPlanNo = "";
if (!CustomInfo.Equals("0"))
{
PLINECODE = comJgPlne.Value.ToString();
}
}
finally
{
wf3.Close();
this.Cursor = Cursors.Default;
}
}
private void ultraGridJgxs_AfterSelectChange(object sender, AfterSelectChangeEventArgs e)
{
foreach (UltraGridRow uRow in ultraGridJgxs.Selected.Rows)
{
if (uRow.GetType() != typeof(Infragistics.Win.UltraWinGrid.UltraGridGroupByRow))
{
uRow.Cells["CHC"].Value = true;
}
}
}
private void ultraGridJgxs_AfterRowActivate(object sender, EventArgs e)
{
UltraGridRow ugrAc = ultraGridJgxs.ActiveRow;
if (ugrAc == null)
{
return;
}
proPlanId = ugrAc.Cells["ProPlanId"].Text;
gxPlanNo = ugrAc.Cells["GxPlanNo"].Text;
if (CustomInfo == "0") return;
QueryZyReadyF(proPlanId, gxPlanNo);
}
private void chcJgPlne_CheckedChanged(object sender, EventArgs e)
{
if (chcJgPlne.Checked) { comJgPlne.ReadOnly = false; } else { comJgPlne.ReadOnly = true; }
}
private void comJgPlne_ValueChanged(object sender, EventArgs e)
{
if (comJgPlne.Value == null)
{
return;
}
PLINECODE = comJgPlne.Value.ToString();
Query();
}
private ArrayList GetChcRow()
{
try
{
ultraGridJgxs.UpdateData();
}
catch (Exception)
{
return null;
}
ArrayList list = new ArrayList();
IQueryable chcRows = ultraGridJgxs.Rows.AsQueryable().Where(a => a.GetValue("CHC") == "True");
if (chcRows == null || chcRows.Count() == 0)
{
return null;
}
else
{
foreach (UltraGridRow ugr in chcRows)
{
PlnOrderJgxSEntity entity = (PlnOrderJgxSEntity)ugr.ListObject;
list.Add(entity);
}
return list;
}
}
private void ultraGridJgxs_ClickCellButton(object sender, CellEventArgs e)
{
UltraGridRow row = ultraGridJgxs.ActiveRow;
if (e.Cell.Column.Key.Equals("CraftFileNo"))
{
string filePath = row.GetValue("CraftPath");
dlgOrderAskDown askDown = new dlgOrderAskDown(this.ob, filePath);
// askDown.DeleteButton.Visible = false;
askDown.Show();
}
else if (e.Cell.Column.Key.Equals("CraftFileLv2G"))
{
string craftFileLv2G = row.GetValue("CraftFileLv2G");
dlgOrderAskDown askDown = new dlgOrderAskDown(this.ob, craftFileLv2G);
// askDown.DeleteButton.Visible = false;
askDown.Show();
// FrmCraftFileLv2 frmCraftFileLv2 = new FrmCraftFileLv2(craftFileLv2G,this.ob);
// frmCraftFileLv2.ShowDialog();
}
else if (e.Cell.Column.Key.Equals("BefProLin"))
{
string proPlanId = row.GetValue("ProPlanId");
string preInfo = row.GetValue("PreInfo");
if (preInfo == null || preInfo.Length == 0) { return; }
FrmPreGxInfo frmPreGxInfo = new FrmPreGxInfo(proPlanId, "G", "Pr", this.ob);
frmPreGxInfo.ShowDialog();
}
//else if (e.Cell.Column.Key.Equals("PreInfo"))
//{
// string proPlanId = row.GetValue("ProPlanId");
// string preInfo = row.GetValue("PreInfo");
// if (preInfo == null || preInfo.Length == 0) { return; }
// FrmPreGxInfo frmPreGxInfo = new FrmPreGxInfo(proPlanId, "G", "Pr", this.ob);
// frmPreGxInfo.ShowDialog();
//}
else if (e.Cell.Column.Key.Equals("ZgStartTime"))
{
string plnPivideId = row.GetValue("PlnDivideId");
string ordLnDlyPk = row.GetValue("OrdLnDlyPk");
FrmZgSum frmPreGxInfo = new FrmZgSum(ordLnDlyPk, plnPivideId, this.ob);
frmPreGxInfo.ShowDialog();
}
}
private void chcPlanTimeB_CheckedChanged(object sender, EventArgs e)
{
if (chcPlanTimeB.Checked) { txtPlanTimeB1.ReadOnly = false; txtPlanTimeB2.ReadOnly = false; } else { txtPlanTimeB1.ReadOnly = true; txtPlanTimeB2.ReadOnly = true; }
}
private void chcPlanTimeE_CheckedChanged(object sender, EventArgs e)
{
if (chcPlanTimeE.Checked) { txtPlanTimeE1.ReadOnly = false; txtPlanTimeE2.ReadOnly = false; } else { txtPlanTimeE1.ReadOnly = true; txtPlanTimeE2.ReadOnly = true; }
}
private void InitTime()
{
DateTime now = DateTime.Now;
DateTime d1 = new DateTime(now.Year, now.Month, 1);
DateTime d2 = d1.AddMonths(1).AddSeconds(-1);
txtPlanTimeB1.Value = d1;
txtPlanTimeB2.Value = d2;
txtPlanTimeE1.Value = d1;
txtPlanTimeE2.Value = d2;
}
///
/// 查询镦拔扩虚拟炉计划
///
///
///
private void QueryZyReadyF(string proPlanId, string gxPlanNo)
{
List listSource = EntityHelper.GetData
("com.steering.pss.plnsaleord.planStove.FrmPlanStoveG.queryPlanStovePlanId", new object[] { proPlanId, gxPlanNo }, this.ob);
plnZyJgxReadyEntityBindingSource.DataSource = listSource;
foreach (UltraGridRow ugr in ultraGrid1.Rows)
{
//没有实际炉计划,主炉计划变颜色
if (ugr.Cells["HeatPlanSqe"].Value.ToString().Equals(""))
{
//ugr.RowSelectorAppearance.BackColor = Color.GreenYellow;
ugr.Appearance.BackColor = Color.Orange;
}
}
}
private int splitterDistance = 0;
private void ultraExpandableGroupBox1_ExpandedStateChanged(object sender, EventArgs e)
{
if (ultraExpandableGroupBox1.Expanded == false)
{
this.splitContainer1.SplitterDistance = splitContainer1.Size.Height - 26;
}
else
{
this.splitContainer1.SplitterDistance = splitterDistance == 0 ? splitContainer1.Size.Height / 2 : splitterDistance;
}
}
private void ultraGrid1_InitializeLayout(object sender, InitializeLayoutEventArgs e)
{
StoveHelper.CustomMergedCellEvaluator merge = new StoveHelper.CustomMergedCellEvaluator("HeatPlanNo");
e.Layout.Bands[0].Columns["HeatPlanNo"].MergedCellStyle = MergedCellStyle.Always;
e.Layout.Bands[0].Columns["HeatPlanNo"].MergedCellEvaluator = merge;
e.Layout.Bands[0].Columns["JudgeStoveNo"].MergedCellStyle = MergedCellStyle.Always;
e.Layout.Bands[0].Columns["JudgeStoveNo"].MergedCellEvaluator = merge;
e.Layout.Bands[0].Columns["StoveNo"].MergedCellStyle = MergedCellStyle.Always;
e.Layout.Bands[0].Columns["StoveNo"].MergedCellEvaluator = merge;
e.Layout.Bands[0].Columns["PlnInsingleWt"].MergedCellStyle = MergedCellStyle.Always;
e.Layout.Bands[0].Columns["PlnInsingleWt"].MergedCellEvaluator = merge;
e.Layout.Bands[0].Columns["PlnOutsingleW"].MergedCellStyle = MergedCellStyle.Always;
e.Layout.Bands[0].Columns["PlnOutsingleW"].MergedCellEvaluator = merge;
e.Layout.Bands[0].Columns["PlnIndoubleWt"].MergedCellStyle = MergedCellStyle.Always;
e.Layout.Bands[0].Columns["PlnIndoubleWt"].MergedCellEvaluator = merge;
e.Layout.Bands[0].Columns["PlnOutdoubleW"].MergedCellStyle = MergedCellStyle.Always;
e.Layout.Bands[0].Columns["PlnOutdoubleW"].MergedCellEvaluator = merge;
e.Layout.Bands[0].Columns["PlnInsingleNum"].MergedCellStyle = MergedCellStyle.Always;
e.Layout.Bands[0].Columns["PlnInsingleNum"].MergedCellEvaluator = merge;
e.Layout.Bands[0].Columns["PlnOutsingleNum"].MergedCellStyle = MergedCellStyle.Always;
e.Layout.Bands[0].Columns["PlnOutsingleNum"].MergedCellEvaluator = merge;
e.Layout.Bands[0].Columns["PlnIndoubleNum"].MergedCellStyle = MergedCellStyle.Always;
e.Layout.Bands[0].Columns["PlnIndoubleNum"].MergedCellEvaluator = merge;
e.Layout.Bands[0].Columns["PlnOutdoubleNum"].MergedCellStyle = MergedCellStyle.Always;
e.Layout.Bands[0].Columns["PlnOutdoubleNum"].MergedCellEvaluator = merge;
e.Layout.Bands[0].Columns["ZyBatchId"].MergedCellStyle = MergedCellStyle.Always;
e.Layout.Bands[0].Columns["ZyBatchId"].MergedCellEvaluator = merge;
e.Layout.Bands[0].Columns["GxProSeq"].MergedCellStyle = MergedCellStyle.Always;
e.Layout.Bands[0].Columns["GxProSeq"].MergedCellEvaluator = merge;
e.Layout.Bands[0].Columns["Planstatus"].MergedCellStyle = MergedCellStyle.Always;
e.Layout.Bands[0].Columns["Planstatus"].MergedCellEvaluator = merge;
}
}
}