Files
01-Siyuan-MesProject/DataMirrorTools_Simulator/P_SignalViewer/P_SignalViewer.cs
2026-05-29 10:07:05 +08:00

849 lines
30 KiB
C#
Raw Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
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("信号添加完成!");
}
}
}