Browse Source

修改曲线图表显示逻辑,修改历史曲线查询

master
sc 8 months ago
parent
commit
194dc40515
  1. 9
      Properties/Resources.Designer.cs
  2. 3
      Properties/Resources.en-US.resx
  3. 3
      Properties/Resources.resx
  4. 3
      Properties/Resources.zh-CN.resx
  5. 13
      Properties/Resources.zh-TW.resx
  6. 11
      View/CurveView.xaml
  7. 104
      View/CurveView.xaml.cs
  8. 2
      View/MonitorView.xaml.cs
  9. 141
      ViewModel/CurveDiagramViewModel.cs

9
Properties/Resources.Designer.cs

@ -114,6 +114,15 @@ namespace SunlightCentralizedControlManagement_SCCM_.Properties {
}
}
/// <summary>
/// 查找类似 Attached 的本地化字符串。
/// </summary>
public static string attached {
get {
return ResourceManager.GetString("attached", resourceCulture);
}
}
/// <summary>
/// 查找类似 Auto 的本地化字符串。
/// </summary>

3
Properties/Resources.en-US.resx

@ -972,4 +972,7 @@
<data name="Plan" xml:space="preserve">
<value>Plan</value>
</data>
<data name="attached" xml:space="preserve">
<value>Attached</value>
</data>
</root>

3
Properties/Resources.resx

@ -972,4 +972,7 @@
<data name="Plan" xml:space="preserve">
<value>plan</value>
</data>
<data name="attached" xml:space="preserve">
<value>Attached</value>
</data>
</root>

3
Properties/Resources.zh-CN.resx

@ -972,4 +972,7 @@
<data name="Plan" xml:space="preserve">
<value>计划</value>
</data>
<data name="attached" xml:space="preserve">
<value>附</value>
</data>
</root>

13
Properties/Resources.zh-TW.resx

@ -942,12 +942,12 @@
<data name="DoesNotExist" xml:space="preserve">
<value>頁面不存在</value>
</data>
<data name="ENWOIP" xml:space="preserve">
<value>禁止編輯非待處理工單</value>
</data>
<data name="EHCIP" xml:space="preserve">
<value>禁止編輯歷史工單</value>
</data>
<data name="ENWOIP" xml:space="preserve">
<value>禁止編輯非待處理工單</value>
</data>
<data name="log" xml:space="preserve">
<value>日誌</value>
</data>
@ -963,10 +963,13 @@
<data name="RIS" xml:space="preserve">
<value>注冊成功</value>
</data>
<data name="TRCE" xml:space="preserve">
<value>注冊無效</value>
</data>
<data name="void_" xml:space="preserve">
<value>無效</value>
</data>
<data name="TRCE" xml:space="preserve">
<value>注冊無效</value>
<data name="attached" xml:space="preserve">
<value />
</data>
</root>

11
View/CurveView.xaml

@ -153,6 +153,17 @@
</ListViewItem>
</ListView>
</StackPanel>
<StackPanel VerticalAlignment="Bottom" Height="60" Background="#FF00204E" Orientation="Horizontal" Margin="0,0,0,0" Width="400" HorizontalAlignment="Right">
<ListView ScrollViewer.HorizontalScrollBarVisibility="Disabled" Foreground="#FF1368BD">
<ListViewItem>
<StackPanel Orientation="Horizontal">
<materialDesign:PackIcon Kind="ChatProcessing" Width="40" Height="30" Margin="10" VerticalAlignment="Center" Foreground="#FF1368BD"/>
<TextBlock Text="{x:Static lang:Resources.Machine}" FontSize="20" VerticalAlignment="Center" Margin="20 10" Foreground="White" />
<TextBlock x:Name="mac" FontSize="20" VerticalAlignment="Center" Margin="20 10" Foreground="White" FontWeight="Bold" />
</StackPanel>
</ListViewItem>
</ListView>
</StackPanel>
<Grid Background="White" Margin="0,500,300,60">
<ContentControl x:Name="Picture"/>

104
View/CurveView.xaml.cs

