sc 9 months ago
parent
commit
f64aa94f26
  1. 20
      View/TechnologicalProcessView.xaml.cs
  2. 51
      View/WorkOrderView.xaml.cs
  3. 5
      ViewModel/MainWindowViewModel.cs

20
View/TechnologicalProcessView.xaml.cs

@ -38,14 +38,14 @@ namespace DyeingComputer.View
InitializeComponent(); InitializeComponent();
//Grid.DataContext = new MainWindowViewModel(); //Grid.DataContext = new MainWindowViewModel();
FocusManager.SetFocusedElement(Grid, Grid); FocusManager.SetFocusedElement(Grid, Grid);
if (workName != null) // if (workName != null)
{ // {
TechnologicalProcess_Import(); // TechnologicalProcess_Import();
} // }
else // else
{ // {
TechnologicalProcess_sql(); TechnologicalProcess_sql();
} // }
} }
public static object workName; public static object workName;
@ -91,8 +91,12 @@ namespace DyeingComputer.View
string sql_script = "select * from RUN"; string sql_script = "select * from RUN";
if (sql != null) sql.Clear(); //清空缓存 if (sql != null) sql.Clear(); //清空缓存
sql = SQLiteHelpers.ExecuteDataSet(sql_script, null); //读取表写入缓存 sql = SQLiteHelpers.ExecuteDataSet(sql_script, null); //读取表写入缓存
try
{
MainWindowViewModel.ProgramName = SQLiteHelpers.ExecuteScalar("select Program from RUN where Step = '1'", null).ToString(); MainWindowViewModel.ProgramName = SQLiteHelpers.ExecuteScalar("select Program from RUN where Step = '1'", null).ToString();
MainWindowViewModel.WorkNumder = SQLiteHelpers.ExecuteScalar("select DYELOT from RUN where Step = '1'", null).ToString(); MainWindowViewModel.WorkNumder = SQLiteHelpers.ExecuteScalar("select WorkOrder from RUN where Step = '1'", null).ToString();
}
catch (Exception) { }
SQLiteHelpers.Close(); //关闭连接 SQLiteHelpers.Close(); //关闭连接
if (sql != null) dt_TP = sql.Tables[0]; //转换显示计划表 if (sql != null) dt_TP = sql.Tables[0]; //转换显示计划表

51
View/WorkOrderView.xaml.cs

