| | |
| | | using HMI.Base; |
| | | using HMI.Core.Util; |
| | | using HMI.UI.Util; |
| | | using HMI.Util; |
| | | using Microsoft.Win32; |
| | | using System; |
| | | using System.Collections.Generic; |
| | | using System.Data; |
| | |
| | | } |
| | | } |
| | | |
| | | private void DoExport() { |
| | | |
| | | private void DoExport() |
| | | { |
| | | try |
| | | { |
| | | SaveFileDialog sfd = new SaveFileDialog |
| | | { |
| | | Filter = "Excel Files (*.xls)|*.xls", |
| | | }; |
| | | if (sfd.ShowDialog() == true) |
| | | { |
| | | var dt = GetDataTable(false, 1, 1, out long totalPage); |
| | | ExcelHelper.ExportExcel<LogData>(sfd.FileName, dt); |
| | | ToastHelper.Success(this.lang("App.ExportSuccess")); |
| | | } |
| | | } |
| | | catch (Exception ex) |
| | | { |
| | | log.Error("Export Log Failed.", ex); |
| | | MsgBoxHelper2.Error($"导出失败: {ex.Message}"); |
| | | } |
| | | } |
| | | |
| | | private void QueryLog() |
| | |
| | | endTimeInput.SelectedDateTime = end; |
| | | } |
| | | |
| | | public DataTable GetDataTable(bool usePage, long page, long size, out long totalPage) |
| | | { |
| | | totalPage = 0; |
| | | var files = GetOldDbFiles(PathHelper.LogViewerDir, new DateTime?[] { startTimeInput.SelectedDateTime, |
| | | endTimeInput.SelectedDateTime }); |
| | | if (files.Length <= 0) |
| | | { |
| | | return new DataTable(); |
| | | } |
| | | |
| | | using (Sqlite3Helper helper = new Sqlite3Helper(files[0])) |
| | | { |
| | | for (int i = 0; i < files.Length; i++) |
| | | { |
| | | var attach = $"ATTACH DATABASE '{files[i]}' AS 'db{i}'"; |
| | | helper.Execute(attach); |
| | | } |
| | | |
| | | string sql = string.Join(" UNION ALL ", GetSqls(files)); |
| | | |
| | | string sortName = "time", sortDirection = "DESC"; |
| | | |
| | | string baseSql = $"SELECT level,time,source,text FROM ({sql}) as _temp"; |
| | | |
| | | string countSql = $"SELECT COUNT(1) FROM ({sql}) as __temp"; |
| | | |
| | | long total = (long)helper.SelectOne(countSql); |
| | | totalPage = (total / pageSize) + ((total % pageSize) > 0 ? 1 : 0); |
| | | |
| | | if (usePage) |
| | | { |
| | | sql = $"{baseSql} ORDER BY {sortName} {sortDirection} LIMIT {size} OFFSET {(page - 1) * size} "; |
| | | } |
| | | else |
| | | { |
| | | sql = $"{baseSql} ORDER BY {sortName} {sortDirection}"; |
| | | } |
| | | |
| | | DataTable dt = helper.GetDataTable(sql); |
| | | return dt; |
| | | } |
| | | } |
| | | |
| | | private void Filtrate(long page, long size) |
| | | { |
| | | try |
| | | { |
| | | var files = GetOldDbFiles(PathHelper.LogViewerDir, new DateTime?[] { startTimeInput.SelectedDateTime, |
| | | endTimeInput.SelectedDateTime }); |
| | | if (files.Length <= 0) |
| | | { |
| | | table.ItemsSource = new DataTable().DefaultView; |
| | | return; |
| | | } |
| | | //var files = GetOldDbFiles(PathHelper.LogViewerDir, new DateTime?[] { startTimeInput.SelectedDateTime, |
| | | //endTimeInput.SelectedDateTime }); |
| | | //if (files.Length <= 0) |
| | | //{ |
| | | // table.ItemsSource = new DataTable().DefaultView; |
| | | // return; |
| | | //} |
| | | |
| | | using (Sqlite3Helper helper = new Sqlite3Helper(files[0])) |
| | | { |
| | | for (int i = 0; i < files.Length; i++) |
| | | { |
| | | var attach = $"ATTACH DATABASE '{files[i]}' AS 'db{i}'"; |
| | | helper.Execute(attach); |
| | | } |
| | | //using (Sqlite3Helper helper = new Sqlite3Helper(files[0])) |
| | | //{ |
| | | // for (int i = 0; i < files.Length; i++) |
| | | // { |
| | | // var attach = $"ATTACH DATABASE '{files[i]}' AS 'db{i}'"; |
| | | // helper.Execute(attach); |
| | | // } |
| | | |
| | | string sql = string.Join(" UNION ALL ", GetSqls(files)); |
| | | // string sql = string.Join(" UNION ALL ", GetSqls(files)); |
| | | |
| | | string sortName = "time", sortDirection = "DESC"; |
| | | // string sortName = "time", sortDirection = "DESC"; |
| | | |
| | | string baseSql = $"SELECT level,time,source,text FROM ({sql}) as _temp"; |
| | | // string baseSql = $"SELECT level,time,source,text FROM ({sql}) as _temp"; |
| | | |
| | | string countSql = $"SELECT COUNT(1) FROM ({sql}) as __temp"; |
| | | // string countSql = $"SELECT COUNT(1) FROM ({sql}) as __temp"; |
| | | |
| | | long total = (long)helper.SelectOne(countSql); |
| | | long pages = (total/pageSize)+ ((total % pageSize) > 0 ? 1 : 0); |
| | | // long total = (long)helper.SelectOne(countSql); |
| | | // long pages = (total/pageSize)+ ((total % pageSize) > 0 ? 1 : 0); |
| | | |
| | | sql = $"{baseSql} ORDER BY {sortName} {sortDirection} LIMIT {size} OFFSET {(page - 1) * size} "; |
| | | // sql = $"{baseSql} ORDER BY {sortName} {sortDirection} LIMIT {size} OFFSET {(page - 1) * size} "; |
| | | |
| | | DataTable dt = helper.GetDataTable(sql); |
| | | table.ItemsSource = dt.DefaultView; |
| | | // DataTable dt = helper.GetDataTable(sql); |
| | | // table.ItemsSource = dt.DefaultView; |
| | | |
| | | MaxPage = pages; |
| | | } |
| | | |
| | | // MaxPage = pages; |
| | | //} |
| | | table.ItemsSource = GetDataTable(true, page, size, out long totalPage).DefaultView; |
| | | MaxPage = totalPage; |
| | | } |
| | | catch (Exception ex) |
| | | { |