@ -66,7 +66,7 @@ namespace SunlightCentralizedControlManagement_SCCM_.View
Sdatepicker.Text = DateTime.Now.ToString("yyyy/MM/dd");
Picture.Content = new View.CurveDiagram(true,"","","", CurveDiagram);
Picture.Content = new View.CurveDiagram(false,"","","", CurveDiagram);
}
private void WorkOrderNumder_Click(object sender, RoutedEventArgs e)
@ -78,19 +78,94 @@ namespace SunlightCentralizedControlManagement_SCCM_.View
private void ListViewItem_Before(object sender, MouseButtonEventArgs e)//前一天
{
Sdatepicker.Text = DateTime.Parse(Sdatepicker.Text).AddDays(-1).ToString("yyyy/MM/dd");
if (!string.IsNullOrEmpty(SYS_machines)) { }
if (!string.IsNullOrEmpty(SYS_machines))
{
Picture.Content = new View.CurveDiagram(false, SYS_machines, DateTime.Parse(Sdatepicker.Text).ToString("yyyy/MM/dd"),
DateTime.Parse(Sdatepicker.Text).AddDays(1).ToString("yyyy/MM/dd"), CurveDiagram);
SQLiteHelpers = new SQLiteHelper(DBAddress); //数据库连接路径
SQLiteHelpers.Open(); //打开数据库
WorkOrder = SQLiteHelpers.ExecuteDataSet("select * from WorkOrder where StartTime<='" +
DateTime.Parse(Sdatepicker.Text).AddDays(1).ToString("yyyy/MM/dd") + "' and StartTime>='" +
DateTime.Parse(Sdatepicker.Text).ToString("yyyy/MM/dd") + "'and Machines='" +
SYS_machines + "'", null).Tables[0]; //读取表写入缓存
SQLiteHelpers.Close();
GridWorkOrder.ItemsSource = WorkOrder.DefaultView;
}
else
{
SQLiteHelpers = new SQLiteHelper(DBAddress); //数据库连接路径
SQLiteHelpers.Open(); //打开数据库
WorkOrder = SQLiteHelpers.ExecuteDataSet("select * from WorkOrder where StartTime<='" +
DateTime.Parse(Sdatepicker.Text).AddDays(1).ToString("yyyy/MM/dd") + "' and StartTime>='" +
DateTime.Parse(Sdatepicker.Text).ToString("yyyy/MM/dd") + "'", null).Tables[0]; //读取表写入缓存
SQLiteHelpers.Close();
GridWorkOrder.ItemsSource = WorkOrder.DefaultView;
}
}
private void ListViewItem_Today(object sender, MouseButtonEventArgs e)//今天
{
Sdatepicker.Text = DateTime.Now.ToString("yyyy/MM/dd");
if (!string.IsNullOrEmpty(SYS_machines)) { }
if (!string.IsNullOrEmpty(SYS_machines))
{
Picture.Content = new View.CurveDiagram(false, SYS_machines, DateTime.Parse(Sdatepicker.Text).ToString("yyyy/MM/dd"),
DateTime.Parse(Sdatepicker.Text).AddDays(1).ToString("yyyy/MM/dd"), CurveDiagram);//刷新图表
SQLiteHelpers = new SQLiteHelper(DBAddress); //数据库连接路径
SQLiteHelpers.Open(); //打开数据库
WorkOrder = SQLiteHelpers.ExecuteDataSet("select * from WorkOrder where StartTime<='" +
DateTime.Parse(Sdatepicker.Text).AddDays(1).ToString("yyyy/MM/dd") + "' and StartTime>='" +
DateTime.Parse(Sdatepicker.Text).ToString("yyyy/MM/dd") + "'and Machines='" +
SYS_machines + "'", null).Tables[0]; //读取表写入缓存
SQLiteHelpers.Close();
GridWorkOrder.ItemsSource = WorkOrder.DefaultView;
}
else
{
SQLiteHelpers = new SQLiteHelper(DBAddress); //数据库连接路径
SQLiteHelpers.Open(); //打开数据库
WorkOrder = SQLiteHelpers.ExecuteDataSet("select * from WorkOrder where StartTime<='" +
DateTime.Parse(Sdatepicker.Text).AddDays(1).ToString("yyyy/MM/dd") + "' and StartTime>='" +
DateTime.Parse(Sdatepicker.Text).ToString("yyyy/MM/dd") + "'", null).Tables[0]; //读取表写入缓存
SQLiteHelpers.Close();
GridWorkOrder.ItemsSource = WorkOrder.DefaultView;
}
}
private void ListViewItem_DayAfter(object sender, MouseButtonEventArgs e)//后一天
{
Sdatepicker.Text = DateTime.Parse(Sdatepicker.Text).AddDays(1).ToString("yyyy/MM/dd");
if (!string.IsNullOrEmpty(SYS_machines)) { }
if (!string.IsNullOrEmpty(SYS_machines))
{
Picture.Content = new View.CurveDiagram(false, SYS_machines, DateTime.Parse(Sdatepicker.Text).ToString("yyyy/MM/dd"),
DateTime.Parse(Sdatepicker.Text).AddDays(1).ToString("yyyy/MM/dd"), CurveDiagram);
SQLiteHelpers = new SQLiteHelper(DBAddress); //数据库连接路径
SQLiteHelpers.Open(); //打开数据库
WorkOrder = SQLiteHelpers.ExecuteDataSet("select * from WorkOrder where StartTime<='" +
DateTime.Parse(Sdatepicker.Text).AddDays(1).ToString("yyyy/MM/dd") + "' and StartTime>='" +
DateTime.Parse(Sdatepicker.Text).ToString("yyyy/MM/dd") + "'and Machines='" +
SYS_machines + "'", null).Tables[0]; //读取表写入缓存
SQLiteHelpers.Close();
GridWorkOrder.ItemsSource = WorkOrder.DefaultView;
}
else
{
SQLiteHelpers = new SQLiteHelper(DBAddress); //数据库连接路径
SQLiteHelpers.Open(); //打开数据库
WorkOrder = SQLiteHelpers.ExecuteDataSet("select * from WorkOrder where StartTime<='" +
DateTime.Parse(Sdatepicker.Text).AddDays(1).ToString("yyyy/MM/dd") + "' and StartTime>='" +
DateTime.Parse(Sdatepicker.Text).ToString("yyyy/MM/dd") + "'", null).Tables[0]; //读取表写入缓存
SQLiteHelpers.Close();
GridWorkOrder.ItemsSource = WorkOrder.DefaultView;
}
}
private void Griddata_MouseDoubleClick(object sender, MouseButtonEventArgs e)//选择机台
@ -99,6 +174,19 @@ namespace SunlightCentralizedControlManagement_SCCM_.View
if (rownum != -1)//判断鼠标定位是否有效
{
SYS_machines = (Griddata.Columns[1].GetCellContent(Griddata.Items[rownum]) as TextBlock).Text;//定位第1列,
mac.Text = SYS_machines;
SQLiteHelpers = new SQLiteHelper(DBAddress); //数据库连接路径
SQLiteHelpers.Open(); //打开数据库
WorkOrder = SQLiteHelpers.ExecuteDataSet("select * from WorkOrder where StartTime<='" +
DateTime.Parse(Sdatepicker.Text).AddDays(1).ToString("yyyy/MM/dd") + "' and StartTime>='" +
DateTime.Parse(Sdatepicker.Text).ToString("yyyy/MM/dd") + "'and Machines='" +
SYS_machines + "'", null).Tables[0]; //读取表写入缓存
SQLiteHelpers.Close();
GridWorkOrder.ItemsSource = WorkOrder.DefaultView;
Picture.Content = new View.CurveDiagram(false, SYS_machines, DateTime.Parse(Sdatepicker.Text).ToString("yyyy/MM/dd"),
DateTime.Parse(Sdatepicker.Text).AddDays(1).ToString("yyyy/MM/dd"), CurveDiagram);
}
}
@ -106,9 +194,11 @@ namespace SunlightCentralizedControlManagement_SCCM_.View
{
int rownum = Griddata.SelectedIndex;//获取鼠标选中行并定义变量
if (rownum != -1)//判断鼠标定位是否有效
{
SYS_machines = (Griddata.Columns[1].GetCellContent(Griddata.Items[rownum]) as TextBlock).Text;//定位第1列,
}
{
string Cd = (Griddata.Columns[1].GetCellContent(Griddata.Items[rownum]) as TextBlock).Text;//定位第1列,
Select_WorkOrderNumder.Text = Cd;
Picture.Content = new View.CurveDiagram(true, "", "", "", Cd);
}
}
private void Sdatepicker_SelectedDateChanged(object sender, SelectionChangedEventArgs e)//

