alielie
2025-11-21 3a471ae651b228231bebb3a2d438baa1d4ac0261
HMI.DataViewer/DataViewer.xaml.cs
@@ -176,7 +176,7 @@
            Map.Clear();
            foreach (var data in settings)
            {
                Map.Add(data.Program, data);
                Map[data.Program] = data;
                names.Add(data.Program);
            }
            programInput.ItemsSource = names;
@@ -304,14 +304,19 @@
        private DataTable DoSearchData(DataBase_Setting setting, List<QueryData> datas)
        {
            string conditon = "WHERE 1=1 ";
            string fields = string.Join(",", Datas?.Select(d => $"[{d.Key}]").ToList());
            if (datas != null && datas.Count > 0)
            {
                conditon = "WHERE " + string.Join(" AND ", datas.Select(d => $"[{d.Key}] {d.Condition} '{d.Value}'").ToList());
            }
            string conditon = string.Join(" AND ", datas.Select(d => $"[{d.Key}] {d.Condition} '{d.Value}'").ToList());
            string timeCol = setting.TimeCol;
            if (string.IsNullOrEmpty(timeCol))
            {
                timeCol = "time";
            }
            if (!string.IsNullOrEmpty(startTimeInput.Text))
            {
                conditon += $" AND {timeCol} >= '{startTimeInput.Text}'";
@@ -320,7 +325,6 @@
            {
                conditon += $" AND {timeCol} < '{endTimeInput.Text}'";
            }
            conditon = string.IsNullOrEmpty(conditon) ? string.Empty : $" WHERE {conditon}";
            SqliteHelper helper = null;
            string sql = string.Empty;
@@ -354,7 +358,9 @@
            }
            var datas = Datas?.Where(d => !string.IsNullOrEmpty(d.Value)).ToList();
            if (datas == null || datas.Count <= 0)
            if ((datas == null || datas.Count <= 0) &&
                (string.IsNullOrEmpty(startTimeInput.Text) || string.IsNullOrEmpty(endTimeInput.Text)))
            {
                ToastHelper.Warning(Window.GetWindow(this), this.lang("Dv.QueryCantBeEmpty"));
                return;
@@ -431,7 +437,7 @@
                workbook.CreateSheet("sheet1");////新建一个工作表
                XSSFSheet SheetOne = (XSSFSheet)workbook.GetSheet("Sheet1"); ////获取名称为Sheet1的工作表,创建标题头
                IRow row1 = SheetOne.CreateRow(0);////获取Sheet1工作表的首行,设置表头,获取列
                XSSFCell[] SheetCell = new XSSFCell[currentColumns.Count];
                //XSSFCell[] SheetCell = new XSSFCell[currentColumns.Count];
                for (int i = 0; i < currentColumns.Count; i++)
                {
                    row1.CreateCell(i).SetCellValue(currentColumns[i].Header.ToString());