C3204
2026-01-19 0468353b5e2265935846b299afc38bb34ae23e24
LB_SmartVision/Forms/Pages/HistoricalDataPage/HistoricalDataEditPage.cs
@@ -1,9 +1,12 @@
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;
@@ -14,9 +17,13 @@
    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";
@@ -37,30 +44,7 @@
        /// </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;
@@ -151,5 +135,68 @@
        {
            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);
        }
        private void btnHisDataFind_Click(object sender, EventArgs e)
        {
            DateTime startDate = dateTimePickerStart.Value.Date;
            DateTime endDate = dateTimePickerEnd.Value.Date;
            switch(comboBoxSearchBasis.SelectedIndex)
            {
                //依据日期查询
                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))
                    {
                        MessageBox.Show("请填写SN号!", "提示", MessageBoxButtons.OK, MessageBoxIcon.Warning);
                    }
                    else
                    {
                        RecordProductDatas = RecordProductDataRepository.GetRecordsByProductNumber(textBoxSN.Text);
                    }
                        break;
            }
            this.dataGridViewHD.DataSource = RecordProductDatas;
            this.dataGridViewHD.AutoGenerateColumns = true;
        }
    }
}