2
View/MonitorView.xaml.cs

@ -288,7 +288,7 @@ namespace SunlightCentralizedControlManagement_SCCM_.View
{
DispatcherTimer timer1s = new DispatcherTimer//初始化循环,每1秒调用一次Tick
{
Interval = TimeSpan.FromSeconds(1.5)//秒
Interval = TimeSpan.FromSeconds(2)//秒
};
timer1s.Tick += Tick_Event_1S;
timer1s.Start();

141
ViewModel/CurveDiagramViewModel.cs

@ -129,78 +129,75 @@ namespace SunlightCentralizedControlManagement_SCCM_.ViewModel
public CurveDiagramViewModel()
{
Curve(CurveDiagram.Curve);
Curve(CurveDiagram.mode, CurveDiagram.mac, CurveDiagram.starT, CurveDiagram.endT, CurveDiagram.Curve);
}
public static void Curve(string SYSWorkNumder)
public static void Curve(bool mode, string m, string s, string e, string w)
{
if (!string.IsNullOrEmpty(SYSWorkNumder))
if (mode)
{
if (string.IsNullOrEmpty(w)) return;
SQLiteHelpers = new SQLiteHelper(ChartAdress); //数据库连接路径
SQLiteHelpers.Open(); //打开数据库
CDB = SQLiteHelpers.ExecuteDataSet("select * from Chart where WorkOrder = '" + SYSWorkNumder + "'order by Time", null).Tables[0];
CDB = SQLiteHelpers.ExecuteDataSet("select * from Chart where WorkOrder = '" + w + "'order by Time", null).Tables[0];
SQLiteHelpers.Close();
CDB_Count = CDB.Rows.Count;
var MTT_items = new List<DateTimePoint>();
var MTL_items = new List<DateTimePoint>();
var MTH_items = new List<DateTimePoint>();
var MST_items = new List<DateTimePoint>();
var MUT_items = new List<DateTimePoint>();
var STTA_items = new List<DateTimePoint>();
var STLA_items = new List<DateTimePoint>();
var STTB_items = new List<DateTimePoint>();
var STLB_items = new List<DateTimePoint>();
var STTC_items = new List<DateTimePoint>();
var STLC_items = new List<DateTimePoint>();
for (var i = 0; i < CDB_Count; i++)
{
DateTime TIME = Convert.ToDateTime(CDB.Rows[i].Field<string>("Time"));
MTT_items.Add(new DateTimePoint(TIME, CDB.Rows[i].Field<double>("MTT")));
MTL_items.Add(new DateTimePoint(TIME, CDB.Rows[i].Field<double>("MTL")));
MTH_items.Add(new DateTimePoint(TIME, CDB.Rows[i].Field<double>("MTH")));
MST_items.Add(new DateTimePoint(TIME, CDB.Rows[i].Field<double>("MST")));
MUT_items.Add(new DateTimePoint(TIME, CDB.Rows[i].Field<double>("MUT")));
if (MainWindowViewModel.SYS_AT1 == 1)
{
STTA_items.Add(new DateTimePoint(TIME, CDB.Rows[i].Field<double>("STTA")));
STLA_items.Add(new DateTimePoint(TIME, CDB.Rows[i].Field<double>("STLA")));
}
if (MainWindowViewModel.SYS_AT2 == 1)
{
STTB_items.Add(new DateTimePoint(TIME, CDB.Rows[i].Field<double>("STTB")));
STLB_items.Add(new DateTimePoint(TIME, CDB.Rows[i].Field<double>("STLB")));
}
if (MainWindowViewModel.SYS_AT3 == 1)
{
STTC_items.Add(new DateTimePoint(TIME, CDB.Rows[i].Field<double>("STTC")));
STLC_items.Add(new DateTimePoint(TIME, CDB.Rows[i].Field<double>("STLC")));
}
}
}
else
{
if (string.IsNullOrEmpty(m)) return;
if (string.IsNullOrEmpty(s)) return;
if (string.IsNullOrEmpty(e)) return;
SQLiteHelpers = new SQLiteHelper(ChartAdress); //数据库连接路径
SQLiteHelpers.Open(); //打开数据库
CDB = SQLiteHelpers.ExecuteDataSet("select * from Chart where Machine = '" + m + "'" +
" and Time > '" + s + "' and Time < '" + e + "' order by Time", null).Tables[0];
SQLiteHelpers.Close();
}
MTT_values = new ObservableCollection<DateTimePoint>(MTT_items);
MTL_values = new ObservableCollection<DateTimePoint>(MTL_items);
MTH_values = new ObservableCollection<DateTimePoint>(MTH_items);
MST_values = new ObservableCollection<DateTimePoint>(MST_items);
MUT_values = new ObservableCollection<DateTimePoint>(MUT_items);
if (MainWindowViewModel.SYS_AT1 == 1)
{
STTA_values = new ObservableCollection<DateTimePoint>(STTA_items);
STLA_values = new ObservableCollection<DateTimePoint>(STLA_items);
}
if (MainWindowViewModel.SYS_AT2 == 1)
{
STTB_values = new ObservableCollection<DateTimePoint>(STTB_items);
STLB_values = new ObservableCollection<DateTimePoint>(STLB_items);
}
if (MainWindowViewModel.SYS_AT3 == 1)
{
STTC_values = new ObservableCollection<DateTimePoint>(STTC_items);
STLC_values = new ObservableCollection<DateTimePoint>(STLC_items);
}
CDB_Count = CDB.Rows.Count;
var MTT_items = new List<DateTimePoint>();
var MTL_items = new List<DateTimePoint>();
var MTH_items = new List<DateTimePoint>();
var MST_items = new List<DateTimePoint>();
var MUT_items = new List<DateTimePoint>();
var STTA_items = new List<DateTimePoint>();
var STLA_items = new List<DateTimePoint>();
var STTB_items = new List<DateTimePoint>();
var STLB_items = new List<DateTimePoint>();
var STTC_items = new List<DateTimePoint>();
var STLC_items = new List<DateTimePoint>();
for (var i = 0; i < CDB_Count; i++)
{
DateTime TIME = Convert.ToDateTime(CDB.Rows[i].Field<string>("Time"));
MTT_items.Add(new DateTimePoint(TIME, CDB.Rows[i].Field<double>("MTT")));
MTL_items.Add(new DateTimePoint(TIME, CDB.Rows[i].Field<double>("MTL")));
MTH_items.Add(new DateTimePoint(TIME, CDB.Rows[i].Field<double>("MTH")));
MST_items.Add(new DateTimePoint(TIME, CDB.Rows[i].Field<double>("MST")));
MUT_items.Add(new DateTimePoint(TIME, CDB.Rows[i].Field<double>("MUT")));
STTA_items.Add(new DateTimePoint(TIME, CDB.Rows[i].Field<double>("STTA")));
STLA_items.Add(new DateTimePoint(TIME, CDB.Rows[i].Field<double>("STLA")));
STTB_items.Add(new DateTimePoint(TIME, CDB.Rows[i].Field<double>("STTB")));
STLB_items.Add(new DateTimePoint(TIME, CDB.Rows[i].Field<double>("STLB")));
STTC_items.Add(new DateTimePoint(TIME, CDB.Rows[i].Field<double>("STTC")));
STLC_items.Add(new DateTimePoint(TIME, CDB.Rows[i].Field<double>("STLC")));
}
Series = new ISeries[]
{
MTT_values = new ObservableCollection<DateTimePoint>(MTT_items);
MTL_values = new ObservableCollection<DateTimePoint>(MTL_items);
MTH_values = new ObservableCollection<DateTimePoint>(MTH_items);
MST_values = new ObservableCollection<DateTimePoint>(MST_items);
MUT_values = new ObservableCollection<DateTimePoint>(MUT_items);
STTA_values = new ObservableCollection<DateTimePoint>(STTA_items);
STLA_values = new ObservableCollection<DateTimePoint>(STLA_items);
STTB_values = new ObservableCollection<DateTimePoint>(STTB_items);
STLB_values = new ObservableCollection<DateTimePoint>(STLB_items);
STTC_values = new ObservableCollection<DateTimePoint>(STTC_items);
STLC_values = new ObservableCollection<DateTimePoint>(STLC_items);
Series = new ISeries[]
{
new LineSeries<DateTimePoint>
{
Name = Properties.Resources.MasterCylinder +"PH",
@ -247,7 +244,7 @@ namespace SunlightCentralizedControlManagement_SCCM_.ViewModel
}, //缸底
new LineSeries<DateTimePoint>
{
Name = Properties.Resources.Temperature +"3("+Resources.Medicine + Resources.Tank +"1)",
Name = Properties.Resources.Temperature +"3("+Resources.attached + Resources.Tank +"1)",
Values = STTA_values,
Stroke = new SolidColorPaint(s_blue_1, 2),
GeometrySize = 0,
@ -258,7 +255,7 @@ namespace SunlightCentralizedControlManagement_SCCM_.ViewModel
}, //附缸1
new LineSeries<DateTimePoint>
{
Name = Properties.Resources.Temperature +"4("+Resources.Medicine + Resources.Tank +"2)",
Name = Properties.Resources.Temperature +"4("+Resources.attached + Resources.Tank +"2)",
Values = STTB_values,
Stroke = new SolidColorPaint(s_blue_2, 2),
GeometrySize = 0,
@ -269,7 +266,7 @@ namespace SunlightCentralizedControlManagement_SCCM_.ViewModel
}, //附缸2
new LineSeries<DateTimePoint>
{
Name = Properties.Resources.Temperature +"5("+Resources.Medicine + Resources.Tank +"3)",
Name = Properties.Resources.Temperature +"5("+Resources.attached + Resources.Tank +"3)",
Values = STTC_values,
Stroke = new SolidColorPaint(s_blue_3, 2),
GeometrySize = 0,
@ -291,7 +288,7 @@ namespace SunlightCentralizedControlManagement_SCCM_.ViewModel
}, //主缸液位
new LineSeries<DateTimePoint>
{
Name = Properties.Resources.WaterLevel +"("+Resources.Medicine + Resources.Tank +"1)",
Name = Properties.Resources.WaterLevel +"("+Resources.attached + Resources.Tank +"1)",
Values = STLA_values,
Stroke = new SolidColorPaint(s_red_1, 2),
GeometrySize = 0,
@ -302,7 +299,7 @@ namespace SunlightCentralizedControlManagement_SCCM_.ViewModel
}, //附缸1液位
new LineSeries<DateTimePoint>
{
Name = Properties.Resources.WaterLevel +"("+Resources.Medicine + Resources.Tank +"2)",
Name = Properties.Resources.WaterLevel +"("+Resources.attached + Resources.Tank +"2)",
Values = STLB_values,
Stroke = new SolidColorPaint(s_red_2, 2),
GeometrySize = 0,
@ -313,7 +310,7 @@ namespace SunlightCentralizedControlManagement_SCCM_.ViewModel
}, //附缸2液位
new LineSeries<DateTimePoint>
{
Name = Properties.Resources.WaterLevel +"("+Resources.Medicine + Resources.Tank +"3)",
Name = Properties.Resources.WaterLevel +"("+Resources.attached + Resources.Tank +"3)",
Values = STLC_values,
Stroke = new SolidColorPaint(s_red_3, 2),
GeometrySize = 0,
@ -322,9 +319,9 @@ namespace SunlightCentralizedControlManagement_SCCM_.ViewModel
LineSmoothness = 0,
ScalesYAt = 1,
}, //附缸3 液位
};
}
};
}
}
}

Loading…
Cancel
Save