using Core.Mes.Client.Comm.Control; using Core.StlMes.Client.Judge.Commons; using CoreFS.CA06; using Infragistics.Win.UltraWinGrid; using System; using System.Collections.Generic; using System.Data; using System.Windows.Forms; namespace Core.StlMes.Client.Judge.Controls { public partial class StlIncisionDtlCtrl : UserControl { private Dal _d; private OpeBase ob; public StlIncisionDtlCtrl(Control container, OpeBase ob) { InitializeComponent(); _d = new Dal(ob); this.ob = ob; container.Controls.Add(this); this.Dock = DockStyle.Fill; this.BringToFront(); } public void QueryStl(string judgeStoveNo) { DataTable dt = _d.GetTableByXmlId("StlIncisionDAL.queryStlDtlByJudgeStoveNo", judgeStoveNo); ultraGrid1.BeginUpdate(); GridHelper.CopyDataToDatatable(dt, dataTable1, true); BindCraftNo(true); GridHelper.RefreshAndAutoSize(ultraGrid1); ultraGrid1.EndUpdate(); } public void QueryApply(string judgeApplyCode, string judgeApplySeq, string judgeStoveNo) { DataTable dt = _d.GetTableByXmlId("StlIncisionDAL.queryApplyDtlByJudgeStoveNoApplyNo", judgeApplyCode, judgeApplySeq, judgeStoveNo); ultraGrid1.BeginUpdate(); GridHelper.CopyDataToDatatable(dt, dataTable1, true); BindCraftNo(false); GridHelper.RefreshAndAutoSize(ultraGrid1); ultraGrid1.EndUpdate(); } private void BindCraftNo(bool stl) { for (int i = dataTable1.Columns.Count - 1; i >= 0; i--) { if (dataTable1.Columns[i].ColumnName.Contains("craft") || dataTable1.Columns[i].ColumnName.Contains("orderNo")) { dataTable1.Columns.RemoveAt(i); } } foreach (DataRow drStl in dataTable1.Rows) { string[] zgProPlanIds; if (stl) { zgProPlanIds = GetStlInsitionZgPlanId(drStl); } else { zgProPlanIds = GetGpJudgeApplyZgPlanId(drStl); } DataTable dtCraftNo = _d.GetTableByXmlId("JdgPlnOrderZgS.queryCraftNoByZgProPlanId", new object[] { zgProPlanIds }); for (int i = 0; i < dtCraftNo.Rows.Count; i++) { if (dataTable1.Columns.Contains("craftNo" + i.ToString())) continue; dataTable1.Columns.Add(new DataColumn() { ColumnName = "craftNo" + i.ToString(), Caption = "工艺文件" }); dataTable1.Columns.Add(new DataColumn() { ColumnName = "craftPath" + i.ToString(), Caption = "工艺文件路径" }); } DataTable dtOrderNo = _d.GetTableByXmlId("JdgPlnOrderZgS.queryOrderNoByZgProPlanId", new object[] { zgProPlanIds }); for (int i = 0; i < dtOrderNo.Rows.Count; i++) { if (dataTable1.Columns.Contains("orderNo" + i.ToString())) continue; dataTable1.Columns.Add(new DataColumn() { ColumnName = "orderNo" + i.ToString(), Caption = "合同号" }); } for (int i = 0; i < dtCraftNo.Rows.Count; i++) { drStl["craftNo" + i.ToString()] = dtCraftNo.Rows[i]["craftNo"].ToString(); drStl["craftPath" + i.ToString()] = dtCraftNo.Rows[i]["craftPath"].ToString(); } for (int i = 0; i < dtOrderNo.Rows.Count; i++) { drStl["orderNo" + i.ToString()] = dtOrderNo.Rows[i]["orderNo"].ToString(); } } foreach (var col in ultraGrid1.DisplayLayout.Bands[0].Columns) { if (col.Key.Contains("craftPath")) { col.Hidden = true; } else if (col.Key.Contains("craftNo")) { col.EditorComponent = ultraTextEditor1; col.ButtonDisplayStyle = ButtonDisplayStyle.Always; } } } private string[] GetStlInsitionZgPlanId(DataRow drStl) { List zgProPlanIds = new List(); string[] aryProPlanIds = drStl["proPlanId"].ToString().Split(','); string[] aryGxPlanNos = drStl["gxPlanNo"].ToString().Split(','); for (int i = 0; i < aryProPlanIds.Length; i++) { string proPlanId = aryProPlanIds[i]; string gxPlanNo = aryGxPlanNos[i]; if (proPlanId.StartsWith("ZG")) { zgProPlanIds.Add(proPlanId + gxPlanNo); } else { DataTable dtZgProPlanIds = _d.GetTableByXmlId("JdgPlnOrderZgS.queryByGpreqId", proPlanId); foreach (DataRow drZgProPlanId in dtZgProPlanIds.Rows) { zgProPlanIds.Add(drZgProPlanId["proPlanId"].ToString()); } } } return zgProPlanIds.ToArray(); } private string[] GetGpJudgeApplyZgPlanId(DataRow gpJudgeApply) { List zgProPlanIds = new List(); string proPlanIdNext = gpJudgeApply["proPlanIdNext"].ToString(); string gxPlanNoNext = gpJudgeApply["gxPlanNoNext"].ToString(); string proPlanId = gpJudgeApply["proPlanId"].ToString(); if (proPlanIdNext != "" && proPlanIdNext.StartsWith("ZG")) { zgProPlanIds.Add(proPlanIdNext + gxPlanNoNext); } else { string zzProPlanId = ""; if (proPlanIdNext != "") { zzProPlanId = proPlanIdNext; } else { zzProPlanId = proPlanId; } DataTable dtZgProPlanIds = _d.GetTableByXmlId("JdgPlnOrderZgS.queryByGpreqId", zzProPlanId); foreach (DataRow drZgProPlanId in dtZgProPlanIds.Rows) { zgProPlanIds.Add(drZgProPlanId["proPlanId"].ToString()); } } return zgProPlanIds.ToArray(); } public void Clear() { this.dataTable1.Clear(); } FormFileDown askDown; private void ultraTextEditor1_EditorButtonClick(object sender, Infragistics.Win.UltraWinEditors.EditorButtonEventArgs e) { var row = ultraGrid1.ActiveRow; string filePath = row.GetValue(ultraGrid1.ActiveCell.Column.Key.Replace("craftNo", "craftPath")); askDown = new FormFileDown(ob, filePath); askDown.DeleteButton.Visible = false; askDown.Show(); } } }