public static void Parse_All_Data_Grid(SQL_Connect_Builder builder) { DataTable dt = builder.Select_Table("AllDataGrid"); foreach (DataRow dr in dt.Rows) { string name = dr[0].ToString(); string table_type = dr[1].ToString(); if (table_type == "OrderTable") { // 这个地方数量不对 CreateSqlValueType[] create_sql_value_type = new CreateSqlValueType[1 + (dr.ItemArray.Length - 2) / 2]; create_sql_value_type[0] = new CreateSqlValueType("integer", "MyOrder", true); for (int i = 0; i < (dr.ItemArray.Length - 12) / 2; i++) { if (dr[12 + i * 2].ToString() == "" || dr[12 + i * 2 + 1].ToString() == "") { break; } create_sql_value_type[1 + i] = new CreateSqlValueType(dr[12 + i * 2 + 1].ToString(), dr[12 + i * 2].ToString()); } builder.Create_Table(name, create_sql_value_type); } } }
// 读取所有的副窗体 public static void Read_All_SubWindow(SQL_Connect_Builder sql_builder, ArrayList window_arraylist, Running_Data data) { string where_cmd = "WindowName <> 'MainWindow'"; DataTable dt = sql_builder.Select_Table("ALLWindow", where_cmd); if (dt != null) { if (dt.Rows.Count > 0) { foreach (DataRow dr in dt.Rows) { SubWindow subwindow = new SubWindow(data); subwindow.Name = dr[0].ToString(); Parse_SubWindow(subwindow, sql_builder, subwindow.MainGrid, data); window_arraylist.Add(subwindow); } } } }
public static void Parse_All_Table_Struct(SQL_Connect_Builder builder) { DataTable dt = builder.Select_Table("TableStruct"); if (dt != null) { if (dt.Rows.Count > 0) { int colcount = dt.Columns.Count; foreach (DataRow dr in dt.Rows) { int value_count = 0; for (int i = 0; i < colcount; i++) { if (dr[i].ToString() != "") { value_count++; } else { break; } } int table_col_count = (value_count - 1) / 2; CreateSqlValueType[] createsqlvaluetype = new CreateSqlValueType[table_col_count]; for (int j = 0; j < table_col_count; j++) { if (j == 0) { createsqlvaluetype[j] = new CreateSqlValueType(dr[2 + j * 2].ToString(), dr[1 + j * 2].ToString(), true); } else { createsqlvaluetype[j] = new CreateSqlValueType(dr[2 + j * 2].ToString(), dr[1 + j * 2].ToString()); } } builder.Create_Table(dr[0].ToString(), createsqlvaluetype); } } } }
bool Vertical_Pressed = false; // 竖起的滑块按下 public MyChart(DataRow dr, SQL_Connect_Builder builder) { InitializeComponent(); timer1.Interval = 1000; timer1.Elapsed += new System.Timers.ElapsedEventHandler(Draw); timer1.Enabled = true; // mytreeview.SelectedItemChanged += new RoutedPropertyChangedEventHandler<object>(Jump_Window_Event); // 注册滑动块的路由事件 this.drawgrid.AddHandler(Slider.MouseLeftButtonDownEvent, new RoutedEventHandler(this.slider_MouseLeftButtonDown)); this.drawgrid.AddHandler(Slider.MouseMoveEvent, new RoutedEventHandler(this.slider_MouseMove)); this.drawgrid.AddHandler(Slider.MouseLeftButtonUpEvent, new RoutedEventHandler(this.slider_MouseLeftButtonUp)); //slider.Value = 5; try { if (dr == null || builder == null) { return; } // 变量传输 mydr = dr; mybuilder = builder; this.Name = dr[0].ToString(); this.Width = double.Parse(dr[3].ToString()); this.Height = double.Parse(dr[4].ToString()); // 横对齐解析 switch (dr[5].ToString()) { case "Left": HorizontalAlignment = HorizontalAlignment.Left; break; case "Right": HorizontalAlignment = HorizontalAlignment.Right; break; case "Center": HorizontalAlignment = HorizontalAlignment.Center; break; case "Stretch": HorizontalAlignment = HorizontalAlignment.Stretch; break; default: HorizontalAlignment = HorizontalAlignment.Center; break; } // 纵对齐解析 switch (dr[6].ToString()) { case "Top": VerticalAlignment = VerticalAlignment.Top; break; case "Bottom": VerticalAlignment = VerticalAlignment.Bottom; break; case "Center": VerticalAlignment = VerticalAlignment.Center; break; case "Stretch": VerticalAlignment = VerticalAlignment.Stretch; break; default: VerticalAlignment = VerticalAlignment.Center; break; } double MarginLeft = double.Parse(dr[7].ToString()); double MarginRight = double.Parse(dr[8].ToString()); double MarginTop = double.Parse(dr[9].ToString()); double MarginBottom = double.Parse(dr[10].ToString()); this.Margin = new Thickness(MarginLeft, MarginTop, MarginRight, MarginBottom); // 通过 minvalue maxvalue 与 interval来决定纵坐标的数量与布局 // 如果没有布局相关就直接退出下面的设置 if (dr[11].ToString() == "" || dr[12].ToString() == "" || dr[13].ToString() == "") { return; } try { minvalue = double.Parse(dr[11].ToString()); maxvalue = double.Parse(dr[12].ToString()); interval = double.Parse(dr[13].ToString()); if (interval == 0) { return; // 除数是0 不成立 } label_count = (int)((maxvalue - minvalue) / interval + 1); for (int i = 0; i < label_count; i++) { Label newlabel = new Label(); newlabel.Content = minvalue + interval * i; newlabel.Margin = new Thickness(100, subgrid.Margin.Top + subgrid.Height - (subgrid.Height / (label_count - 1)) * i - fixvalue, 0, 0); drawgrid.Children.Add(newlabel); } } catch { return; } // 解析线的情况 // 线01 if (dr[17].ToString() != "" && dr[18].ToString() != "") { myline_Struct line = new myline_Struct(dr[17].ToString(), dr[18].ToString()); allline.Add(line); } // 线02 if (dr[19].ToString() != "" && dr[20].ToString() != "") { myline_Struct line = new myline_Struct(dr[19].ToString(), dr[20].ToString()); allline.Add(line); } // 线03 if (dr[21].ToString() != "" && dr[22].ToString() != "") { myline_Struct line = new myline_Struct(dr[21].ToString(), dr[22].ToString()); allline.Add(line); } // 线04 if (dr[23].ToString() != "" && dr[24].ToString() != "") { myline_Struct line = new myline_Struct(dr[23].ToString(), dr[24].ToString()); allline.Add(line); } // 线05 if (dr[25].ToString() != "" && dr[26].ToString() != "") { myline_Struct line = new myline_Struct(dr[25].ToString(), dr[26].ToString()); allline.Add(line); } // 线06 if (dr[27].ToString() != "" && dr[28].ToString() != "") { myline_Struct line = new myline_Struct(dr[27].ToString(), dr[28].ToString()); allline.Add(line); } // 线07 if (dr[29].ToString() != "" && dr[30].ToString() != "") { myline_Struct line = new myline_Struct(dr[29].ToString(), dr[30].ToString()); allline.Add(line); } // 线08 if (dr[31].ToString() != "" && dr[32].ToString() != "") { myline_Struct line = new myline_Struct(dr[31].ToString(), dr[32].ToString()); allline.Add(line); } // 线09 if (dr[33].ToString() != "" && dr[34].ToString() != "") { myline_Struct line = new myline_Struct(dr[33].ToString(), dr[34].ToString()); allline.Add(line); } // 线10 if (dr[35].ToString() != "" && dr[36].ToString() != "") { myline_Struct line = new myline_Struct(dr[35].ToString(), dr[36].ToString()); allline.Add(line); } // 通过TimeSpan Timeinterval 和 StartTime来决定横坐标的数量与布局 if (dr[14].ToString() == "" || dr[15].ToString() == "") { return; } try { timespan = double.Parse(dr[14].ToString()); timeinterval = double.Parse(dr[15].ToString()); if (dr[16].ToString() == "") { starttime = DateTime.Now; string where_cmd = "ChartName='" + dr[0].ToString() + "'"; string[] update_cmd = new string[1]; update_cmd[0] = "StartTime='" + starttime.ToString("yyyy-MM-dd HH:mm:ss") + "'"; builder.Updata("ALLMyChart", where_cmd, update_cmd); } else { starttime = DateTime.Parse(dr[16].ToString()); } timelabelcount = (int)(timespan / timeinterval + 1); for (int i = 0; i < timelabelcount; i++) { Label newlabel = new Label(); newlabel.Content = (starttime + TimeSpan.FromMinutes(timeinterval * i)).ToString("yyyy/MM/dd \n HH:mm:ss"); newlabel.Margin = new Thickness(subgrid.Margin.Left + (subgrid.Width / (timelabelcount - 1)) * i - fixvalue_y, 250, 0, 0); drawgrid.Children.Add(newlabel); } } catch { return; } } catch { } }
// 解析主窗体 public static void ParseWindow(Window mywindow, SQL_Connect_Builder sql_builder, Grid MainGrid) { // 解析所有的Grid #region string where_cmd = "ParentWindow='" + mywindow.Name + "'"; DataTable allgriddt = sql_builder.Select_Table("ALLGrid", where_cmd); if (allgriddt != null) { if (allgriddt.Rows.Count > 0) { foreach (DataRow dr in allgriddt.Rows) { Grid grid = new Grid(); // 水平对齐 if (dr[3].ToString() == "Left") { grid.HorizontalAlignment = HorizontalAlignment.Left; } if (dr[3].ToString() == "Center") { grid.HorizontalAlignment = HorizontalAlignment.Center; } if (dr[3].ToString() == "Right") { grid.HorizontalAlignment = HorizontalAlignment.Right; } if (dr[3].ToString() == "Stretch") { grid.HorizontalAlignment = HorizontalAlignment.Stretch; } // 垂直对齐 if (dr[4].ToString() == "Bottom") { grid.VerticalAlignment = VerticalAlignment.Bottom; } if (dr[4].ToString() == "Center") { grid.VerticalAlignment = VerticalAlignment.Center; } if (dr[4].ToString() == "Stretch") { grid.VerticalAlignment = VerticalAlignment.Stretch; } if (dr[4].ToString() == "Top") { grid.VerticalAlignment = VerticalAlignment.Top; } int marginLeft = int.Parse(dr[5].ToString()); int marginRight = int.Parse(dr[6].ToString()); int marginTop = int.Parse(dr[7].ToString()); int marginBottom = int.Parse(dr[8].ToString()); grid.Margin = new Thickness(marginLeft, marginTop, marginRight, marginBottom); grid.Background = new SolidColorBrush((Color)ColorConverter.ConvertFromString(dr[9].ToString())); grid.Name = dr[0].ToString(); if (dr[10].ToString() != "") { grid.Width = double.Parse(dr[10].ToString()); } if (dr[11].ToString() != "") { grid.Height = double.Parse(dr[11].ToString()); } if (dr[2].ToString() == "MainGrid") { // 在主页面下 MainGrid.Children.Add(grid); } else { // 不在主页面下 string GridName = dr[2].ToString(); foreach (UIElement element in MainGrid.Children) { try { Grid mygrid = (Grid)element; if (mygrid.Name == dr[2].ToString()) { mygrid.Children.Add(grid); } } catch { } } } } } } #endregion // 解析所有的MyTreeView #region where_cmd = "ParentWindow='" + mywindow.Name + "'"; DataTable allMyTreeView = sql_builder.Select_Table("ALLMyTreeView", where_cmd); if (allMyTreeView != null) { if (allMyTreeView.Rows.Count > 0) { foreach (DataRow dr in allMyTreeView.Rows) { DataTable TreeViewItemsdt = sql_builder.Select_Table(dr[0].ToString()); MyTreeView treeview = new MyTreeView(TreeViewItemsdt); treeview.Name = dr[0].ToString(); if (dr[3].ToString() == "Left") { treeview.HorizontalAlignment = HorizontalAlignment.Left; } if (dr[3].ToString() == "Center") { treeview.HorizontalAlignment = HorizontalAlignment.Center; } if (dr[3].ToString() == "Right") { treeview.HorizontalAlignment = HorizontalAlignment.Right; } if (dr[3].ToString() == "Stretch") { treeview.HorizontalAlignment = HorizontalAlignment.Stretch; } // 垂直对齐 if (dr[4].ToString() == "Bottom") { treeview.VerticalAlignment = VerticalAlignment.Bottom; } if (dr[4].ToString() == "Center") { treeview.VerticalAlignment = VerticalAlignment.Center; } if (dr[4].ToString() == "Stretch") { treeview.VerticalAlignment = VerticalAlignment.Stretch; } if (dr[4].ToString() == "Top") { treeview.VerticalAlignment = VerticalAlignment.Top; } int marginLeft = int.Parse(dr[5].ToString()); int marginRight = int.Parse(dr[6].ToString()); int marginTop = int.Parse(dr[7].ToString()); int marginBottom = int.Parse(dr[8].ToString()); treeview.Margin = new Thickness(marginLeft, marginTop, marginRight, marginBottom); treeview.Background = new SolidColorBrush((Color)ColorConverter.ConvertFromString(dr[9].ToString())); treeview.Name = dr[0].ToString(); if (dr[10].ToString() != "") { treeview.Width = double.Parse(dr[10].ToString()); } if (dr[11].ToString() != "") { treeview.Height = double.Parse(dr[11].ToString()); } if (dr[2].ToString() == "MainGrid") { // 在主页面下 MainGrid.Children.Add(treeview); } else { // 不在主页面下 string GridName = dr[2].ToString(); foreach (UIElement element in MainGrid.Children) { try { Grid mygrid = (Grid)element; if (mygrid.Name == dr[2].ToString()) { mygrid.Children.Add(treeview); break; } } catch { } } } } } } #endregion }
//解析副窗体 public static void Parse_SubWindow(UserControl subwindow, SQL_Connect_Builder sql_builder, Grid MainGrid, Running_Data data) { // 解析所有的Grid #region string where_cmd = "ParentWindow='" + subwindow.Name + "'"; DataTable allgriddt = sql_builder.Select_Table("ALLGrid", where_cmd); if (allgriddt != null) { if (allgriddt.Rows.Count > 0) { foreach (DataRow dr in allgriddt.Rows) { Grid grid = new Grid(); // 水平对齐 if (dr[3].ToString() == "Left") { grid.HorizontalAlignment = HorizontalAlignment.Left; } if (dr[3].ToString() == "Center") { grid.HorizontalAlignment = HorizontalAlignment.Center; } if (dr[3].ToString() == "Right") { grid.HorizontalAlignment = HorizontalAlignment.Right; } if (dr[3].ToString() == "Stretch") { grid.HorizontalAlignment = HorizontalAlignment.Stretch; } // 垂直对齐 if (dr[4].ToString() == "Bottom") { grid.VerticalAlignment = VerticalAlignment.Bottom; } if (dr[4].ToString() == "Center") { grid.VerticalAlignment = VerticalAlignment.Center; } if (dr[4].ToString() == "Stretch") { grid.VerticalAlignment = VerticalAlignment.Stretch; } if (dr[4].ToString() == "Top") { grid.VerticalAlignment = VerticalAlignment.Top; } int marginLeft = int.Parse(dr[5].ToString()); int marginRight = int.Parse(dr[6].ToString()); int marginTop = int.Parse(dr[7].ToString()); int marginBottom = int.Parse(dr[8].ToString()); grid.Margin = new Thickness(marginLeft, marginTop, marginRight, marginBottom); grid.Background = new SolidColorBrush((Color)ColorConverter.ConvertFromString(dr[9].ToString())); grid.Name = dr[0].ToString(); if (dr[10].ToString() != "") { grid.Width = double.Parse(dr[10].ToString()); } if (dr[11].ToString() != "") { grid.Height = double.Parse(dr[11].ToString()); } if (dr[2].ToString() == "MainGrid") { // 在主页面下 MainGrid.Children.Add(grid); } else { // 不在主页面下 string GridName = dr[2].ToString(); foreach (UIElement element in MainGrid.Children) { try { Grid mygrid = (Grid)element; if (mygrid.Name == dr[2].ToString()) { mygrid.Children.Add(grid); } } catch { } } } } } } #endregion // 解析所有的MyTreeView #region where_cmd = "ParentWindow='" + subwindow.Name + "'"; DataTable allMyTreeView = sql_builder.Select_Table("ALLMyTreeView", where_cmd); if (allMyTreeView != null) { if (allMyTreeView.Rows.Count > 0) { foreach (DataRow dr in allMyTreeView.Rows) { DataTable TreeViewItemsdt = sql_builder.Select_Table(dr[0].ToString()); MyTreeView treeview = new MyTreeView(TreeViewItemsdt); treeview.Name = dr[0].ToString(); if (dr[3].ToString() == "Left") { treeview.HorizontalAlignment = HorizontalAlignment.Left; } if (dr[3].ToString() == "Center") { treeview.HorizontalAlignment = HorizontalAlignment.Center; } if (dr[3].ToString() == "Right") { treeview.HorizontalAlignment = HorizontalAlignment.Right; } if (dr[3].ToString() == "Stretch") { treeview.HorizontalAlignment = HorizontalAlignment.Stretch; } // 垂直对齐 if (dr[4].ToString() == "Bottom") { treeview.VerticalAlignment = VerticalAlignment.Bottom; } if (dr[4].ToString() == "Center") { treeview.VerticalAlignment = VerticalAlignment.Center; } if (dr[4].ToString() == "Stretch") { treeview.VerticalAlignment = VerticalAlignment.Stretch; } if (dr[4].ToString() == "Top") { treeview.VerticalAlignment = VerticalAlignment.Top; } int marginLeft = int.Parse(dr[5].ToString()); int marginRight = int.Parse(dr[6].ToString()); int marginTop = int.Parse(dr[7].ToString()); int marginBottom = int.Parse(dr[8].ToString()); treeview.Margin = new Thickness(marginLeft, marginTop, marginRight, marginBottom); treeview.Background = new SolidColorBrush((Color)ColorConverter.ConvertFromString(dr[9].ToString())); treeview.Name = dr[0].ToString(); if (dr[10].ToString() != "") { treeview.Width = double.Parse(dr[10].ToString()); } if (dr[11].ToString() != "") { treeview.Height = double.Parse(dr[11].ToString()); } if (dr[2].ToString() == "MainGrid") { // 在主页面下 MainGrid.Children.Add(treeview); } else { // 不在主页面下 string GridName = dr[2].ToString(); foreach (UIElement element in MainGrid.Children) { try { Grid mygrid = (Grid)element; if (mygrid.Name == dr[2].ToString()) { mygrid.Children.Add(treeview); break; } } catch { } } } } } } #endregion // 解析所有的MyLabel #region DataTable AllMyLabeldt = sql_builder.Select_Table("AllMyLabel", where_cmd); if (AllMyLabeldt != null) { if (AllMyLabeldt.Rows.Count > 0) { foreach (DataRow dr in AllMyLabeldt.Rows) { MyLabel mylabel = new MyLabel(dr, sql_builder, data); if (dr[2].ToString() == "MainGrid") { // 在主页面下 MainGrid.Children.Add(mylabel); } else { // 不在主页面下 string GridName = dr[2].ToString(); foreach (UIElement element in MainGrid.Children) { try { Grid mygrid = (Grid)element; if (mygrid.Name == dr[2].ToString()) { mygrid.Children.Add(mylabel); } } catch { } } } } } } #endregion // 解析所有的MyChart #region DataTable AllMyChart = sql_builder.Select_Table("ALLMyChart", where_cmd); if (AllMyChart != null) { if (AllMyChart.Rows.Count > 0) { foreach (DataRow dr in AllMyChart.Rows) { MyChart mychart = new MyChart(dr, sql_builder); if (dr[2].ToString() == "MainGrid") { // 在主页面下 MainGrid.Children.Add(mychart); } else { // 不在主页面下 string GridName = dr[2].ToString(); foreach (UIElement element in MainGrid.Children) { try { Grid mygrid = (Grid)element; if (mygrid.Name == dr[2].ToString()) { mygrid.Children.Add(mychart); } } catch { } } } } } } #endregion // 解析所有的MyDataGridView // 表格分种类 #region DataTable AllDataGridView = sql_builder.Select_Table("AllDataGrid", where_cmd); if (AllDataGridView != null) { if (AllDataGridView.Rows.Count > 0) { foreach (DataRow dr in AllDataGridView.Rows) { // 顺序表 if (dr[1].ToString() == "OrderTable") { // 读取表格 DataTable gongyibiao = sql_builder.Select_Table(dr[0].ToString()); if (gongyibiao == null) { return; } MyOrderDataGridView datagridview = new MyOrderDataGridView(gongyibiao, dr); if (dr[3].ToString() == "MainGrid") { // 在主页面下 MainGrid.Children.Add(datagridview); } else { // 不在主页面下 string GridName = dr[3].ToString(); foreach (UIElement element in MainGrid.Children) { try { Grid mygrid = (Grid)element; if (mygrid.Name == dr[2].ToString()) { mygrid.Children.Add(datagridview); } } catch { } } } } } } } #endregion }
public MyLabel(DataRow dr, SQL_Connect_Builder builder, Running_Data data) { InitializeComponent(); mydata = data; mydata.value_Change_Event += new EventHandler(Gengxin_Tick); // mydata的变化与mylabel的变化进行对接 sqlbuilder = builder; ValueTable = builder.Select_Table("Value_Table"); // 数据字典表 ValueTable.Columns[0].ColumnName = "Value_Name"; this.Name = dr[0].ToString(); ParentWindow = dr[1].ToString(); ParentGrid = dr[2].ToString(); try { Width = double.Parse(dr[3].ToString()); } catch { Width = double.NaN; } try { Height = double.Parse(dr[4].ToString()); } catch { Height = double.NaN; } try { this.Background = new SolidColorBrush((Color)ColorConverter.ConvertFromString(dr[15].ToString())); } catch { } // 横对齐解析 switch (dr[5].ToString()) { case "Left": HorizontalAlignment = HorizontalAlignment.Left; break; case "Right": HorizontalAlignment = HorizontalAlignment.Right; break; case "Center": HorizontalAlignment = HorizontalAlignment.Center; break; case "Stretch": HorizontalAlignment = HorizontalAlignment.Stretch; break; default: HorizontalAlignment = HorizontalAlignment.Center; break; } // 纵对齐解析 switch (dr[6].ToString()) { case "Top": VerticalAlignment = VerticalAlignment.Top; break; case "Bottom": VerticalAlignment = VerticalAlignment.Bottom; break; case "Center": VerticalAlignment = VerticalAlignment.Center; break; case "Stretch": VerticalAlignment = VerticalAlignment.Stretch; break; default: VerticalAlignment = VerticalAlignment.Center; break; } MarginLeft = double.Parse(dr[7].ToString()); MarginRight = double.Parse(dr[8].ToString()); MarginTop = double.Parse(dr[9].ToString()); MarginBottom = double.Parse(dr[10].ToString()); this.Margin = new Thickness(MarginLeft, MarginTop, MarginRight, MarginBottom); switch (dr[11].ToString()) { case "Left": Label.HorizontalContentAlignment = HorizontalAlignment.Left; break; case "Right": Label.HorizontalContentAlignment = HorizontalAlignment.Right; break; case "Center": Label.HorizontalContentAlignment = HorizontalAlignment.Center; break; case "Stretch": Label.HorizontalContentAlignment = HorizontalAlignment.Stretch; break; default: Label.HorizontalContentAlignment = HorizontalAlignment.Center; break; } switch (dr[12].ToString()) { case "Top": Label.VerticalContentAlignment = VerticalAlignment.Top; break; case "Bottom": Label.VerticalContentAlignment = VerticalAlignment.Bottom; break; case "Center": Label.VerticalContentAlignment = VerticalAlignment.Center; break; case "Stretch": Label.VerticalContentAlignment = VerticalAlignment.Stretch; break; default: Label.VerticalContentAlignment = VerticalAlignment.Center; break; } double myfontsize = double.Parse(dr[13].ToString()); // Label.FontSize = myfontsize; this.FontSize = myfontsize; //label.FontSize = myfontsize; Value_Name = dr[14].ToString(); ALLMyLabel_List.Add(this); }