diff --git a/View/HistoryRecordsView.xaml b/View/HistoryRecordsView.xaml index be577a0..db1ae10 100644 --- a/View/HistoryRecordsView.xaml +++ b/View/HistoryRecordsView.xaml @@ -4,12 +4,60 @@ xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006" xmlns:d="http://schemas.microsoft.com/expression/blend/2008" xmlns:viewmodel="clr-namespace:DyeingComputer.ViewModel" + xmlns:lang="clr-namespace:DyeingComputer.Properties" xmlns:lvc="clr-namespace:LiveChartsCore.SkiaSharpView.WPF;assembly=LiveChartsCore.SkiaSharpView.WPF" mc:Ignorable="d" d:DataContext="{d:DesignInstance Type=viewmodel:HistoryRecordsViewModel}" d:DesignHeight="630" d:DesignWidth="1280"> - + + + + + + + + + + + + + + + + + + + diff --git a/View/HistoryRecordsView.xaml.cs b/View/HistoryRecordsView.xaml.cs index 5f722cf..bdb5524 100644 --- a/View/HistoryRecordsView.xaml.cs +++ b/View/HistoryRecordsView.xaml.cs @@ -1,9 +1,14 @@ using DyeingComputer.ViewModel; +using ScottPlot.Hatches; using System; using System.Collections.Generic; +using System.Data; using System.Linq; +using System.Net; using System.Text; +using System.Threading; using System.Threading.Tasks; +using System.Timers; using System.Windows; using System.Windows.Controls; using System.Windows.Data; @@ -13,6 +18,7 @@ using System.Windows.Media; using System.Windows.Media.Imaging; using System.Windows.Navigation; using System.Windows.Shapes; +using static DyeingComputer.UserClass.SqliteHelper; namespace DyeingComputer.View { @@ -21,10 +27,34 @@ namespace DyeingComputer.View /// public partial class HistoryRecordsView : UserControl { + private SQLiteHelper SQLiteHelpers = null; //定义数据库 + private readonly string DBAddress = Environment.CurrentDirectory + "\\DataBase\\800COMPUTER.db"; //数据库路径 + + DataTable GRIDDB = new DataTable(); public HistoryRecordsView() { InitializeComponent(); DataContext = new HistoryRecordsViewModel(); + + SQLiteHelpers = new SQLiteHelper(DBAddress); //数据库连接路径 + SQLiteHelpers.Open(); //打开数据库 + GRIDDB = SQLiteHelpers.ExecuteDataSet("select * from WorkOrder where StartTime > '" + DateTime.Now.AddDays(-30).ToString("yyyy/MM/dd HH:mm:ss") + "order by StartTime'", null).Tables[0]; + SQLiteHelpers.Close(); + + gridH.ItemsSource = GRIDDB.DefaultView; } + private void Grid_SelectionChanged(object sender, SelectionChangedEventArgs e) + { + int rownum = gridH.SelectedIndex;//获取鼠标选中行并定义变量 + if (rownum != -1)//判断鼠标定位是否有效 + { + HistoryRecordsViewModel.name = (gridH.Columns[0].GetCellContent(gridH.Items[rownum]) as TextBlock).Text;//定位第0列, + HistoryRecordsViewModel.stime = (gridH.Columns[5].GetCellContent(gridH.Items[rownum]) as TextBlock).Text;//定位第1列, + HistoryRecordsViewModel.etime = (gridH.Columns[6].GetCellContent(gridH.Items[rownum]) as TextBlock).Text;//定位第6列 + HistoryRecordsViewModel.history_ = true; + // chart.Series = HistoryRecordsViewModel.Series; + } + } + } } diff --git a/ViewModel/HistoryRecordsViewModel.cs b/ViewModel/HistoryRecordsViewModel.cs index 3081060..5c6ad7e 100644 --- a/ViewModel/HistoryRecordsViewModel.cs +++ b/ViewModel/HistoryRecordsViewModel.cs @@ -14,12 +14,19 @@ using System.Linq; using System.Text; using System.Threading.Tasks; using static DyeingComputer.UserClass.SqliteHelper; +using ScottPlot.Hatches; +using System.Windows.Controls; +using ScottPlot; +using System.Windows.Threading; +using ScottPlot.Statistics; +using System.Management.Instrumentation; namespace DyeingComputer.ViewModel { public partial class HistoryRecordsViewModel : ObservableObject { - public ISeries[] Series { get; set; } + + public static ISeries[] Series { get; set; } //x轴时间格式 public Axis[] XAxes { get; set; } = { @@ -97,92 +104,128 @@ namespace DyeingComputer.ViewModel //new AnimatableAxisBounds }; - private readonly Random _r = new Random(); - private readonly ObservableCollection MTT_values; - private readonly ObservableCollection MTL_values; - private readonly ObservableCollection MTH_values; - private readonly ObservableCollection MST_values; - private readonly ObservableCollection MUT_values; - private readonly ObservableCollection STTA_values; - private readonly ObservableCollection STLA_values; - private readonly ObservableCollection STTB_values; - private readonly ObservableCollection STLB_values; - private readonly ObservableCollection STTC_values; - private readonly ObservableCollection STLC_values; + private Random _r = new Random(); + private ObservableCollection MTT_values; + private ObservableCollection MTL_values; + private ObservableCollection MTH_values; + private ObservableCollection MST_values; + private ObservableCollection MUT_values; + private ObservableCollection STTA_values; + private ObservableCollection STLA_values; + private ObservableCollection STTB_values; + private ObservableCollection STLB_values; + private ObservableCollection STTC_values; + private ObservableCollection STLC_values; private SQLiteHelper SQLiteHelpers = null; //定义数据库 private readonly string ChartAdress = Environment.CurrentDirectory + "\\DataBase\\Chart.db"; //数据库路径 - DataTable CDB = new DataTable(); + public DataTable CDB = new DataTable(); private int CDB_Count;//长度 public HistoryRecordsViewModel() { - if (MainWindowViewModel.WorkNumder.ToString() != "----------") - { - SQLiteHelpers = new SQLiteHelper(ChartAdress); //数据库连接路径 - SQLiteHelpers.Open(); //打开数据库 - CDB = SQLiteHelpers.ExecuteDataSet("select * from Chart where DYELOT = '" + MainWindowViewModel.WorkNumder + "'order by Time", null).Tables[0]; - SQLiteHelpers.Close(); - CDB_Count = CDB.Rows.Count; + string Sys_Time = DateTime.Now.AddDays(-2).ToString("yyyy/MM/dd HH:mm:ss"); + SQLiteHelpers = new SQLiteHelper(ChartAdress); //数据库连接路径 + SQLiteHelpers.Open(); //打开数据库 + CDB = SQLiteHelpers.ExecuteDataSet("select * from Chart where Time > '" + Sys_Time + "'order by Time", null).Tables[0]; + SQLiteHelpers.Close(); + CDB_Count = CDB.Rows.Count; - var MTT_items = new List(); - var MTL_items = new List(); - var MTH_items = new List(); - var MST_items = new List(); - var MUT_items = new List(); - var STTA_items = new List(); - var STLA_items = new List(); - var STTB_items = new List(); - var STLB_items = new List(); - var STTC_items = new List(); - var STLC_items = new List(); - for (var i = 0; i < CDB_Count; i++) - { - DateTime TIME = Convert.ToDateTime(CDB.Rows[i].Field("Time")); - MTT_items.Add(new DateTimePoint(TIME, CDB.Rows[i].Field("MTT"))); - MTL_items.Add(new DateTimePoint(TIME, CDB.Rows[i].Field("MTL"))); - MTH_items.Add(new DateTimePoint(TIME, CDB.Rows[i].Field("MTH"))); - MST_items.Add(new DateTimePoint(TIME, CDB.Rows[i].Field("MST"))); - MUT_items.Add(new DateTimePoint(TIME, CDB.Rows[i].Field("MUT"))); - if (MainWindowViewModel.SM01 == 1) - { - STTA_items.Add(new DateTimePoint(TIME, CDB.Rows[i].Field("STTA"))); - STLA_items.Add(new DateTimePoint(TIME, CDB.Rows[i].Field("STLA"))); - } - if (MainWindowViewModel.SM02 == 1) - { - STTB_items.Add(new DateTimePoint(TIME, CDB.Rows[i].Field("STTB"))); - STLB_items.Add(new DateTimePoint(TIME, CDB.Rows[i].Field("STLB"))); - } - if (MainWindowViewModel.SM03 == 1) - { - STTC_items.Add(new DateTimePoint(TIME, CDB.Rows[i].Field("STTC"))); - STLC_items.Add(new DateTimePoint(TIME, CDB.Rows[i].Field("STLC"))); - } - } + Chart_View(); + CountDown(); + } + public static bool history_ = false; + public static string name; + public static string stime; + public static string etime; + public void History() + { + SQLiteHelpers = new SQLiteHelper(ChartAdress); //数据库连接路径 + SQLiteHelpers.Open(); //打开数据库 + CDB = SQLiteHelpers.ExecuteDataSet("select * from Chart where DYELOT = '" + name + "'order by Time", null).Tables[0]; + SQLiteHelpers.Close(); + CDB_Count = CDB.Rows.Count; - MTT_values = new ObservableCollection(MTT_items); - MTL_values = new ObservableCollection(MTL_items); - MTH_values = new ObservableCollection(MTH_items); - MST_values = new ObservableCollection(MST_items); - MUT_values = new ObservableCollection(MUT_items); + Chart_View(); + } + public void CountDown() + { + DispatcherTimer timer1s = new DispatcherTimer//初始化循环,每1秒调用一次Tick + { + Interval = TimeSpan.FromSeconds(1)//秒 + }; + timer1s.Tick += Tick_Event_1S; + timer1s.Start(); + } + void Tick_Event_1S(object sender, EventArgs e)//Tick_Event周期执行事件1S + { + if (history_) + { + History(); + history_ = false; + } + } + + public void Chart_View() + { + var MTT_items = new List(); + var MTL_items = new List(); + var MTH_items = new List(); + var MST_items = new List(); + var MUT_items = new List(); + var STTA_items = new List(); + var STLA_items = new List(); + var STTB_items = new List(); + var STLB_items = new List(); + var STTC_items = new List(); + var STLC_items = new List(); + for (var i = 0; i < CDB_Count; i++) + { + DateTime TIME = Convert.ToDateTime(CDB.Rows[i].Field("Time")); + MTT_items.Add(new DateTimePoint(TIME, CDB.Rows[i].Field("MTT"))); + MTL_items.Add(new DateTimePoint(TIME, CDB.Rows[i].Field("MTL"))); + MTH_items.Add(new DateTimePoint(TIME, CDB.Rows[i].Field("MTH"))); + MST_items.Add(new DateTimePoint(TIME, CDB.Rows[i].Field("MST"))); + MUT_items.Add(new DateTimePoint(TIME, CDB.Rows[i].Field("MUT"))); if (MainWindowViewModel.SM01 == 1) { - STTA_values = new ObservableCollection(STTA_items); - STLA_values = new ObservableCollection(STLA_items); + STTA_items.Add(new DateTimePoint(TIME, CDB.Rows[i].Field("STTA"))); + STLA_items.Add(new DateTimePoint(TIME, CDB.Rows[i].Field("STLA"))); } if (MainWindowViewModel.SM02 == 1) { - STTB_values = new ObservableCollection(STTB_items); - STLB_values = new ObservableCollection(STLB_items); + STTB_items.Add(new DateTimePoint(TIME, CDB.Rows[i].Field("STTB"))); + STLB_items.Add(new DateTimePoint(TIME, CDB.Rows[i].Field("STLB"))); } if (MainWindowViewModel.SM03 == 1) { - STTC_values = new ObservableCollection(STTC_items); - STLC_values = new ObservableCollection(STLC_items); + STTC_items.Add(new DateTimePoint(TIME, CDB.Rows[i].Field("STTC"))); + STLC_items.Add(new DateTimePoint(TIME, CDB.Rows[i].Field("STLC"))); } - Series = new ISeries[] - { + } + + MTT_values = new ObservableCollection(MTT_items); + MTL_values = new ObservableCollection(MTL_items); + MTH_values = new ObservableCollection(MTH_items); + MST_values = new ObservableCollection(MST_items); + MUT_values = new ObservableCollection(MUT_items); + if (MainWindowViewModel.SM01 == 1) + { + STTA_values = new ObservableCollection(STTA_items); + STLA_values = new ObservableCollection(STLA_items); + } + if (MainWindowViewModel.SM02 == 1) + { + STTB_values = new ObservableCollection(STTB_items); + STLB_values = new ObservableCollection(STLB_items); + } + if (MainWindowViewModel.SM03 == 1) + { + STTC_values = new ObservableCollection(STTC_items); + STLC_values = new ObservableCollection(STLC_items); + } + Series = new ISeries[] + { new LineSeries { Name = Properties.Resources.MasterCylinder +"PH", @@ -304,8 +347,7 @@ namespace DyeingComputer.ViewModel LineSmoothness = 0, ScalesYAt = 1, }, //附缸3 液位 - }; - } + }; } } }