using System; using System.Collections.Generic; using System.Linq; using System.Windows.Forms; using Core.Mes.Client.Comm.Control; using Core.Mes.Client.Comm.Tool; using CoreFS.CA06; using Infragistics.Win; using Infragistics.Win.UltraWinEditors; using Infragistics.Win.UltraWinGrid; using ButtonDisplayStyle = Infragistics.Win.UltraWinGrid.ButtonDisplayStyle; namespace Core.StlMes.Client.Mcp.Treatment.Report { public partial class FrmReportBase : FrmBase { private string[] _plineCodes = {}; /// /// 子表排序 /// protected List Band2 = new List(); /// /// 是否显示勾选 /// protected bool NeedCheck = false; /// /// 人员字段顺序 /// protected List OperationInfo = new List { "ReportPath", "ProUser", "Responsible", "CreatetUser", "ProShift", "LoadShift", "ProGroup", "LoadGroup", "ProTime", "LoadTime", "ProEndTime", "ColTime", "ColEndTime", "CreateTime" }; /// /// 生产信息区域顺序 /// protected List ProductionInfo = new List { "MachineNo", "ProNum", "ProWt", "QualifiedNum", "QualifiedWt", "HeadCutNum", "FailNum", "FailWt", "ReProNum", "ReProWt", "FinalQualifiedNum", "FinalQualifiedWt" }; /// /// 参数区域字段顺序 /// protected List ResultNoPara = new List(); /// /// 是否显示记录数 /// protected bool ShowRecordCount = true; protected bool ShowStatus = false; protected bool ShowJg = false; /// /// 需要显示汇总的字段 /// protected List SumList = new List { "ProNum", "ProWt", "HeadCutNum", "FailNum", "FailWt", "ReProNum", "ReProWt", "QualifiedNum", "QualifiedWt", "UnqualifiedNum", "UnqualifiedWt", "FinalQualifiedNum", "FinalQualifiedWt", "CouplingNum", "CouplingWt", "CheckNum", "CheckWt" }; /// /// 合同信息 /// protected List ViewList = new List { "ProYearMonthDay", "JudgeStoveNo", "BatchNo", "PlineName", "Producname", "Steelname", "Gradename", "Outdiameter", "Wallthick", "ModelDesc", "OrderNo" }; public FrmReportBase() { InitializeComponent(); IsLoadUserView = true; } /// /// 按照区域重新排序 /// private void Resort() { var ColumnSeq = ViewList.Concat(ProductionInfo).Concat(ResultNoPara).Concat(OperationInfo).ToList(); if (NeedCheck) ColumnSeq = new List {"Chk"}.Concat(ColumnSeq).ToList(); SortBand(ColumnSeq, CrackDetectGrid.DisplayLayout.Bands[0]); if (CrackDetectGrid.DisplayLayout.Bands.Count > 1) SortBand(Band2, CrackDetectGrid.DisplayLayout.Bands[1]); } /// /// Band重新排序 /// /// /// private void SortBand(List ColumnSeq, UltraGridBand band) { foreach (var Columns in band.Columns) ResetColumns(Columns); var ColumnX = 0; for (var i = 0; i < ColumnSeq.Count; i++) { var Key = ColumnSeq[i]; if (band.Columns.Exists(Key)) { band.Columns[Key].Hidden = false; band.Columns[Key].RowLayoutColumnInfo.OriginX = 2*ColumnX++; band.Columns[Key].RowLayoutColumnInfo.OriginY = 0; } } } /// /// 重置字段属性,或绑定 /// /// protected virtual void ResetColumns(UltraGridColumn Columns) { Columns.Hidden = true; Columns.CellActivation = Activation.ActivateOnly; if (NeedCheck && (Columns.Key == "Chk")) Columns.CellActivation = Activation.AllowEdit; if ((Columns.Key == "ProShift") || (Columns.Key == "LoadShift")) Columns.EditorComponent = cmbBc; if ((Columns.Key == "ProGroup") || (Columns.Key == "LoadGroup")) Columns.EditorComponent = cmbBz; if ((Columns.Key == "ReportPath") || (Columns.Key == "ReportFull")) { Columns.EditorComponent = uteReport; Columns.ButtonDisplayStyle = ButtonDisplayStyle.Always; } } public override void ToolBar_Click(object sender, string ToolbarKey) { switch (ToolbarKey) { case "DoQuery": Query(); break; case "Export": Export(); break; case "DoClose": Close(); break; } } /// /// 导出 /// protected virtual void Export() { GridHelper.ulGridToExcel(CrackDetectGrid, Text); } /// /// 查询 /// protected void Query() { var Message = ""; var wf = new WaitingForm2("正在查询,请稍候...."); try { Cursor = Cursors.WaitCursor; QuerySinglePlan(); GridHelper.RefreshAndAutoSizeExceptColumns(CrackDetectGrid, "ReportPath"); } catch (Exception ex) { if (ex.Message.ToString2() != "") Message = ex.Message; } finally { wf.Close(); Cursor = Cursors.Default; } if (!string.IsNullOrWhiteSpace(Message)) MessageBox.Show(Message); } /// /// 查询 /// protected virtual void QuerySinglePlan() { } /// /// 获取查询区域参数 /// /// protected virtual object[] GetQueryCondition() { var startTim = ""; var endTim = ""; var shift = ""; //班次 var group = ""; //班组 var OrderNo = ""; var JudgeStoveNo = ""; var BatchNo = ""; var JgJudgeStoveNo = ""; var JgBatchNo = ""; if (chkOrder.Checked && (cmbOrder.Text.Trim() != "")) shift = cmbOrder.Value.ToString(); if (chkTim.Checked) { if (DateTime.Parse(RegStartTime.Value.ToString()) > DateTime.Parse(RegEndTime.Value.ToString())) throw new Exception("选择时间区间错误,请重新选择!"); startTim = RegStartTime.Value.ToString("yyyy-MM-dd HH:mm:ss"); endTim = RegEndTime.Value.ToString("yyyy-MM-dd HH:mm:ss"); } if (chkGroup.Checked && (cmbGroup.Text.Trim() != "")) group = cmbGroup.Value.ToString(); if (chkOrderNo.Checked) OrderNo = txtOrderNo.Text; if (chkJudgeStove.Checked) JudgeStoveNo = txtJudgeStove.Text; if (chkBatchNo.Checked) BatchNo = txtBatchNo.Text; if (chkJgJudgeStove.Checked) JgJudgeStoveNo = txtJgJudgeStove.Text; if (chkBatchNo.Checked) JgBatchNo = txtJgBatch.Text; if (string.IsNullOrEmpty(OrderNo) && string.IsNullOrEmpty(JudgeStoveNo) && string.IsNullOrEmpty(startTim)) if (MessageUtil.ShowYesNoAndQuestion("时间/合同/炉号条件未选择,查询时间可能会超时,请确定是否继续查询?") == DialogResult.No) throw new Exception(""); if (ShowStatus) { return new object[] { shift, group, chkPlineCode.Checked && (cboPline.CheckedItems.Count > 0) ? cboPline.CheckedItems.Select(p => p.DataValue.ToString()).ToArray() : _plineCodes, startTim, endTim, OrderNo, JudgeStoveNo, BatchNo, osStatus.Value.ToString2() }; } else if (ShowJg) { return new object[] { shift, group, chkPlineCode.Checked && (cboPline.CheckedItems.Count > 0) ? cboPline.CheckedItems.Select(p => p.DataValue.ToString()).ToArray() : _plineCodes, startTim, endTim, OrderNo, JudgeStoveNo, BatchNo,JgJudgeStoveNo,JgBatchNo }; } else { return new object[] { shift, group, chkPlineCode.Checked && (cboPline.CheckedItems.Count > 0) ? cboPline.CheckedItems.Select(p => p.DataValue.ToString()).ToArray() : _plineCodes, startTim, endTim, OrderNo, JudgeStoveNo, BatchNo }; } } /// /// 加载界面信息 /// protected virtual void LoadView() { } protected override void OnLoad(EventArgs e) { base.OnLoad(e); LoadView(); Resort(); osStatus.Visible = ShowStatus; chkJgJudgeStove.Visible = ShowJg; chkJgBatch.Visible = ShowJg; if ((_plineCodes.Length > 1) && ((_plineCodes[1] == "C038") || (_plineCodes[1] == "C039") || (_plineCodes[1] == "C049") || (_plineCodes[1] == "C050") || (_plineCodes[1] == "C051") || (_plineCodes[1] == "C057"))) { RegStartTime.Value = DateTime.Parse(DateTime.Now.AddDays(-1).ToString("yyyy-MM-dd 20:00")); RegEndTime.Value = DateTime.Parse(DateTime.Now.ToString("yyyy-MM-dd 19:59")); } else { RegStartTime.Value = DateTime.Parse(DateTime.Now.AddDays(-1).ToString("yyyy-MM-dd 21:00")); RegEndTime.Value = DateTime.Parse(DateTime.Now.ToString("yyyy-MM-dd 20:59")); } SetStaticsInfoSum(ref CrackDetectGrid, SumList, true, ShowRecordCount); if (ShowRecordCount) { //SetStaticsInfoCount(ref CrackDetectGrid); } if (ob == null) return; _plineCodes = comm.InitDropPlineCodePower("F", cboPline, ValidDataPurviewIds, ob); Query(); } private void chkStarts_CheckedChanged(object sender, EventArgs e) { if (chkTim.Checked) { RegStartTime.Enabled = true; RegEndTime.Enabled = true; plDate.Visible = true; } else { RegStartTime.Enabled = false; RegEndTime.Enabled = false; plDate.Visible = false; } cmbOrder.Enabled = chkOrder.Checked; cmbGroup.Enabled = chkGroup.Checked; txtOrderNo.Enabled = chkOrderNo.Checked; txtJudgeStove.Enabled = chkJudgeStove.Checked; txtBatchNo.Enabled = chkBatchNo.Checked; txtJgJudgeStove.Enabled = chkJgJudgeStove.Checked; txtJgBatch.Enabled = chkJgBatch.Checked; cmbOrder.Visible = chkOrder.Checked; cmbGroup.Visible = chkGroup.Checked; txtOrderNo.Visible = chkOrderNo.Checked; txtJudgeStove.Visible = chkJudgeStove.Checked; txtBatchNo.Visible = chkBatchNo.Checked; cboPline.Visible = chkPlineCode.Checked; txtJgJudgeStove.Visible = chkJgJudgeStove.Checked; txtJgBatch.Visible = chkJgBatch.Checked; } /// /// 汇总方法 /// /// /// /// protected void SetStaticsInfoSum(ref UltraGrid myGrid1, List alistColumns, bool clearExists,bool ShowCount) { try { var band = myGrid1.DisplayLayout.Bands[0]; if (clearExists) band.Summaries.Clear(); band.Override.SummaryFooterCaptionVisible = DefaultableBoolean.False; for (var i = 0; i < alistColumns.Count; i++) { try { if (!band.Columns.Exists(alistColumns[i])) continue; var summary = band.Summaries.Add(SummaryType.Sum, band.Columns[alistColumns[i]]); summary.SummaryDisplayArea = SummaryDisplayAreas.BottomFixed; summary.SummaryPosition = SummaryPosition.UseSummaryPositionColumn; summary.DisplayFormat = "{0}"; summary.Appearance.TextHAlign = HAlign.Right; summary.Appearance.TextVAlign = VAlign.Middle; summary.Appearance.FontData.Bold = DefaultableBoolean.True; } catch { // ignored } } if (ShowCount && ViewList.Count>0) { var summary = band.Summaries.Add(SummaryType.Count, band.Columns[ViewList[0]]); summary.SummaryDisplayArea = SummaryDisplayAreas.BottomFixed; summary.SummaryPosition = SummaryPosition.UseSummaryPositionColumn; summary.DisplayFormat = "共{0}条记录"; summary.Appearance.TextHAlign = HAlign.Left; summary.Appearance.TextVAlign = VAlign.Middle; summary.Appearance.FontData.Bold = DefaultableBoolean.True; } } catch { } } /// /// 报告查询 /// /// /// private void uteReport_EditorButtonClick(object sender, EditorButtonEventArgs e) { var down = new FormFileDown(ob, CrackDetectGrid.ActiveCell.Value.ToString2()); down.CtrlFileDown1.Button3.Visible = false; down.ShowDialog(); } } }