849 lines
30 KiB
C#
849 lines
30 KiB
C#
using DataMirrorTools;
|
||
using DTTest;
|
||
using HZ.Common;
|
||
using System;
|
||
using System.Collections.Generic;
|
||
using System.ComponentModel;
|
||
using System.Data;
|
||
using System.Drawing;
|
||
using System.Linq;
|
||
using System.Text;
|
||
using System.Threading.Tasks;
|
||
using System.Windows.Forms;
|
||
|
||
/// <summary>
|
||
///
|
||
/// </summary>
|
||
namespace DataMirrorToolsPage
|
||
{
|
||
/// <summary>
|
||
///
|
||
/// </summary>
|
||
public partial class P_SignalViewer : ModelManagement
|
||
{
|
||
int currenIndex = 0;
|
||
/// <summary>
|
||
/// Tag处理
|
||
/// </summary>
|
||
// public static TagID_Add_Handler tagID_Add_Handler = null;
|
||
/// <summary>
|
||
/// 当前的TagID
|
||
/// </summary>
|
||
string currTagID = "";
|
||
/// <summary>
|
||
/// 当前的TagName
|
||
/// </summary>
|
||
string currTagName = "";
|
||
/// <summary>
|
||
/// 初始化函数
|
||
/// </summary>
|
||
public P_SignalViewer()
|
||
{
|
||
InitializeComponent();
|
||
ControlDoubleBuffered(dgv_SignalViewer);
|
||
}
|
||
|
||
|
||
/// <summary>
|
||
/// 创建信号点
|
||
/// </summary>
|
||
/// <param name="sender"></param>
|
||
/// <param name="e"></param>
|
||
private void btn_Signal_Create_Click(object sender, EventArgs e)
|
||
{
|
||
SqlOperation.SqlSignalTree.CreateSignal("", PP.ProjectCode,Type_Device.Signal);
|
||
Refresh_SignalViewer();
|
||
|
||
if (this.dgv_SignalViewer.Rows.Count > 0)
|
||
{
|
||
this.dgv_SignalViewer.Rows[this.dgv_SignalViewer.Rows.Count-1].Selected = true;
|
||
}
|
||
// ModelBasic.ErrDef.iErrHandler.ErrInfoTransmit("信号添加完成!");
|
||
}
|
||
|
||
|
||
private void Refresh_SignalViewer()
|
||
{
|
||
var selectSignalName = txt_SelectSignalName.Text.Trim();
|
||
var dt_Signal = SqlOperation.SqlSignalTree.SelectSignal_UseSignalName(selectSignalName, false, PP.ProjectCode);
|
||
|
||
currSignalCount = dt_Signal.Rows.Count;
|
||
label_SignalCount.Text = $"{currSignalCount} 个信号";
|
||
|
||
dgv_SignalViewer.DataSource = dt_Signal;
|
||
Rendering_dgv_Handler();
|
||
}
|
||
|
||
|
||
|
||
/// <summary>
|
||
/// 退出事件
|
||
/// </summary>
|
||
/// <param name="sender"></param>
|
||
/// <param name="e"></param>
|
||
private void P_SignalViewer_FormClosing(object sender, FormClosingEventArgs e)
|
||
{
|
||
// Program.simplifyPdps.UpdateCheckedState_TSM_SignalViewer( 1 == 2 );
|
||
|
||
//if (!SimplifyPdps.isCanClose)
|
||
//{
|
||
// e.Cancel = true;//拦截,不响应操作
|
||
//}
|
||
}
|
||
|
||
/// <summary>
|
||
/// 删除信号按钮
|
||
/// </summary>
|
||
/// <param name="sender"></param>
|
||
/// <param name="e"></param>
|
||
private void btn_Signal_Delete_Click(object sender, EventArgs e)
|
||
{
|
||
if (MessageBox.Show("确认删除选中信号【" + currTagName + "】?", "删除确认?", MessageBoxButtons.YesNo) == DialogResult.Yes)
|
||
{ }
|
||
else
|
||
{
|
||
// ModelBasic.ErrDef.iErrHandler.ErrInfoTransmit("已取消删除信号操作!");
|
||
return;
|
||
}
|
||
|
||
SqlOperation.SqlSignalTree.DeleteSignal(currGridSequenceNo, currTagID, PP.ProjectCode);
|
||
Refresh_SignalViewer();
|
||
}
|
||
|
||
/// <summary>
|
||
/// 编辑完成事件
|
||
/// </summary>
|
||
/// <param name="sender"></param>
|
||
/// <param name="e"></param>
|
||
private void dgv_SignalViewer_CellEndEdit(object sender, DataGridViewCellEventArgs e)
|
||
{
|
||
var checkedThis = Convert.ToBoolean(GetObjV(e, "选择"));
|
||
var tagID = GetObjV(e, "DeviceCode").ToString();
|
||
var memory = Convert.ToBoolean(GetObjV(e, "内存"));
|
||
var type = GetObjV(e, "类型").ToString();
|
||
var robotSignalName = GetObjV(e, "机器人信号名称").ToString();
|
||
var robotAddress = GetObjV(e, "机器人信号地址").ToString();
|
||
var address = GetObjV(e, "地址").ToString();
|
||
var iecFormat = GetObjV(e, "IEC格式").ToString();
|
||
var isEnable = Convert.ToBoolean(GetObjV(e, "启用"));
|
||
var sName = GetObjV(e, "信号名称").ToString();
|
||
var explain = GetObjV(e, "注释").ToString();
|
||
var isMonitorStr = GetObjV(e, "监控").ToString();
|
||
var isMonitor = true;
|
||
switch (isMonitorStr)
|
||
{
|
||
case "1":
|
||
case "True":
|
||
case "TRUE":
|
||
case "true":
|
||
isMonitor = true;
|
||
break;
|
||
default:
|
||
isMonitor = false;
|
||
break;
|
||
}
|
||
|
||
SqlOperation.SqlSignalTree.UpdateSignal(tagID, checkedThis, memory, type, robotSignalName, robotAddress, address,
|
||
isEnable, sName, explain, isMonitor, PP.ProjectCode);
|
||
|
||
}
|
||
|
||
|
||
private object GetObjV(DataGridViewCellEventArgs e, string Name)
|
||
{
|
||
return dgv_SignalViewer.Rows[e.RowIndex].Cells[Name].Value;
|
||
}
|
||
|
||
/// <summary>
|
||
/// 点击事件
|
||
/// </summary>
|
||
/// <param name="sender"></param>
|
||
/// <param name="e"></param>
|
||
private void dgv_SignalViewer_CellClick(object sender, DataGridViewCellEventArgs e)
|
||
{
|
||
if (e.RowIndex > -1)
|
||
{
|
||
try
|
||
{
|
||
currTagID = GetObjV(e, "DeviceCode").ToString();
|
||
currTagName = GetObjV(e, "信号名称").ToString();
|
||
var region = GetObjV(e, "Region").ToString();
|
||
currGridSequenceNo = Convert.ToInt32(GetObjV(e, "序号").ToString());
|
||
|
||
var ResourcesCode = GetObjV(e, "资源").ToString();
|
||
|
||
RefreshCurrSequenceNo(currGridSequenceNo);
|
||
|
||
//if (tagID_Add_Handler != null)
|
||
//{
|
||
// tagID_Add_Handler.ExecCurrSelectSignal(currTagID, currTagName, ResourcesCode);
|
||
//}
|
||
|
||
|
||
if (GlobalEventInterface.E_DeviceSignalSimGantt_TransmitTagToDeviceSignalSim != null)
|
||
{
|
||
GlobalEventInterface.E_DeviceSignalSimGantt_TransmitTagToDeviceSignalSim(currTagID, currTagName);
|
||
}
|
||
if (GlobalEventInterface.E_SignalLabelForm_TransmitSelect != null)
|
||
{
|
||
GlobalEventInterface.E_SignalLabelForm_TransmitSelect(Cmd_Frame.SignalWrite, currTagID, currTagName);
|
||
}
|
||
if (GlobalEventInterface.E_LogicalBlock_AddSignal != null)
|
||
{
|
||
GlobalEventInterface.E_LogicalBlock_AddSignal(new LogicalBlock.LB_Device_Signal()
|
||
{
|
||
SignalCode = currTagID,
|
||
SignalName = currTagName,
|
||
SignalRegion = region,
|
||
});
|
||
}
|
||
|
||
|
||
}
|
||
catch (Exception err)
|
||
{
|
||
LogNet.LogisTrac.WriteLog(typeof(P_SignalViewer), err);
|
||
|
||
Console.WriteLine(err);
|
||
}
|
||
|
||
}
|
||
}
|
||
|
||
|
||
/// <summary>
|
||
/// 信号导入按钮
|
||
/// </summary>
|
||
/// <param name="sender"></param>
|
||
/// <param name="e"></param>
|
||
private void btn_Signal_Import_Excel_Click(object sender, EventArgs e)
|
||
{
|
||
|
||
MessageBox.Show("暂时禁用!!——2021.11.18");
|
||
return;
|
||
|
||
|
||
if (MessageBox.Show($"确认导入信号表?", "导入确认", MessageBoxButtons.YesNo) == DialogResult.Yes)
|
||
{
|
||
}
|
||
else
|
||
{
|
||
//MessageBox.Show("您已取消导入信号表操作!");
|
||
return;
|
||
}
|
||
|
||
|
||
var importOpenFileDialog = new OpenFileDialog();
|
||
var importDialogResult = importOpenFileDialog.ShowDialog();
|
||
var localFilePath = importOpenFileDialog.FileName;
|
||
|
||
if (importDialogResult == DialogResult.OK)
|
||
{
|
||
var t1 = DateTime.Now.ToFileTimeUtc();
|
||
DataTable dt_Signal = OExcel.ExeclHelper_Model.ExcelToDataTable(localFilePath, "MES_基本变量原始数据", true);
|
||
|
||
var t2 = DateTime.Now.ToFileTimeUtc();
|
||
var D1 = ((t2 - t1) / 10000).ToString();
|
||
ImportSignalToSql(dt_Signal);
|
||
|
||
var t3 = DateTime.Now.ToFileTimeUtc();
|
||
var D2 = ((t3 - t2) / 10000).ToString();
|
||
MessageBox.Show("信号表文件导入成功!\n"
|
||
+ "读取耗时:" + D1 + " ms\n"
|
||
+ "转换存储耗时:" + D2 + " ms\n");
|
||
|
||
Refresh_SignalViewer();
|
||
}
|
||
//else
|
||
//{
|
||
// MessageBox.Show("您已取消了信号导入操作!");
|
||
//}
|
||
|
||
|
||
}
|
||
|
||
public void ImportSignalToSql(DataTable dt)
|
||
{
|
||
for (int i = 0; i < dt.Rows.Count; i++)
|
||
{
|
||
//信号名 是内存 数据类型 机器人信号名 地址 是连接PLC 外部连接 资源 解释 项目代码
|
||
//[signalName],[Memory],[Type],[RobotSignalName],[Address],[启用], ************** ,[Resources],[Explain],[ProjectCode]
|
||
|
||
var signalName = dt.Rows[i]["TagID"].ToString();
|
||
var tagID = Convert.ToInt32(signalName);
|
||
if (tagID < 41010001)
|
||
{
|
||
var memory = false;
|
||
var type = dt.Rows[i]["变量类型"].ToString();
|
||
var robotSignalName = "无";
|
||
var address = dt.Rows[i]["变量地址"].ToString() + dt.Rows[i]["变量其它"].ToString();
|
||
var iecFormat = dt.Rows[i]["DbName"].ToString();
|
||
var isEnable = true;
|
||
var resources = "Excel导入";
|
||
var explain = dt.Rows[i]["测量项目"].ToString();
|
||
|
||
SqlOperation.SqlSignalTree.AddOrUpdateSignal(signalName, memory, type, robotSignalName, address, iecFormat,
|
||
isEnable, resources, explain, PP.ProjectCode);
|
||
}
|
||
|
||
}
|
||
}
|
||
|
||
/// <summary>
|
||
/// 信号导出按钮
|
||
/// </summary>
|
||
/// <param name="sender"></param>
|
||
/// <param name="e"></param>
|
||
private void btn_Signal_Export_Excel_Click(object sender, EventArgs e)
|
||
{
|
||
var exportOpenFileDialog = new SaveFileDialog();
|
||
//设置文件类型
|
||
exportOpenFileDialog.Filter = "Microsoft Excel(*.xls)|*.xls";
|
||
//设置默认文件类型显示顺序
|
||
exportOpenFileDialog.FilterIndex = 1;
|
||
//保存对话框是否记忆上次打开的目录
|
||
exportOpenFileDialog.RestoreDirectory = true;
|
||
var exportDialogResult = exportOpenFileDialog.ShowDialog();
|
||
|
||
//点了保存按钮进入
|
||
if (exportDialogResult == DialogResult.OK)
|
||
{
|
||
var localFilePath = exportOpenFileDialog.FileName;//获得文件路径
|
||
var fileNameExt = localFilePath.Substring(localFilePath.LastIndexOf("\\") + 1); //获取文件名,不带路径
|
||
var fileExtension = localFilePath.Substring(localFilePath.LastIndexOf(".") + 1); //获取文件扩展名
|
||
var fileExtensionToLower = fileExtension.ToLower();
|
||
var dt_SignalViewer = SqlOperation.SqlSignalTree.SelectSignal_UseSignalName("", false, PP.ProjectCode);
|
||
var col = dt_SignalViewer.Columns;
|
||
if (col.Contains("Checked"))
|
||
col.Remove("Checked");
|
||
if (col.Contains("Memory"))
|
||
col.Remove("Memory");
|
||
if (col.Contains("RobotSignalName"))
|
||
col.Remove("RobotSignalName");
|
||
if (col.Contains("IsEnable"))
|
||
col.Remove("IsEnable");
|
||
|
||
var success = OExcel.ExeclHelper_Model.DataTableToExcel(dt_SignalViewer, "SignalViewer", localFilePath);
|
||
if (success == false)
|
||
{
|
||
// ModelBasic.ErrDef.iErrHandler.ErrInfoTransmit("项目数据导出Excel【错误】");
|
||
return;
|
||
}
|
||
|
||
}
|
||
//else
|
||
//{
|
||
// MessageBox.Show("您已取消了导出数据操作!");
|
||
//}
|
||
|
||
|
||
}
|
||
|
||
|
||
private void btn_Signal_Import_S7_Click(object sender, EventArgs e)
|
||
{
|
||
|
||
}
|
||
|
||
#region 显示缓存2021.3.31
|
||
|
||
private void ControlDoubleBuffered(Control c)
|
||
{
|
||
//设置双缓冲,解决datagridview显示数据缓慢
|
||
Type type = c.GetType();
|
||
System.Reflection.PropertyInfo pi = type.GetProperty("DoubleBuffered",
|
||
System.Reflection.BindingFlags.Instance | System.Reflection.BindingFlags.NonPublic);
|
||
pi.SetValue(c, true, null);
|
||
}
|
||
|
||
|
||
|
||
#endregion
|
||
|
||
|
||
private void btn_MoveUp_Click(object sender, EventArgs e)
|
||
{
|
||
if (operationing)
|
||
{
|
||
operationing = false;
|
||
|
||
if (currGridSequenceNo >= 2)
|
||
{
|
||
this.dgv_SignalViewer.Rows[currGridSequenceNo - 1].Selected = false;
|
||
|
||
SqlOperation.SqlSignalTree.MoveUpSignal(currGridSequenceNo, PP.ProjectCode);
|
||
Refresh_SignalViewer();
|
||
currGridSequenceNo--;
|
||
RefreshCurrSequenceNo(currGridSequenceNo);
|
||
|
||
this.dgv_SignalViewer.Rows[currGridSequenceNo - 1].Selected = true;
|
||
dgv_SignalViewer_CellClick(dgv_SignalViewer, new DataGridViewCellEventArgs(0, currGridSequenceNo - 1));
|
||
//dgv_SignalViewer_CellClick(dgv_SignalViewer, new DataGridViewCellEventArgs(dgv_SignalViewer.SelectedCells[0].ColumnIndex, dgv_SignalViewer.SelectedCells[currGridSequenceNo - 1].RowIndex));
|
||
|
||
}
|
||
else
|
||
{
|
||
// ModelBasic.ErrDef.iErrHandler.ErrInfoTransmit("已经是第一个工序,不能再移动了!");
|
||
}
|
||
|
||
operationing = true;
|
||
|
||
}
|
||
}
|
||
|
||
private void btn_MoveDown_Click(object sender, EventArgs e)
|
||
{
|
||
if (operationing)
|
||
{
|
||
operationing = false;
|
||
|
||
if (currGridSequenceNo < currSignalCount)
|
||
{
|
||
this.dgv_SignalViewer.Rows[currGridSequenceNo - 1].Selected = false;
|
||
|
||
SqlOperation.SqlSignalTree.MoveDownSignal(currGridSequenceNo, PP.ProjectCode);
|
||
Refresh_SignalViewer();
|
||
currGridSequenceNo++;
|
||
RefreshCurrSequenceNo(currGridSequenceNo);
|
||
|
||
this.dgv_SignalViewer.Rows[currGridSequenceNo - 1].Selected = true;
|
||
dgv_SignalViewer_CellClick(dgv_SignalViewer, new DataGridViewCellEventArgs(0, currGridSequenceNo - 1));
|
||
//dgv_SignalViewer_CellClick(dgv_SignalViewer, new DataGridViewCellEventArgs(dgv_SignalViewer.SelectedCells[0].ColumnIndex, dgv_SignalViewer.SelectedCells[currGridSequenceNo - 1].RowIndex));
|
||
|
||
}
|
||
else
|
||
{
|
||
// ModelBasic.ErrDef.iErrHandler.ErrInfoTransmit("已经是最后一个工序,不能再移动了!");
|
||
}
|
||
|
||
operationing = true;
|
||
|
||
}
|
||
}
|
||
/// <summary>
|
||
/// 操作中
|
||
/// </summary>
|
||
bool operationing = true;
|
||
/// <summary>
|
||
/// 当前选中的工序排序
|
||
/// </summary>
|
||
public static int currGridSequenceNo = -1;
|
||
/// <summary>
|
||
/// 信号数量
|
||
/// </summary>
|
||
int currSignalCount = 0;
|
||
|
||
private void RefreshCurrSequenceNo(int sequenceNo)
|
||
{
|
||
txt_CurrSequenceNo.Text = sequenceNo.ToString();
|
||
}
|
||
|
||
|
||
private void btn_AutoGenerateSignalTag_Click(object sender, EventArgs e)
|
||
{
|
||
}
|
||
|
||
|
||
DelayAction delayAction1 = new DelayAction();
|
||
private void txt_SelectSignalName_TextChanged(object sender, EventArgs e)
|
||
{
|
||
delayAction1.Delay(750, dgv_SignalViewer, SelectTask);
|
||
}
|
||
|
||
private void SelectTask()
|
||
{
|
||
Refresh_SignalViewer();
|
||
}
|
||
|
||
public void Rendering_dgv_Handler()
|
||
{
|
||
var tagIDList = SqlOperation.SqlTag_Handler.SelectDistinctTagID_Handler( PP.ProjectCode);
|
||
Rendering_dgv(tagIDList, Color.GreenYellow);
|
||
}
|
||
|
||
private void Rendering_dgv(List<String> tagIDList, Color c)
|
||
{
|
||
if (dgv_SignalViewer.CurrentRow == null) return;
|
||
currenIndex = dgv_SignalViewer.CurrentRow.Index;
|
||
DataGridView dgv = this.dgv_SignalViewer;
|
||
|
||
if (!dgv.Columns.Contains("DeviceCode"))
|
||
{
|
||
return;
|
||
}
|
||
|
||
for (int k = 0; k < dgv.RowCount; k++)
|
||
{
|
||
for (int cl = 0; cl < dgv.ColumnCount; cl++)
|
||
dgv.Invoke(new Action(delegate ()
|
||
{
|
||
dgv.Rows[k].Cells[cl].Style.BackColor = Color.White;
|
||
}));
|
||
|
||
}
|
||
foreach (string thisTagID in tagIDList)
|
||
{
|
||
for (int j = 0; j < dgv.RowCount; j++)
|
||
{
|
||
if (dgv.Rows[j].Cells["DeviceCode"].Value.ToString().Trim() == thisTagID)
|
||
{
|
||
for (int cl = 0; cl < dgv.ColumnCount; cl++)
|
||
dgv.Invoke(new Action(delegate ()
|
||
{
|
||
dgv.Rows[j].Cells[cl].Style.BackColor = c;
|
||
}));
|
||
|
||
}
|
||
|
||
}
|
||
}
|
||
if(this.dgv_SignalViewer.Rows.Count> currenIndex)
|
||
{
|
||
this.dgv_SignalViewer.Rows[currenIndex].Selected = true;
|
||
}
|
||
}
|
||
|
||
#region 调试信号查询2021.10.8.LLX
|
||
|
||
/// <summary>
|
||
/// 行为查找TagID
|
||
/// 2021.5.11
|
||
/// </summary>
|
||
/// <param name="actCode"></param>
|
||
public void ActSelect_TagID_Handler(string actCode)
|
||
{
|
||
var tagIDList = SqlOperation.SqlTag_Handler.SelectTagID_Handler(actCode, Type_TagIDHandler.Craft, PP.ProjectCode);
|
||
Rendering_dgv(tagIDList, Color.Red);
|
||
}
|
||
public void ModelSelect_SignalTagID(string modelCode)
|
||
{
|
||
var tagIDList = SqlOperation.SqlTag_Handler.ModelSelect_SignalTagID(modelCode, PP.ProjectCode);
|
||
Rendering_dgv(tagIDList, Color.Red);
|
||
}
|
||
/// <summary>
|
||
/// 行为对应的查找TagID
|
||
/// 2021.5.11
|
||
/// </summary>
|
||
/// <param name="tagID"></param>
|
||
public void TagIDSelect_TagID_Handler(string tagID)
|
||
{
|
||
var tagIDList = new List<String>() { tagID };
|
||
Rendering_dgv(tagIDList, Color.Red);
|
||
}
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
#endregion
|
||
/// <summary>
|
||
/// 信号处理编辑器
|
||
/// 2021.10.8.LLX
|
||
/// </summary>
|
||
/// <param name="sender"></param>
|
||
/// <param name="e"></param>
|
||
private void btn_SignalHandlerEditor_Click(object sender, EventArgs e)
|
||
{
|
||
//if (tagID_Add_Handler != null)
|
||
//{
|
||
// tagID_Add_Handler.Close();
|
||
// tagID_Add_Handler = null;
|
||
//}
|
||
|
||
//tagID_Add_Handler = new TagID_Add_Handler();
|
||
//tagID_Add_Handler.Show(this);
|
||
}
|
||
|
||
private void P_SignalViewer_Load(object sender, EventArgs e)
|
||
{
|
||
Refresh_SignalViewer();
|
||
|
||
GlobalEventInterface.E_SignalViewer_ActSelect_TagID_Handler -= GlobalEventInterface_E_SignalViewer_ActSelect_TagID_Handler;
|
||
GlobalEventInterface.E_SignalViewer_ActSelect_TagID_Handler += GlobalEventInterface_E_SignalViewer_ActSelect_TagID_Handler;
|
||
|
||
GlobalEventInterface.E_SignalViewer_TagIDSelect_TagID_Handler -= GlobalEventInterface_E_SignalViewer_TagIDSelect_TagID_Handler;
|
||
GlobalEventInterface.E_SignalViewer_TagIDSelect_TagID_Handler += GlobalEventInterface_E_SignalViewer_TagIDSelect_TagID_Handler;
|
||
|
||
GlobalEventInterface.E_SignalViewer_Rendering_dgv_Handler -= GlobalEventInterface_E_SignalViewer_Rendering_dgv_Handler;
|
||
GlobalEventInterface.E_SignalViewer_Rendering_dgv_Handler += GlobalEventInterface_E_SignalViewer_Rendering_dgv_Handler;
|
||
}
|
||
|
||
private void GlobalEventInterface_E_SignalViewer_Rendering_dgv_Handler()
|
||
{
|
||
Rendering_dgv_Handler();
|
||
}
|
||
|
||
private void GlobalEventInterface_E_SignalViewer_ActSelect_TagID_Handler(string actCode)
|
||
{
|
||
ActSelect_TagID_Handler(actCode);
|
||
}
|
||
|
||
private void GlobalEventInterface_E_SignalViewer_TagIDSelect_TagID_Handler(string tagID)
|
||
{
|
||
TagIDSelect_TagID_Handler(tagID);
|
||
}
|
||
|
||
private List<String> GetDgvSelectedRows(DataGridView dgv)
|
||
{
|
||
var list = new List<String>();
|
||
foreach (DataGridViewRow row in dgv.SelectedRows)
|
||
list.Insert(0, row.Cells["DeviceCode"].Value.ToString());
|
||
return list;
|
||
}
|
||
private Dictionary<String, Int32> GetDgvSelectedRows_TagID_SequenceNo(DataGridView dgv)
|
||
{
|
||
var dc = new Dictionary<String, Int32>();
|
||
foreach (DataGridViewRow row in dgv.SelectedRows)
|
||
dc.Add(row.Cells["DeviceCode"].Value.ToString(), Convert.ToInt32(row.Cells["序号"].Value.ToString()));
|
||
return dc;
|
||
}
|
||
|
||
private void TSM_UpdateSignalConnect_Click(object sender, EventArgs e)
|
||
{
|
||
var connectSelect = new ConnectSelect();
|
||
var result = connectSelect.ShowDialog();
|
||
if (result == DialogResult.OK)
|
||
{
|
||
var connectCode = connectSelect.connCode;
|
||
if (connectCode.Length > 1)
|
||
{
|
||
foreach (string tagID in GetDgvSelectedRows(dgv_SignalViewer))
|
||
{
|
||
SqlOperation.SqlSignalTree.UpdateSimSignal_Connect(tagID, connectCode, PP.ProjectCode);
|
||
}
|
||
}
|
||
|
||
}
|
||
Refresh_SignalViewer();
|
||
|
||
}
|
||
|
||
private void TSM_DeleteSignalConnect_Click(object sender, EventArgs e)
|
||
{
|
||
var connectCode = "";
|
||
foreach (string tagID in GetDgvSelectedRows(dgv_SignalViewer))
|
||
{
|
||
SqlOperation.SqlSignalTree.UpdateSimSignal_Connect(tagID, connectCode, PP.ProjectCode);
|
||
}
|
||
Refresh_SignalViewer();
|
||
}
|
||
|
||
private void TSM_SignalViewer_Add_Click(object sender, EventArgs e)
|
||
{
|
||
foreach (string tagID in GetDgvSelectedRows(dgv_SignalViewer))
|
||
{
|
||
SqlOperation.SqlSignalTree.UpdateSignalChecked(tagID, true, PP.ProjectCode);
|
||
}
|
||
Refresh_SignalViewer();
|
||
}
|
||
|
||
private void TSM_SignalViewer_Remove_Click(object sender, EventArgs e)
|
||
{
|
||
foreach (string tagID in GetDgvSelectedRows(dgv_SignalViewer))
|
||
{
|
||
SqlOperation.SqlSignalTree.UpdateSignalChecked(tagID, false, PP.ProjectCode);
|
||
}
|
||
Refresh_SignalViewer();
|
||
}
|
||
|
||
private void TSM_Delete_SelectRaws_Click(object sender, EventArgs e)
|
||
{
|
||
// MessageBox.Show("存在排序问题,暂时还未开发!");
|
||
|
||
foreach (KeyValuePair<String, Int32> TagID_SequenceNo in GetDgvSelectedRows_TagID_SequenceNo(dgv_SignalViewer))
|
||
{
|
||
var tagID = TagID_SequenceNo.Key;
|
||
var sequenceNo = TagID_SequenceNo.Value;
|
||
SqlOperation.SqlSignalTree.DeleteSignal(sequenceNo, tagID, PP.ProjectCode);
|
||
}
|
||
Refresh_SignalViewer();
|
||
|
||
|
||
}
|
||
|
||
private void btn_btn_Refresh_Click(object sender, EventArgs e)
|
||
{
|
||
Refresh_SignalViewer();
|
||
}
|
||
|
||
private void TSM_UpdateSignalRegion_Click(object sender, EventArgs e)
|
||
{
|
||
var signalRegion = new SignalRegion();
|
||
var result = signalRegion.ShowDialog();
|
||
if (result == DialogResult.OK)
|
||
{
|
||
var region = signalRegion.region;
|
||
foreach (string tagID in GetDgvSelectedRows(dgv_SignalViewer))
|
||
{
|
||
SqlOperation.SqlSignalTree.UpdateSignalRegion(tagID, region, PP.ProjectCode);
|
||
}
|
||
Refresh_SignalViewer();
|
||
}
|
||
|
||
|
||
}
|
||
|
||
|
||
|
||
private void tsmi_INT16_Click(object sender, EventArgs e)
|
||
{
|
||
UpdateSignalType(Type_Signal_Raw.INT16);
|
||
}
|
||
|
||
private void tsmi_INT32_Click(object sender, EventArgs e)
|
||
{
|
||
UpdateSignalType(Type_Signal_Raw.INT32);
|
||
}
|
||
|
||
private void tsmi_FLOAT_Click(object sender, EventArgs e)
|
||
{
|
||
UpdateSignalType(Type_Signal_Raw.FLOAT);
|
||
}
|
||
|
||
private void tsmi_UINT64_Click(object sender, EventArgs e)
|
||
{
|
||
UpdateSignalType(Type_Signal_Raw.UINT64);
|
||
}
|
||
|
||
private void tsmi_STRING_Click(object sender, EventArgs e)
|
||
{
|
||
UpdateSignalType(Type_Signal_Raw.STRING);
|
||
}
|
||
|
||
private void tsmi_BOOL_Click(object sender, EventArgs e)
|
||
{
|
||
UpdateSignalType(Type_Signal_Raw.BOOL);
|
||
}
|
||
|
||
private void tsmi_BYTE_Click(object sender, EventArgs e)
|
||
{
|
||
UpdateSignalType(Type_Signal_Raw.BYTE);
|
||
}
|
||
|
||
private void tsmi_UINT16_Click(object sender, EventArgs e)
|
||
{
|
||
UpdateSignalType(Type_Signal_Raw.UINT16);
|
||
}
|
||
|
||
private void tsmi_DOUBLE_Click(object sender, EventArgs e)
|
||
{
|
||
UpdateSignalType(Type_Signal_Raw.DOUBLE);
|
||
}
|
||
|
||
private void UpdateSignalType(Type_Signal_Raw signalType)
|
||
{
|
||
foreach (string tagID in GetDgvSelectedRows(dgv_SignalViewer))
|
||
{
|
||
SqlOperation.SqlSignalTree.UpdateSignal_DataType(tagID, signalType.ToString(), PP.ProjectCode);
|
||
}
|
||
Refresh_SignalViewer();
|
||
}
|
||
|
||
private void dgv_SignalViewer_CellContentClick(object sender, DataGridViewCellEventArgs e)
|
||
{
|
||
if (e.RowIndex > -1)
|
||
{
|
||
var col = dgv_SignalViewer.Columns[e.ColumnIndex];
|
||
if (col is DataGridViewButtonColumn)
|
||
{
|
||
var DeviceCode = dgv_SignalViewer.Rows[e.RowIndex].Cells["DeviceCode"].Value.ToString();
|
||
CMS_SignalType.Show(Cursor.Position);
|
||
|
||
}
|
||
|
||
}
|
||
}
|
||
|
||
private void btn_OutScadaTable_Click(object sender, EventArgs e)
|
||
{
|
||
var exportOpenFileDialog = new SaveFileDialog();
|
||
//设置文件类型
|
||
exportOpenFileDialog.Filter = "Microsoft Excel(*.xls)|*.xls";
|
||
//设置默认文件类型显示顺序
|
||
exportOpenFileDialog.FilterIndex = 1;
|
||
//保存对话框是否记忆上次打开的目录
|
||
exportOpenFileDialog.RestoreDirectory = true;
|
||
|
||
var exportDialogResult = exportOpenFileDialog.ShowDialog();
|
||
|
||
//点了保存按钮进入
|
||
if (exportDialogResult == DialogResult.OK)
|
||
{
|
||
var localFilePath = exportOpenFileDialog.FileName;//获得文件路径
|
||
var fileNameExt = localFilePath.Substring(localFilePath.LastIndexOf("\\") + 1); //获取文件名,不带路径
|
||
var fileExtension = localFilePath.Substring(localFilePath.LastIndexOf(".") + 1); //获取文件扩展名
|
||
|
||
var fileExtensionToLower = fileExtension.ToLower();
|
||
|
||
GetSignalTable(out DataTable dt_Signal, out DataTable dt_Device);
|
||
dt_Signal.TableName = "MES_基本变量原始数据";
|
||
dt_Device.TableName = "设备类型对应表";
|
||
|
||
DataSet outDataSet = new DataSet();
|
||
outDataSet.Tables.Add(dt_Signal);
|
||
outDataSet.Tables.Add(dt_Device);
|
||
|
||
var success = OExcel.ExeclHelper_Model.DataSetToExcel(outDataSet, localFilePath);
|
||
if (success == false)
|
||
{
|
||
// ModelBasic.ErrDef.iErrHandler.ErrInfoTransmit("信号表数据导出Excel【错误】!!");
|
||
return;
|
||
}
|
||
|
||
}
|
||
//else
|
||
//{
|
||
// MessageBox.Show("您已取消了导出数据操作!");
|
||
//}
|
||
|
||
|
||
}
|
||
|
||
private void P_SignalViewer_FormClosed(object sender, FormClosedEventArgs e)
|
||
{
|
||
GlobalEventInterface.E_SignalViewer_ActSelect_TagID_Handler -= GlobalEventInterface_E_SignalViewer_ActSelect_TagID_Handler;
|
||
GlobalEventInterface.E_SignalViewer_TagIDSelect_TagID_Handler -= GlobalEventInterface_E_SignalViewer_TagIDSelect_TagID_Handler;
|
||
GlobalEventInterface.E_SignalViewer_Rendering_dgv_Handler -= GlobalEventInterface_E_SignalViewer_Rendering_dgv_Handler;
|
||
}
|
||
|
||
private void TSM_UpdateResources_Click(object sender, EventArgs e)
|
||
{
|
||
var updateResources = new UpdateResources();
|
||
updateResources.Show(this);
|
||
|
||
new TaskFactory().StartNew(delegate ()
|
||
{
|
||
while (updateResources.IsOpen)
|
||
{
|
||
System.Threading.Thread.Sleep(100);
|
||
}
|
||
foreach (string tagID in GetDgvSelectedRows(dgv_SignalViewer))
|
||
{
|
||
SqlOperation.SqlSignalTree.UpdateSignalResources(tagID, PP.ModelCode, PP.ProjectCode);
|
||
}
|
||
Refresh_SignalViewer();
|
||
});
|
||
}
|
||
|
||
private void TSM_UpdateSignalDataType_Click(object sender, EventArgs e)
|
||
{
|
||
CMS_SignalType.Show(Cursor.Position);
|
||
}
|
||
|
||
private void btn_SignalRobot_Create_Click(object sender, EventArgs e)
|
||
{
|
||
SqlOperation.SqlSignalTree.CreateSignal("", PP.ProjectCode, Type_Device.SignalRobot);
|
||
Refresh_SignalViewer();
|
||
|
||
if (this.dgv_SignalViewer.Rows.Count > 0)
|
||
{
|
||
this.dgv_SignalViewer.Rows[this.dgv_SignalViewer.Rows.Count - 1].Selected = true;
|
||
}
|
||
// ModelBasic.ErrDef.iErrHandler.ErrInfoTransmit("信号添加完成!");
|
||
}
|
||
}
|
||
}
|