From 30458c0bca8066d98ca901b5065832a44a7e970e Mon Sep 17 00:00:00 2001 From: wells.liu <wells.liu@broconcentric.com> Date: 星期四, 16 七月 2020 15:47:22 +0800 Subject: [PATCH] 测量结果 查询+导出功能 --- src/Bro.M071.Process/UI/M071_DataForm.cs | 219 +++++++++++++++++++++++++++++++++++++++++++++++++++--- 1 files changed, 204 insertions(+), 15 deletions(-) diff --git a/src/Bro.M071.Process/UI/M071_DataForm.cs b/src/Bro.M071.Process/UI/M071_DataForm.cs index 213b464..5b306db 100644 --- a/src/Bro.M071.Process/UI/M071_DataForm.cs +++ b/src/Bro.M071.Process/UI/M071_DataForm.cs @@ -1,11 +1,15 @@ -锘縰sing Bro.M071.DBManager; +锘縰sing Bro.Common.Helper; +using Bro.M071.DBManager; using Bro.M071.Model.Model; using Bro.UI.Model.Winform; +using OfficeOpenXml.FormulaParsing.Excel.Functions.Math; using System; using System.Collections.Generic; using System.ComponentModel; +using System.Configuration; using System.Data; using System.Drawing; +using System.IO; using System.Linq; using System.Text; using System.Threading.Tasks; @@ -18,6 +22,10 @@ { public ProductionMeasurementRecordsManager _productionMeasurementRecordsManager = new ProductionMeasurementRecordsManager(); public MeasurementUnitResultManager _measurementUnitResultManager = new MeasurementUnitResultManager(); + + ProductionMeasurementRecordsRequest recordsRequest = new ProductionMeasurementRecordsRequest(); + MeasurementUnitResultRequest resultRequest = new MeasurementUnitResultRequest(); + public M071_DataForm() { InitializeComponent(); @@ -33,7 +41,54 @@ private void buttonQuery_Click(object sender, EventArgs e) { - ProductionMeasurementRecordsRequest recordsRequest = new ProductionMeasurementRecordsRequest(); + recordsRequest.PageNum = 1; + GetProductionMeasurementRecords(); + } + private void buttonToFirstPage_Click(object sender, EventArgs e) + { + recordsRequest.PageNum = 1; + GetProductionMeasurementRecords(); + } + private void buttonToBeforePage_Click(object sender, EventArgs e) + { + if (recordsRequest.PageNum != 1) + { + recordsRequest.PageNum = recordsRequest.PageNum - 1; + GetProductionMeasurementRecords(); + } + } + private void buttonToNextPage_Click(object sender, EventArgs e) + { + if (recordsRequest.PageNum != recordsRequest.TotalPage && recordsRequest.TotalPage != 0) + { + recordsRequest.PageNum = recordsRequest.PageNum + 1; + GetProductionMeasurementRecords(); + } + } + private void buttonToLastPage_Click(object sender, EventArgs e) + { + if (recordsRequest.TotalPage != 0) + { + recordsRequest.PageNum = recordsRequest.TotalPage; + GetProductionMeasurementRecords(); + } + } + + private void ToPage(object sender, KeyEventArgs e) + { + if (e.KeyCode == Keys.Enter) + { + recordsRequest.PageNum = Convert.ToInt32(textBoxPageNum.Text); + if (recordsRequest.PageNum > recordsRequest.TotalPage) + { + recordsRequest.PageNum = recordsRequest.TotalPage == 0 ? 1 : recordsRequest.TotalPage; + } + GetProductionMeasurementRecords(); + } + } + + private void GetProductionMeasurementRecords() + { recordsRequest.ProductionCode = textBoxPCode.Text; recordsRequest.ProductionBarcode = textBoxPBarCode.Text; recordsRequest.ProductionResult = comboBoxPResult.SelectedItem?.ToString(); @@ -46,35 +101,169 @@ labelTotal.Text = $"鏁伴噺:{recordsRequest.TotalNum} 鎬婚〉鏁�:{recordsRequest.TotalPage}"; textBoxPageNum.Text = recordsRequest.PageNum.ToString(); } - #endregion #region 娴嬮噺缁撴灉 private void InitialMeasurementResultLayout() { comboBoxResult_MR.DataSource = new List<string>() { "", "OK", "NG" }; - comboBoxMeasurementType_MR.DataSource = new List<string>() { "", "Slant", "HeightAlignment", "FullRowHeightAlignment" }; + comboBoxMeasurementType_MR.DataSource = new List<string>() { "", "Slant", "Alignment", "RowAlignment" }; } private void buttonQuery_MR_Click(object sender, EventArgs e) { - MeasurementUnitResultRequest recordsRequest = new MeasurementUnitResultRequest(); - recordsRequest.ProductionCode = textBoxPCode_MR.Text; - recordsRequest.ProductionBarcode = textBoxtextBoxPBarCode_MR.Text; - recordsRequest.MeasurementName = textBoxMeasurementName_MR.Text; - recordsRequest.MeasurementType = comboBoxMeasurementType_MR.SelectedItem?.ToString(); - recordsRequest.MeasurementResult = comboBoxResult_MR.SelectedItem?.ToString(); - recordsRequest.StartTime = Convert.ToDateTime(dateTimePickerStartTime_MR.Value.ToString("D").ToString()); - recordsRequest.EndTime = Convert.ToDateTime(dateTimePickerEndTime_MR.Value.AddDays(1).ToString("D").ToString()).AddSeconds(-1); + resultRequest.PageNum = 1; + GetMeasurementUnitResult(); + } - var queryData = _measurementUnitResultManager.GetMeasurementUnitResult(recordsRequest); + private void GetMeasurementUnitResult() + { + resultRequest.ProductionCode = textBoxPCode_MR.Text; + resultRequest.ProductionBarcode = textBoxtextBoxPBarCode_MR.Text; + resultRequest.MeasurementName = textBoxMeasurementName_MR.Text; + resultRequest.MeasurementType = comboBoxMeasurementType_MR.SelectedItem?.ToString(); + resultRequest.MeasurementResult = comboBoxResult_MR.SelectedItem?.ToString(); + resultRequest.StartTime = Convert.ToDateTime(dateTimePickerStartTime_MR.Value.ToString("D").ToString()); + resultRequest.EndTime = Convert.ToDateTime(dateTimePickerEndTime_MR.Value.AddDays(1).ToString("D").ToString()).AddSeconds(-1); + + var queryData = _measurementUnitResultManager.GetMeasurementUnitResult(resultRequest); + dataGridView2.AutoGenerateColumns = false; dataGridView2.DataSource = queryData; labelTotal_MR.Text = $"鏁伴噺:{recordsRequest.TotalNum} 鎬婚〉鏁�:{recordsRequest.TotalPage}"; textBoxPageNum_MR.Text = recordsRequest.PageNum.ToString(); + } + private void ToPageMR(object sender, KeyEventArgs e) + { + if (e.KeyCode == Keys.Enter) + { + resultRequest.PageNum = Convert.ToInt32(textBoxPageNum.Text); + if (resultRequest.PageNum > resultRequest.TotalPage) + { + resultRequest.PageNum = resultRequest.TotalPage == 0 ? 1 : resultRequest.TotalPage; + } + GetMeasurementUnitResult(); + } + } + private void buttonExport_MR_Click(object sender, EventArgs e) + { + try + { + var exportData = GetMeasurementUnitResultAndKeyUnitData(); + if (exportData != null) + { + ExportProductionExcel(exportData); + MessageBox.Show("瀵煎嚭瀹屾垚"); + } + } + catch (Exception ex) + { + MessageBox.Show(ex.Message); + } + } + + private void ExportProductionExcel(ProductionMeasurementUnitResultExportDataSet productionMeasurementUnitResultExportDataSet) + { + ExcelExportSet excelExportDto = new ExcelExportSet(); + excelExportDto.Worksheets = new List<string>() { "鐢熶骇璁板綍", "妫�娴嬬粨鏋�", "鍘熷鏁版嵁" }; + var productionRecordsColumns = new Dictionary<string, string>() + { + {"ProductionCode", "浜у搧缂栫爜"}, + {"ProductionBarcode", "浜у搧鏉$爜"}, + {"ProductionResult", "浜у搧缁撴灉"}, + {"OperationStartTime", "鎿嶄綔寮�濮嬫椂闂�"}, + {"OperationEndTime", "鎿嶄綔缁撴潫鏃堕棿"} + }; + + var keyUnitColumns = new Dictionary<string, string>() + { + {"ProductionBarcode", "浜у搧鏉$爜"}, + {"Key", "閿�"}, + {"MeasurementItem", "妫�娴嬮」"}, + {"ItemValue", "妫�娴嬪��"} + }; + var measurementUnitResultColumns = new Dictionary<string, string>() + { + {"ProductionBarcode", "浜у搧鏉$爜"}, + {"MeasurementName", "妫�娴嬪悕绉�"}, + {"MeasurementType", "妫�娴嬬被鍨�"}, + {"MeasurementValue", "妫�娴嬪��"}, + {"MeasurementResult", "妫�娴嬬粨鏋�"}, + }; + + excelExportDto.WorksheetColumns[excelExportDto.Worksheets[0]] = productionRecordsColumns; + excelExportDto.WorksheetColumns[excelExportDto.Worksheets[1]] = keyUnitColumns; + excelExportDto.WorksheetColumns[excelExportDto.Worksheets[2]] = measurementUnitResultColumns; + + excelExportDto.WorksheetDataTable[excelExportDto.Worksheets[0]] = ExcelExportHelper.ListToDataTable(productionMeasurementUnitResultExportDataSet.ProductionMeasurementRecordList, productionRecordsColumns); + excelExportDto.WorksheetDataTable[excelExportDto.Worksheets[1]] = ExcelExportHelper.ListToDataTable(productionMeasurementUnitResultExportDataSet.KeyUnitDataList, keyUnitColumns); + excelExportDto.WorksheetDataTable[excelExportDto.Worksheets[2]] = ExcelExportHelper.ListToDataTable(productionMeasurementUnitResultExportDataSet.MeasurementUnitResultList, measurementUnitResultColumns); + + var exportPath = ConfigurationManager.AppSettings["ExportPath"]; + if (!Directory.Exists(exportPath)) + { + Directory.CreateDirectory(exportPath); + } + var fileName = Path.Combine(exportPath, $"ExportData_{DateTime.Now.ToString("HHmmss")}.xlsx"); + + byte[] filecontent = ExcelExportHelper.CreateOrAppendExcel(excelExportDto, fileName); + FileStream fs = new FileStream(fileName, FileMode.Create, FileAccess.Write); + fs.Write(filecontent, 0, filecontent.Length); + fs.Flush(); + fs.Close(); + } + + private ProductionMeasurementUnitResultExportDataSet GetMeasurementUnitResultAndKeyUnitData() + { + ProductionMeasurementUnitResultExportDataSet productionMeasurementUnitResultExportDataSet = new ProductionMeasurementUnitResultExportDataSet(); + try + { + MeasurementUnitResultRequest measurementUnitResultRequest = resultRequest.DeepSerializeClone(); + measurementUnitResultRequest.PageNum = 1; + measurementUnitResultRequest.PageSize = 10000; + productionMeasurementUnitResultExportDataSet = _measurementUnitResultManager.GetProductionMeasurementUnitResultExportDataSet(measurementUnitResultRequest); + } + catch (Exception ex) + { + MessageBox.Show(ex.Message); + } + return productionMeasurementUnitResultExportDataSet; + } + + private void buttonToFirstPage_MR_Click(object sender, EventArgs e) + { + resultRequest.PageNum = 1; + GetMeasurementUnitResult(); + } + + private void buttonToBeforePage_MR_Click(object sender, EventArgs e) + { + if (resultRequest.PageNum != 1) + { + resultRequest.PageNum = resultRequest.PageNum - 1; + GetMeasurementUnitResult(); + } + } + + private void buttonToNextPage_MR_Click(object sender, EventArgs e) + { + if (resultRequest.PageNum != resultRequest.TotalPage && resultRequest.TotalPage != 0) + { + resultRequest.PageNum = resultRequest.PageNum + 1; + GetMeasurementUnitResult(); + } + } + + private void buttonToLastPage_MR_Click(object sender, EventArgs e) + { + if (resultRequest.TotalPage != 0) + { + resultRequest.PageNum = resultRequest.TotalPage; + GetMeasurementUnitResult(); + } + } + #endregion - - } } -- Gitblit v1.8.0