| | |
| | | using LB_SmartVisionCommon; |
| | | using LB_SmartVision.CSV; |
| | | using LB_SmartVision.SQL; |
| | | using LB_SmartVisionCommon; |
| | | using System; |
| | | using System.Collections.Generic; |
| | | using System.ComponentModel; |
| | | using System.Data; |
| | | using System.Drawing; |
| | | using System.Globalization; |
| | | using System.Linq; |
| | | using System.Text; |
| | | using System.Threading.Tasks; |
| | |
| | | public partial class HistoricalDataEditPage : UserControl |
| | | { |
| | | public Action<string, LogInfoType> LogInfo; |
| | | // 保存原始数据的列表 |
| | | private List<DataGridViewRow> originalRows = new List<DataGridViewRow>(); |
| | | |
| | | private int row2OriginalHeight; |
| | | private int row3OriginalHeight; |
| | | |
| | | List<RecordProductData> RecordProductDatas = new List<RecordProductData>(); |
| | | public HistoricalDataEditPage() |
| | | { |
| | | Name = "HistoricalDataEditPage"; |
| | |
| | | /// </summary> |
| | | private void InitializeDataGridView() |
| | | { |
| | | // 设置DataGridView列宽 |
| | | dataGridViewHD.ColumnCount = 4; |
| | | |
| | | int totalWidth = dataGridViewHD.ClientSize.Width; |
| | | int columnCount = dataGridViewHD.ColumnCount; |
| | | int columnWidth = totalWidth / columnCount; |
| | | |
| | | // 设置最小宽度 |
| | | int minWidth = 100; // 最小宽度 |
| | | if (columnWidth < minWidth) |
| | | { |
| | | columnWidth = minWidth; |
| | | } |
| | | |
| | | for (int i = 0; i < columnCount; i++) |
| | | { |
| | | dataGridViewHD.Columns[i].Width = columnWidth; |
| | | } |
| | | |
| | | // 设置列标题 |
| | | dataGridViewHD.Columns[0].Name = "SN号"; |
| | | dataGridViewHD.Columns[1].Name = "时间"; |
| | | dataGridViewHD.Columns[2].Name = "NG类"; |
| | | dataGridViewHD.Columns[3].Name = "缺陷大小"; |
| | | this.dataGridViewHD.DataSource = RecordProductDatas; |
| | | |
| | | dataGridViewHD.AutoSizeColumnsMode = DataGridViewAutoSizeColumnsMode.Fill; |
| | | |
| | |
| | | { |
| | | dateTimePickerEnd.MinDate = dateTimePickerStart.Value; |
| | | } |
| | | public string OpenFileForSave() |
| | | { |
| | | using (SaveFileDialog saveFileDialog = new SaveFileDialog()) |
| | | { |
| | | // 设置默认文件名和扩展名 |
| | | saveFileDialog.FileName = $"历史数据_{DateTime.Now:yyyyMMdd_HHmmss}"; |
| | | saveFileDialog.DefaultExt = "xlsx"; |
| | | |
| | | // 设置文件过滤器 |
| | | saveFileDialog.Filter = "Excel文件 (*.xlsx)|*.xlsx|" + |
| | | "CSV文件 (*.csv)|*.csv|" + |
| | | "文本文件 (*.txt)|*.txt|" + |
| | | "所有文件 (*.*)|*.*"; |
| | | |
| | | saveFileDialog.Title = "选择文件保存位置"; |
| | | saveFileDialog.RestoreDirectory = true; // 记住上次打开的目录 |
| | | saveFileDialog.OverwritePrompt = true; // 覆盖时提示 |
| | | |
| | | if (saveFileDialog.ShowDialog() == DialogResult.OK) |
| | | { |
| | | string filePathHD = saveFileDialog.FileName; |
| | | return filePathHD; |
| | | } |
| | | } |
| | | |
| | | return null; |
| | | } |
| | | private void btnHisDataExport_Click(object sender, EventArgs e) |
| | | { |
| | | |
| | | CsvDataHelperRecordProductData.SaveToCsv(OpenFileForSave(), RecordProductDatas); |
| | | } |
| | | |
| | | public void SaveToCSV(string filePath, int rowIndex) |
| | | private void btnHisDataFind_Click(object sender, EventArgs e) |
| | | { |
| | | // 使用 StreamWriter 来写入文件 |
| | | using (StreamWriter writer = new StreamWriter(filePath)) |
| | | |
| | | DateTime startDate = dateTimePickerStart.Value.Date; |
| | | DateTime endDate = dateTimePickerEnd.Value.Date; |
| | | |
| | | switch(comboBoxSearchBasis.SelectedIndex) |
| | | { |
| | | DataGridViewRow row = dataGridViewHD.Rows[rowIndex]; |
| | | |
| | | int rowCount = 10;//10改为采集次数 |
| | | |
| | | writer.WriteLine("SN号, 时间, NG类, 缺陷大小"); |
| | | |
| | | // 遍历每一行数据 |
| | | for (int i = 0; i < rowCount; i++) |
| | | //依据日期查询 |
| | | case 0: |
| | | RecordProductDatas = RecordProductDataRepository.GetRecordsByTimeRange(DateTime.Parse(this.dateTimePickerStart.Value.ToString()), DateTime.Parse(this.dateTimePickerEnd.Value.ToString())); |
| | | break; |
| | | //依据SN号查询 |
| | | case 1: |
| | | if(string.IsNullOrEmpty(textBoxSN.Text)) |
| | | { |
| | | int batchSize = 4; |
| | | |
| | | // 写入这一批次的每一列数据 |
| | | for (int k = 0; k < batchSize; k++) |
| | | MessageBox.Show("请填写SN号!", "提示", MessageBoxButtons.OK, MessageBoxIcon.Warning); |
| | | } |
| | | else |
| | | { |
| | | writer.Write($"{row.Cells[k].Value}"); |
| | | |
| | | // 在元素之间添加逗号,除非这是最后一个元素 |
| | | if (k < batchSize - 1) |
| | | { |
| | | writer.Write(","); |
| | | RecordProductDatas = RecordProductDataRepository.GetRecordsByProductNumber(textBoxSN.Text); |
| | | } |
| | | break; |
| | | } |
| | | |
| | | // 写入完一行后,换行 |
| | | writer.WriteLine(); |
| | | this.dataGridViewHD.DataSource = RecordProductDatas; |
| | | this.dataGridViewHD.AutoGenerateColumns = true; |
| | | |
| | | } |
| | | |
| | | } |
| | | } |
| | | } |
| | | } |
| | | } |
| | | |