@ -23,6 +23,7 @@ using System.Xml.Linq;
using static DyeingComputer.UserClass.SqliteHelper; using static DyeingComputer.UserClass.SqliteHelper;
using static DyeingComputer.Windows.ViewProgram; using static DyeingComputer.Windows.ViewProgram;
using static System.Collections.Specialized.BitVector32; using static System.Collections.Specialized.BitVector32;
using static System.Net.WebRequestMethods;
namespace DyeingComputer.View namespace DyeingComputer.View
{ {
@ -59,7 +60,7 @@ namespace DyeingComputer.View
} }
void Tick_Event_1S(object sender, EventArgs e) void Tick_Event_1S(object sender, EventArgs e)
{ {
Workorder_sql(); if(!SQL_UPDATE) Workorder_sql();
} }
private SQLiteHelper SQLiteHelpers = null; //定义数据库 private SQLiteHelper SQLiteHelpers = null; //定义数据库
@ -71,13 +72,14 @@ namespace DyeingComputer.View
string Process_Name; string Process_Name;
string Process_id; string Process_id;
string _lock; string _lock;
bool SQL_UPDATE = false;
public void Workorder_sql() public void Workorder_sql()
{ {
SQLiteHelpers = new SQLiteHelper(DBAddress); //数据库连接路径 SQLiteHelpers = new SQLiteHelper(DBAddress); //数据库连接路径
SQLiteHelpers.Open(); //打开数据库 SQLiteHelpers.Open(); //打开数据库
string sql_script = "select * from WorkOrder where StartTime > '" + DateTime.Now.ToString("yyyy/MM/dd HH:mm:ss") + "'"; string sql_script = "select * from WorkOrder where EndTime > '" + DateTime.Now.ToString("yyyy/MM/dd HH:mm:ss") + "'";
if (sql != null) sql.Clear(); //清空缓存 if (sql != null) sql.Clear(); //清空缓存
sql = SQLiteHelpers.ExecuteDataSet(sql_script, null); //读取计划表写入缓存 sql = SQLiteHelpers.ExecuteDataSet(sql_script, null); //读取计划表写入缓存
@ -89,8 +91,6 @@ namespace DyeingComputer.View
Process_Name = null; Process_Name = null;
Process_id = null; Process_id = null;
_lock = null; _lock = null;
//sql.Clear(); //清除缓存
//System.GC.Collect();
} }
@ -166,34 +166,47 @@ namespace DyeingComputer.View
Process_Name = (Grid.Columns[1].GetCellContent(Grid.Items[rownum]) as TextBlock).Text;//定位第1列, Process_Name = (Grid.Columns[1].GetCellContent(Grid.Items[rownum]) as TextBlock).Text;//定位第1列,
Process_id = (Grid.Columns[2].GetCellContent(Grid.Items[rownum]) as TextBlock).Text;//定位第0列, Process_id = (Grid.Columns[2].GetCellContent(Grid.Items[rownum]) as TextBlock).Text;//定位第0列,
_lock = (Grid.Columns[3].GetCellContent(Grid.Items[rownum]) as TextBlock).Text;//定位第1列, _lock = (Grid.Columns[3].GetCellContent(Grid.Items[rownum]) as TextBlock).Text;//定位第1列,
SQL_UPDATE = true;
} }
} }
private void UserControl_KeyDown(object sender, KeyEventArgs e) //键盘监控 private void UserControl_KeyDown(object sender, KeyEventArgs e) //键盘监控
{ {
if (e.Key == Key.Y) //按键y if (e.Key == Key.Y) //按键
{ {
if(string.IsNullOrEmpty(WorkOrder_Numder)) return;
SQLiteHelpers = new SQLiteHelper(DBAddress); //数据库连接路径 SQLiteHelpers = new SQLiteHelper(DBAddress); //数据库连接路径
SQLiteHelpers.Open(); //打开数据库 SQLiteHelpers.Open(); //打开数据库
string sql_script = "select * from ProgramName where ProgramID = '" + Process_id + "'";
int i = SQLiteHelpers.ExecuteDataSet(sql_script, null).Tables[0].Rows.Count; //读取工艺表返回0工艺不存在
if (i == 0) //工艺不存在提示
{
SQLiteHelpers.Close(); //关闭连接
WorkOrder_Numder = null;
Process_id = null;
if (System.Windows.Forms.MessageBox.Show("["+Process_Name+"] "+ Properties.Resources.process_not, "800 ",
System.Windows.Forms.MessageBoxButtons.OK) == System.Windows.Forms.DialogResult.OK) return;
}
else //否则修改工艺执行状态
{
updata_temp.Clear(); //使用前清缓存 updata_temp.Clear(); //使用前清缓存
updata_temp.Add("State", 101); updata_temp.Add("State", 101);
SQLiteHelpers.Update("WorkOrder", updata_temp, "ProgramID='" + Process_id + "'", null); SQLiteHelpers.Update("WorkOrder", updata_temp, "WorkOrder='" + WorkOrder_Numder + "'", null);
SQLiteHelpers.Close(); //关闭连接
DataTable WorkorderSteps = SQLiteHelpers.ExecuteDataSet(
"select * from WorkorderSteps where WorkOrder='" + WorkOrder_Numder + "'", null).Tables[0]; //读取表写入缓存
MainWindowViewModel.ProgramName = Process_Name;
SQLiteHelpers.Delete("RUN", null, null); //删除run信息
DataTable data_t = new DataTable();
data_t = WorkorderSteps.Clone();
int a = WorkorderSteps.Rows.Count;
for (int i = 0; i < a; i++)
{
data_t.Clear();//清空
DataRow dt = WorkorderSteps.Rows[i];//行转
DataRow dr = data_t.NewRow();
dr.ItemArray = dt.ItemArray;
dr.BeginEdit(); //添加订单号
dr["ProgramID"] = Process_id;
dr["Program"] = MainWindowViewModel.ProgramName;
dr.EndEdit();
data_t.Rows.InsertAt(dr, 0); //行转换
SQLiteHelpers.InsertData("RUN", SQLiteHelpers.DataTableToDictionary(data_t));//行插入
} }
SQLiteHelpers.Close(); //关闭连接
if (Process_id != null) //选定工艺有效跳转准备 if (Process_id != null) //选定工艺有效跳转准备
{ {
MainWindowViewModel.WorkNumder = WorkOrder_Numder; MainWindowViewModel.WorkNumder = WorkOrder_Numder;

5
ViewModel/MainWindowViewModel.cs

@ -282,7 +282,8 @@ namespace DyeingComputer.ViewModel
void Tick_Event_5S(object sender, EventArgs e)//Tick_Event周期执行事件5S void Tick_Event_5S(object sender, EventArgs e)//Tick_Event周期执行事件5S
{ {
if (!LINK_OK) Modbus_link(); if (!LINK_OK) Modbus_link();
Chart();//写入记录
if(WORK_RUN !=0) Chart();//写入记录
if (string.IsNullOrEmpty(Name_err.ToString()) && ((Selet_dtm("1010") < 1) || (Selet_dtm("1010") > 160))) if (string.IsNullOrEmpty(Name_err.ToString()) && ((Selet_dtm("1010") < 1) || (Selet_dtm("1010") > 160)))
{ Name_err = Resources.Temperature + Resources.Sensor + Resources.Malfunction; } //温度故障提示 { Name_err = Resources.Temperature + Resources.Sensor + Resources.Malfunction; } //温度故障提示
@ -1377,7 +1378,7 @@ namespace DyeingComputer.ViewModel
}//清除输出状态 }//清除输出状态
if (string.IsNullOrEmpty(Name_err.ToString())) if (string.IsNullOrEmpty(Name_err.ToString()))
{ {
WorkNumder = "----------"; //WorkNumder = "----------";
int TIMEH = DIDETime / 3600; int TIMEH = DIDETime / 3600;
int TIMEM = (DIDETime - TIMEH * 3600) / 60; int TIMEM = (DIDETime - TIMEH * 3600) / 60;
int TIMES = DIDETime - TIMEH * 3600 - TIMEM * 60; int TIMES = DIDETime - TIMEH * 3600 - TIMEM * 60;

Loading…
Cancel
Save