Compare commits

...

10 Commits

Author SHA1 Message Date
164a105213 初始化到新仓库 2025-11-18 11:58:00 +08:00
04c258ceb6 新增如下命令:
SetRecord
GetReocrd
CombindRecord
2025-07-16 22:52:22 +08:00
1355c8ef0d 新增snlist三条命令 2025-07-16 21:10:09 +08:00
eaa75430e7 屏蔽 Service Controller的调试弹窗 2025-07-16 18:27:11 +08:00
000ce53775 修正数据库存储过程,解决缓存上传失败问题 2025-07-10 18:44:03 +08:00
3d56954029 1, ServiceController 中dbHost和ftpHost写入注册并步骤前置到lic验证之后
2,Testplan隐藏行改为对高度设置来实现
2025-07-03 22:55:57 +08:00
6d3dc10b0d DataService:
2.6.0.1:取消心跳包更新ftp和数据库服务器地址
2025-07-01 22:02:03 +08:00
16aa21550d 1,优化撤销功能,对调试结果信息不记录撤销
2,优化F10测试流程,连续调试时不清空测试记录
2025-06-12 21:59:43 +08:00
4581aa6492 修改FTP Client 连接参数,ftpClient.EncryptionMode = FtpEncryptionMode.None 2025-06-06 22:34:31 +08:00
aebe88bc2d 整合云端冲突,重新上传版本 2025-06-05 21:29:12 +08:00
107 changed files with 2686 additions and 19801 deletions

View File

@@ -186,12 +186,6 @@
<None Include="App.config" />
<None Include="packages.config" />
</ItemGroup>
<ItemGroup>
<ProjectReference Include="..\UTS_Core\UTS_Core.vbproj">
<Project>{33c6456c-f00d-41ac-a6fb-db0601495c6a}</Project>
<Name>UTS_Core</Name>
</ProjectReference>
</ItemGroup>
<ItemGroup>
<Content Include="iconfinder_Instagram_571111.ico" />
</ItemGroup>
@@ -207,6 +201,12 @@
<Install>false</Install>
</BootstrapperPackage>
</ItemGroup>
<ItemGroup>
<ProjectReference Include="..\UTS_Core\UTS_Core.vbproj">
<Project>{33c6456c-f00d-41ac-a6fb-db0601495c6a}</Project>
<Name>UTS_Core</Name>
</ProjectReference>
</ItemGroup>
<Import Project="$(MSBuildToolsPath)\Microsoft.VisualBasic.targets" />
<Target Name="EnsureNuGetPackageBuildImports" BeforeTargets="PrepareForBuild">
<PropertyGroup>

View File

@@ -134,14 +134,14 @@
</None>
<None Include="App.config" />
</ItemGroup>
<ItemGroup>
<Content Include="iconfinder_60_939814.ico" />
</ItemGroup>
<ItemGroup>
<ProjectReference Include="..\UTS_Core\UTS_Core.vbproj">
<Project>{33C6456C-F00D-41AC-A6FB-DB0601495C6A}</Project>
<Project>{33c6456c-f00d-41ac-a6fb-db0601495c6a}</Project>
<Name>UTS_Core</Name>
</ProjectReference>
</ItemGroup>
<ItemGroup>
<Content Include="iconfinder_60_939814.ico" />
</ItemGroup>
<Import Project="$(MSBuildToolsPath)\Microsoft.VisualBasic.targets" />
</Project>

View File

@@ -159,7 +159,7 @@
</ItemGroup>
<ItemGroup>
<ProjectReference Include="..\UTS_Core\UTS_Core.vbproj">
<Project>{33c6456c-f00d-41ac-a6fb-db0601495c6a}</Project>
<Project>{33C6456C-F00D-41AC-A6FB-DB0601495C6A}</Project>
<Name>UTS_Core</Name>
</ProjectReference>
</ItemGroup>

View File

@@ -31,5 +31,5 @@ Imports System.Runtime.InteropServices
'通过使用 "*",如下所示:
' <Assembly: AssemblyVersion("1.0.*")>
<Assembly: AssemblyVersion("2.5.6.0")>
<Assembly: AssemblyFileVersion("2.5.6.0")>
<Assembly: AssemblyVersion("2.6.0.1")>
<Assembly: AssemblyFileVersion("2.6.0.1")>

View File

@@ -614,7 +614,8 @@ Public Class Service1
Select Case command
Case UtsWebPacket.Commands.Heartbeat
DealHeartbeatPacket(param)
'todo:此处需要处理心跳包,获取公网IP与ftp地址
'DealHeartbeatPacket(param)
Case UtsWebPacket.Commands.SetLogType
replyData = DealSetLogTypePacket(param)
@@ -1433,6 +1434,7 @@ Public Class Service1
Private Function CheckLicense() As Boolean
Try
Dim licensePath As String = UtsRegistry.LicenseFilePath
UTS_Core.DebugLog.ApplicationLog.WriteInfoLog($"License Path:{licensePath}.")
_license = New License(licensePath)
_license.CheckLicense()
@@ -1456,8 +1458,6 @@ Public Class Service1
Dim packet() As Byte = _webPacker.FillPacket(CByte(UtsWebPacket.Commands.UploadTaskStatus), param.ToArray)
SendDataToWeb(_webUdpClient.Client, _webRemoteIP, packet)
ServiceLog.WriteDebugLog($"UploadAddTask :{JsonConvert.SerializeObject(task)}")
End Sub
''' <summary>

View File

@@ -155,7 +155,9 @@ Public Class DbSynchronizer
Catch ex As MySqlException
'记录失败
ServiceLog.WriteErrorLog($"UploadData Error:{ex.Message},ErrorNumber:{ex.Number}")
Dim id As String = row(LocalPrivate.CacheTable.ColNamesEnum.ID.ToString()).ToString()
ServiceLog.WriteErrorLog($"UploadData Error:{ex.Message},ErrorNumber:{ex.Number},ID:{id}")
Select Case ex.Number
Case MySqlErrorCode.DuplicateFieldName '重复字段

View File

@@ -127,14 +127,14 @@
</None>
<None Include="App.config" />
</ItemGroup>
<ItemGroup>
<Content Include="iconfinder_60_973992.ico" />
</ItemGroup>
<ItemGroup>
<ProjectReference Include="..\UTS_Core\UTS_Core.vbproj">
<Project>{33c6456c-f00d-41ac-a6fb-db0601495c6a}</Project>
<Name>UTS_Core</Name>
</ProjectReference>
</ItemGroup>
<ItemGroup>
<Content Include="iconfinder_60_973992.ico" />
</ItemGroup>
<Import Project="$(MSBuildToolsPath)\Microsoft.VisualBasic.targets" />
</Project>

View File

@@ -631,6 +631,12 @@ UTS_Core
</summary>
<returns></returns>
</member>
<member name="M:UTS_Core.Database.DbExecutor.OpenAsync">
<summary>
打开数据库连接
</summary>
<returns></returns>
</member>
<member name="M:UTS_Core.Database.DbExecutor.Close">
<summary>
关闭数据库连接
@@ -649,6 +655,13 @@ UTS_Core
<param name="commandText">执行的数据库命令文本</param>
<returns></returns>
</member>
<member name="M:UTS_Core.Database.DbExecutor.ExecuteNonQueryAsync(System.String)">
<summary>
运行非查询语句,返回执行该语句受到影响的行数
</summary>
<param name="commandText">执行的数据库命令文本</param>
<returns></returns>
</member>
<member name="M:UTS_Core.Database.DbExecutor.ExecuteNonQuery(System.String,System.Data.Common.DbParameterCollection)">
<summary>
使用命令参数模式执行非查询语句,返回执行该语句受到影响的行数
@@ -657,6 +670,14 @@ UTS_Core
<param name="commandParams">执行的数据库命令参数</param>
<returns></returns>
</member>
<member name="M:UTS_Core.Database.DbExecutor.ExecuteNonQueryAsync(System.String,System.Data.Common.DbParameterCollection)">
<summary>
使用命令参数模式执行非查询语句,返回执行该语句受到影响的行数
</summary>
<param name="commandText">执行的数据库命令文本</param>
<param name="commandParams">执行的数据库命令参数</param>
<returns></returns>
</member>
<member name="M:UTS_Core.Database.DbExecutor.ExecuteReader(System.String)">
<summary>
执行数据库语句,返回数据库读取流的句柄
@@ -664,6 +685,13 @@ UTS_Core
<param name="commandText">执行的数据库命令文本</param>
<returns></returns>
</member>
<member name="M:UTS_Core.Database.DbExecutor.ExecuteReaderAsync(System.String)">
<summary>
执行数据库语句,返回数据库读取流的句柄
</summary>
<param name="commandText">执行的数据库命令文本</param>
<returns></returns>
</member>
<member name="M:UTS_Core.Database.DbExecutor.ExecuteReader(System.String,System.Data.Common.DbParameterCollection)">
<summary>
使用命令参数模式执行数据库语句,返回数据库读取流的句柄
@@ -672,6 +700,14 @@ UTS_Core
<param name="commandParams">执行的数据库命令参数</param>
<returns></returns>
</member>
<member name="M:UTS_Core.Database.DbExecutor.ExecuteReaderAsync(System.String,System.Data.Common.DbParameterCollection)">
<summary>
使用命令参数模式执行数据库语句,返回数据库读取流的句柄
</summary>
<param name="commandText">执行的数据库命令文本</param>
<param name="commandParams">执行的数据库命令参数</param>
<returns></returns>
</member>
<member name="M:UTS_Core.Database.DbExecutor.ExecuteScalar(System.String)">
<summary>
执行数据库语句,返回查询结果的第一行第一列的内容
@@ -679,6 +715,13 @@ UTS_Core
<param name="commandText">执行的数据库命令文本</param>
<returns></returns>
</member>
<member name="M:UTS_Core.Database.DbExecutor.ExecuteScalarAsync(System.String)">
<summary>
执行数据库语句,返回查询结果的第一行第一列的内容
</summary>
<param name="commandText">执行的数据库命令文本</param>
<returns></returns>
</member>
<member name="M:UTS_Core.Database.DbExecutor.ExecuteScalar(System.String,System.Data.Common.DbParameterCollection)">
<summary>
使用命令参数模式执行数据库语句,返回查询结果的第一行第一列的内容
@@ -687,6 +730,14 @@ UTS_Core
<param name="commandParams">执行的数据库命令参数</param>
<returns></returns>
</member>
<member name="M:UTS_Core.Database.DbExecutor.ExecuteScalarAsync(System.String,System.Data.Common.DbParameterCollection)">
<summary>
使用命令参数模式执行数据库语句,返回查询结果的第一行第一列的内容
</summary>
<param name="commandText">执行的数据库命令文本</param>
<param name="commandParams">执行的数据库命令参数</param>
<returns></returns>
</member>
<member name="M:UTS_Core.Database.DbExecutor.ExecuteDataTable(System.String,System.Boolean)">
<summary>
执行数据库语句,返回执行结果返回的数据表,常用于查询命令
@@ -1462,53 +1513,48 @@ UTS_Core
<param name="path"></param>
<returns></returns>
</member>
<member name="M:UTS_Core.Undo.ICommand.Execute">
<summary>
运行一条需要记录在撤销栈的命令
</summary>
</member>
<member name="M:UTS_Core.Undo.ICommand.Redo">
<member name="M:UTS_Core.ICommand.Redo">
<summary>
重做命令
</summary>
</member>
<member name="M:UTS_Core.Undo.ICommand.Undo">
<member name="M:UTS_Core.ICommand.Undo">
<summary>
撤销命令
</summary>
</member>
<member name="M:UTS_Core.Undo.CommandManager.RunCommand(UTS_Core.Undo.ICommand)">
<member name="M:UTS_Core.CommandManager.RunCommand(UTS_Core.ICommand)">
<summary>
运行命令,并将命令添加至撤销堆栈
</summary>
<param name="command"></param>
</member>
<member name="M:UTS_Core.Undo.CommandManager.AddUndoCommand(UTS_Core.Undo.ICommand)">
<member name="M:UTS_Core.CommandManager.AddUndoCommand(UTS_Core.ICommand)">
<summary>
将命令添加至撤销堆栈
</summary>
</member>
<member name="M:UTS_Core.Undo.CommandManager.ClearUndoCommands">
<member name="M:UTS_Core.CommandManager.ClearUndoCommands">
<summary>
清空撤销命令堆栈
</summary>
</member>
<member name="M:UTS_Core.Undo.CommandManager.ClearRedoCommands">
<member name="M:UTS_Core.CommandManager.ClearRedoCommands">
<summary>
清空重做命令堆栈
</summary>
</member>
<member name="M:UTS_Core.Undo.CommandManager.ClearCommands">
<member name="M:UTS_Core.CommandManager.ClearCommands">
<summary>
清空撤销与重做命令堆栈
</summary>
</member>
<member name="M:UTS_Core.Undo.CommandManager.Undo">
<member name="M:UTS_Core.CommandManager.Undo">
<summary>
执行撤销命令
</summary>
</member>
<member name="M:UTS_Core.Undo.CommandManager.Redo">
<member name="M:UTS_Core.CommandManager.Redo">
<summary>
执行重做命令
</summary>
@@ -6020,15 +6066,57 @@ UTS_Core
</summary>
<returns></returns>
</member>
<member name="P:UTS_Core.UTSModule.Station.RowNodeChangedEventArgs.BeforeNode">
<summary>
修改前的节点
</summary>
<returns></returns>
</member>
<member name="P:UTS_Core.UTSModule.Station.RowNodeChangedEventArgs.ChangeType">
<summary>
修改类型
</summary>
<returns></returns>
</member>
<member name="P:UTS_Core.UTSModule.Station.StationPlan.ParentPacket">
<summary>测试流程所关联的项目站包信息</summary>
</member>
<member name="F:UTS_Core.UTSModule.Station.StationPlanGrid._grd">
<summary>表格控件对象</summary>
</member>
<member name="F:UTS_Core.UTSModule.Station.StationPlanGrid._headNode">
<summary>表格树状目录起始节点</summary>
</member>
<member name="F:UTS_Core.UTSModule.Station.StationPlanGrid._drawCol">
<summary>起始绘制列</summary>
</member>
<member name="F:UTS_Core.UTSModule.Station.StationPlanGrid._drawStartRow">
<summary>起始绘制行</summary>
</member>
<member name="F:UTS_Core.UTSModule.Station.StationPlanGrid._debugMode">
<summary>调试模式是否开启</summary>
</member>
<member name="F:UTS_Core.UTSModule.Station.StationPlanGrid._showNodeIcon">
<summary>是否显示节点图标</summary>
</member>
<member name="F:UTS_Core.UTSModule.Station.StationPlanGrid._uploading">
<summary>处于更新表格状态中,不触发表格单元格修改事件</summary>
</member>
<member name="F:UTS_Core.UTSModule.Station.StationPlanGrid._paramChar">
<summary>多个参数间的分割符号</summary>
</member>
<member name="F:UTS_Core.UTSModule.Station.StationPlanGrid._testCmdManager">
<summary>测试命令管理器</summary>
</member>
<member name="F:UTS_Core.UTSModule.Station.StationPlanGrid._errCodeManager">
<summary>错误代码管理器</summary>
</member>
<member name="F:UTS_Core.UTSModule.Station.StationPlanGrid._labelNames">
<summary>表格标签字段字典</summary>
</member>
<member name="F:UTS_Core.UTSModule.Station.StationPlanGrid._recordNames">
<summary>表格记录名称字段字典</summary>
</member>
<member name="F:UTS_Core.UTSModule.Station.StationPlanGrid.ActiveNode">
<summary>当前活动节点</summary>
</member>
@@ -6038,11 +6126,31 @@ UTS_Core
<member name="E:UTS_Core.UTSModule.Station.StationPlanGrid.RowNodeTextChanged">
<summary>节点文本被修改事件</summary>
</member>
<member name="F:UTS_Core.UTSModule.Station.StationPlanGrid._testCmdManager">
<summary>测试命令管理器</summary>
<member name="E:UTS_Core.UTSModule.Station.StationPlanGrid.PlanGridCommandChanged">
<summary>节点执行可撤销事件</summary>
</member>
<member name="F:UTS_Core.UTSModule.Station.StationPlanGrid._errCodeManager">
<summary>错误代码管理</summary>
<member name="F:UTS_Core.UTSModule.Station.StationPlanGrid.__userActionTimer">
<summary>粘贴操作计时</summary>
</member>
<member name="F:UTS_Core.UTSModule.Station.StationPlanGrid.UserActionTimeout">
<summary>计时器超时时间</summary>
</member>
<member name="M:UTS_Core.UTSModule.Station.StationPlanGrid.#ctor">
<summary>
构造函数
</summary>
</member>
<member name="M:UTS_Core.UTSModule.Station.StationPlanGrid.OnUserAction(UTS_Core.UTSModule.Station.RowNode)">
<summary>
表格内容改变处理事件
</summary>
</member>
<member name="M:UTS_Core.UTSModule.Station.StationPlanGrid._userActionTimer_Tick(System.Object,System.EventArgs)">
<summary>
粘贴操作计时器超时处理事件
</summary>
<param name="sender"></param>
<param name="e"></param>
</member>
<member name="P:UTS_Core.UTSModule.Station.StationPlanGrid.SkipEvent">
<summary>
@@ -6050,9 +6158,107 @@ UTS_Core
</summary>
<returns></returns>
</member>
<member name="M:UTS_Core.UTSModule.Station.StationPlanGrid.GridUpdateEventTrigger(FlexCell.Grid)">
<member name="M:UTS_Core.UTSModule.Station.StationPlanGrid.BackwardNavigation">
<summary>
对第二行的Action执行一遍操作以触发更新事件
向后导航
</summary>
</member>
<member name="M:UTS_Core.UTSModule.Station.StationPlanGrid.ForwardNavigation">
<summary>
向前导航
</summary>
</member>
<member name="M:UTS_Core.UTSModule.Station.StationPlanGrid.CanBackward">
<summary>
是否可以后退
</summary>
<returns></returns>
<remarks></remarks>
</member>
<member name="M:UTS_Core.UTSModule.Station.StationPlanGrid.CanForward">
<summary>
是否可以前进
</summary>
<returns></returns>
<remarks></remarks>
</member>
<member name="M:UTS_Core.UTSModule.Station.StationPlanGrid.ClearNavigation">
<summary>
</summary>
</member>
<member name="M:UTS_Core.UTSModule.Station.StationPlanGrid.IsExistLabelName(System.String)">
<summary>
当前模块名是否已存在
</summary>
<param name="labelName"></param>
<returns></returns>
</member>
<member name="M:UTS_Core.UTSModule.Station.StationPlanGrid.IsExistRecordName(System.String)">
<summary>
当前字段名
</summary>
<param name="recordName"></param>
<returns></returns>
</member>
<member name="M:UTS_Core.UTSModule.Station.StationPlanGrid.ClearLabelNames">
<summary>
清空标签名称
</summary>
</member>
<member name="M:UTS_Core.UTSModule.Station.StationPlanGrid.ClearRecordNames">
<summary>
清空记录名称
</summary>
</member>
<member name="M:UTS_Core.UTSModule.Station.StationPlanGrid.AddLabelName(System.String,System.Int32)">
<summary>
添加标签名称
</summary>
<param name="labelName">标签名称</param>
<param name="row">行号</param>
</member>
<member name="M:UTS_Core.UTSModule.Station.StationPlanGrid.AddRecordName(System.String,System.Int32)">
<summary>
添加记录名称
</summary>
<param name="recordName">记录名</param>
<param name="row">行号</param>
</member>
<member name="M:UTS_Core.UTSModule.Station.StationPlanGrid.RemoveLabelName(System.String)">
<summary>
移出标签名称
</summary>
<param name="labelName">标签名称</param>
</member>
<member name="M:UTS_Core.UTSModule.Station.StationPlanGrid.RemoveRecordName(System.String)">
<summary>
移出记录名称
</summary>
<param name="recordName">记录名称</param>
</member>
<member name="M:UTS_Core.UTSModule.Station.StationPlanGrid.GetLabelNameGridRow(System.String)">
<summary>
获取标签名称行号
</summary>
<param name="labelName"></param>
<returns></returns>
</member>
<member name="M:UTS_Core.UTSModule.Station.StationPlanGrid.GetRecordNameGridRow(System.String)">
<summary>
获取记录名称行号
</summary>
<param name="recordName"></param>
<returns></returns>
</member>
<member name="M:UTS_Core.UTSModule.Station.StationPlanGrid.ReflushLabelNames">
<summary>
从表格中重载标签名称
</summary>
</member>
<member name="M:UTS_Core.UTSModule.Station.StationPlanGrid.ReflushRecordNames">
<summary>
从表格中重载记录名称
</summary>
</member>
<member name="M:UTS_Core.UTSModule.Station.StationPlanGrid.Grid_MouseLeave(System.Object,System.EventArgs)">
@@ -6065,38 +6271,16 @@ UTS_Core
光标进入grd表格时原底色切换到选中行
</summary>
</member>
<member name="M:UTS_Core.UTSModule.Station.StationPlanGrid.setRowTextForeColor(System.String,System.Boolean,UTS_Core.UTSModule.Station.RowNode.RowTypeEnum)">
<summary>
根据CmdType 和 isAction 返回该行字体颜色
</summary>
<returns></returns>
</member>
<member name="M:UTS_Core.UTSModule.Station.StationPlanGrid.Mouse_MoveOnNode_BackColorRepain(FlexCell.Grid,System.Int32,System.Int32,System.Drawing.Color)">
<summary>
鼠标移动到节点位置时所有子节点背景着色
</summary>
</member>
<member name="M:UTS_Core.UTSModule.Station.StationPlanGrid.getRowActionEn(FlexCell.Grid,System.Int32)">
<member name="M:UTS_Core.UTSModule.Station.StationPlanGrid.NodeRowTypeChanged(UTS_Core.UTSModule.Station.RowNode)">
<summary>
FixModule节点Action变化时子节点字体重新着色
节点类型变更,修改节点行样式
</summary>
</member>
<member name="M:UTS_Core.UTSModule.Station.StationPlanGrid.NodeAction_Change(FlexCell.Grid,System.Int32,System.Int32,System.Boolean)">
<summary>
FixModule节点Action变化时子节点字体重新着色
</summary>
</member>
<member name="M:UTS_Core.UTSModule.Station.StationPlanGrid.Grid_Repain_By_ActionEn(FlexCell.Grid)">
<summary>
根据总表状态对单元格字体重新着色
</summary>
</member>
<member name="M:UTS_Core.UTSModule.Station.StationPlanGrid.UpdateGridInfo(FlexCell.Grid)">
<summary>
遍历表格,并更新到全局数组
</summary>
<param name="node"></param>
</member>
<member name="M:UTS_Core.UTSModule.Station.StationPlanGrid.NodeActionChanged(UTS_Core.UTSModule.Station.RowNode)">
<summary>
@@ -6115,16 +6299,6 @@ UTS_Core
选定行使能或清除Action选项
</summary>
</member>
<member name="M:UTS_Core.UTSModule.Station.StationPlanGrid.Call_UpdateGridActionInfo">
<summary>
更新表格内容到缓存,但是并不重新着色
</summary>
</member>
<member name="M:UTS_Core.UTSModule.Station.StationPlanGrid.UpdateGridActionInfo(FlexCell.Grid)">
<summary>
更新ActionEn信息
</summary>
</member>
<member name="M:UTS_Core.UTSModule.Station.StationPlanGrid.Grid_MouseMove(System.Object,System.Windows.Forms.MouseEventArgs)">
<summary>
光标移动时,所在行底色高亮
@@ -6171,18 +6345,24 @@ UTS_Core
初始化测试站表格
</summary>
</member>
<member name="M:UTS_Core.UTSModule.Station.StationPlanGrid.UpdateGrid">
<summary>
加载测试文件后更新表格
</summary>
<remarks></remarks>
</member>
<member name="M:UTS_Core.UTSModule.Station.StationPlanGrid.ExpandRows(UTS_Core.UTSModule.Station.RowNode)">
<summary>
展开行节点
</summary>
<param name="node"></param>
</member>
<member name="M:UTS_Core.UTSModule.Station.StationPlanGrid.NodeMoveLeft(System.Int32)">
<member name="M:UTS_Core.UTSModule.Station.StationPlanGrid.NodeMoveLeft(System.Int32,System.Int32)">
<summary>
节点升级
</summary>
</member>
<member name="M:UTS_Core.UTSModule.Station.StationPlanGrid.NodeMoveRight(System.Int32)">
<member name="M:UTS_Core.UTSModule.Station.StationPlanGrid.NodeMoveRight(System.Int32,System.Int32)">
<summary>
节点降级
</summary>
@@ -6841,6 +7021,12 @@ UTS_Core
</summary>
<returns></returns>
</member>
<member name="P:UTS_Core.UTSModule.Station.RowNode.CanMove">
<summary>
允许移动节点移动
</summary>
<returns></returns>
</member>
<member name="P:UTS_Core.UTSModule.Station.RowNode.IsRetry">
<summary>
当前节点是否处于重试状态
@@ -9723,6 +9909,46 @@ UTS系列App与UtsCore交互为避免重复书写产生的中间类
</summary>
<returns></returns>
</member>
<member name="P:UTS_Core.GridNavigationManager.IsRunning">
<summary>
是否正在执行导航操作
</summary>
<remarks></remarks>
</member>
<member name="P:UTS_Core.GridNavigationManager.CanForward">
<summary>
是否可以后退
</summary>
<returns></returns>
</member>
<member name="P:UTS_Core.GridNavigationManager.CanBackward">
<summary>
是否可以前进
</summary>
<returns></returns>
<remarks></remarks>
</member>
<member name="M:UTS_Core.GridNavigationManager.Append(UTS_Core.INavigation)">
<summary>
添加导航
<param name="navigation">导航</param>
</summary>
</member>
<member name="M:UTS_Core.GridNavigationManager.RemoveForward">
<summary>
</summary>
</member>
<member name="M:UTS_Core.INavigation.Backward">
<summary>
向后导航
</summary>
</member>
<member name="M:UTS_Core.INavigation.Forward">
<summary>
向前导航
</summary>
</member>
<member name="M:UTS_Core.utsLabel.RunMode">
<summary>
解析模式,并且确定有关参数

View File

@@ -1 +1 @@
77b918b156a866c382b181d57c6af8b89ddf49c4d4ce2db2a565d316becdb019
47852b526cd4d95af06fa67187205a4f4944888d4102f4f45b3e0d33d6b45850

View File

@@ -336,3 +336,56 @@ D:\ML\Wen\AUTS\AUTS_ProductEntry\bin\Debug\ZstdSharp.dll
D:\ML\Wen\AUTS\AUTS_ProductEntry\bin\Debug\System.Threading.Tasks.Extensions.dll
D:\ML\Wen\AUTS\AUTS_ProductEntry\bin\Debug\SharpCompress.pdb
D:\ML\Wen\AUTS\AUTS_ProductEntry\bin\Debug\System.Threading.Tasks.Extensions.xml
C:\Project\AUTS_ProductEntry\obj\Debug\AUTS_ProductEntry.vbproj.AssemblyReference.cache
C:\Project\AUTS_ProductEntry\obj\Debug\AUTS_ProductEntry.exe.config
C:\Project\AUTS_ProductEntry\obj\Debug\AUTS_ProductEntry.FrmMain.resources
C:\Project\AUTS_ProductEntry\obj\Debug\AUTS_ProductEntry.Resources.resources
C:\Project\AUTS_ProductEntry\obj\Debug\AUTS_ProductEntry.vbproj.GenerateResource.cache
C:\Project\AUTS_ProductEntry\obj\Debug\AUTS_ProductEntry.vbproj.CoreCompileInputs.cache
C:\Project\AUTS_ProductEntry\obj\Debug\AUTS_ProductEntry.exe
C:\Project\AUTS_ProductEntry\obj\Debug\AUTS_ProductEntry.xml
C:\Project\AUTS_ProductEntry\obj\Debug\AUTS_ProductEntry.pdb
C:\Project\AUTS_ProductEntry\bin\Debug\x64\SQLite.Interop.dll
C:\Project\AUTS_ProductEntry\bin\Debug\x86\SQLite.Interop.dll
C:\Project\AUTS_ProductEntry\bin\Debug\AUTS_ProductEntry.exe.config
C:\Project\AUTS_ProductEntry\bin\Debug\AUTS_ProductEntry.exe
C:\Project\AUTS_ProductEntry\bin\Debug\AUTS_ProductEntry.pdb
C:\Project\AUTS_ProductEntry\bin\Debug\AUTS_ProductEntry.xml
C:\Project\AUTS_ProductEntry\bin\Debug\UTS_Core.dll
C:\Project\AUTS_ProductEntry\bin\Debug\SharpCompress.dll
C:\Project\AUTS_ProductEntry\bin\Debug\FluentFTP.dll
C:\Project\AUTS_ProductEntry\bin\Debug\FlexCell.dll
C:\Project\AUTS_ProductEntry\bin\Debug\Newtonsoft.Json.dll
C:\Project\AUTS_ProductEntry\bin\Debug\TeeChart.dll
C:\Project\AUTS_ProductEntry\bin\Debug\MySql.Data.dll
C:\Project\AUTS_ProductEntry\bin\Debug\System.Memory.dll
C:\Project\AUTS_ProductEntry\bin\Debug\System.Buffers.dll
C:\Project\AUTS_ProductEntry\bin\Debug\ZstdSharp.dll
C:\Project\AUTS_ProductEntry\bin\Debug\Google.Protobuf.dll
C:\Project\AUTS_ProductEntry\bin\Debug\Zstandard.Net.dll
C:\Project\AUTS_ProductEntry\bin\Debug\K4os.Compression.LZ4.Streams.dll
C:\Project\AUTS_ProductEntry\bin\Debug\BouncyCastle.Crypto.dll
C:\Project\AUTS_ProductEntry\bin\Debug\Ubiety.Dns.Core.dll
C:\Project\AUTS_ProductEntry\bin\Debug\System.Numerics.Vectors.dll
C:\Project\AUTS_ProductEntry\bin\Debug\System.Runtime.CompilerServices.Unsafe.dll
C:\Project\AUTS_ProductEntry\bin\Debug\System.Threading.Tasks.Extensions.dll
C:\Project\AUTS_ProductEntry\bin\Debug\K4os.Compression.LZ4.dll
C:\Project\AUTS_ProductEntry\bin\Debug\K4os.Hash.xxHash.dll
C:\Project\AUTS_ProductEntry\bin\Debug\UTS_Core.pdb
C:\Project\AUTS_ProductEntry\bin\Debug\UTS_Core.xml
C:\Project\AUTS_ProductEntry\bin\Debug\UTS_Core.dll.config
C:\Project\AUTS_ProductEntry\bin\Debug\SharpCompress.pdb
C:\Project\AUTS_ProductEntry\bin\Debug\FluentFTP.xml
C:\Project\AUTS_ProductEntry\bin\Debug\Newtonsoft.Json.xml
C:\Project\AUTS_ProductEntry\bin\Debug\MySql.Data.xml
C:\Project\AUTS_ProductEntry\bin\Debug\System.Memory.xml
C:\Project\AUTS_ProductEntry\bin\Debug\System.Buffers.xml
C:\Project\AUTS_ProductEntry\bin\Debug\Google.Protobuf.pdb
C:\Project\AUTS_ProductEntry\bin\Debug\Google.Protobuf.xml
C:\Project\AUTS_ProductEntry\bin\Debug\K4os.Compression.LZ4.Streams.xml
C:\Project\AUTS_ProductEntry\bin\Debug\System.Numerics.Vectors.xml
C:\Project\AUTS_ProductEntry\bin\Debug\System.Runtime.CompilerServices.Unsafe.xml
C:\Project\AUTS_ProductEntry\bin\Debug\System.Threading.Tasks.Extensions.xml
C:\Project\AUTS_ProductEntry\bin\Debug\K4os.Compression.LZ4.xml
C:\Project\AUTS_ProductEntry\bin\Debug\K4os.Hash.xxHash.xml
C:\Project\AUTS_ProductEntry\obj\Debug\AUTS_Pro.0CE47F12.Up2Date

View File

@@ -179,16 +179,16 @@
<None Include="App.config" />
<None Include="packages.config" />
</ItemGroup>
<ItemGroup>
<ProjectReference Include="..\UTS_Core\UTS_Core.vbproj">
<Project>{33c6456c-f00d-41ac-a6fb-db0601495c6a}</Project>
<Name>UTS_Core</Name>
</ProjectReference>
</ItemGroup>
<ItemGroup>
<Content Include="1287509_tools_configuration_control_options_repair_icon.ico" />
<None Include="bin\Debug\RepairImage\NoImg40_30.png" />
<None Include="Resources\NoImagePreview.bmp" />
</ItemGroup>
<ItemGroup>
<ProjectReference Include="..\UTS_Core\UTS_Core.vbproj">
<Project>{33C6456C-F00D-41AC-A6FB-DB0601495C6A}</Project>
<Name>UTS_Core</Name>
</ProjectReference>
</ItemGroup>
<Import Project="$(MSBuildToolsPath)\Microsoft.VisualBasic.targets" />
</Project>

Binary file not shown.

Binary file not shown.

View File

@@ -631,6 +631,12 @@ UTS_Core
</summary>
<returns></returns>
</member>
<member name="M:UTS_Core.Database.DbExecutor.OpenAsync">
<summary>
打开数据库连接
</summary>
<returns></returns>
</member>
<member name="M:UTS_Core.Database.DbExecutor.Close">
<summary>
关闭数据库连接
@@ -649,6 +655,13 @@ UTS_Core
<param name="commandText">执行的数据库命令文本</param>
<returns></returns>
</member>
<member name="M:UTS_Core.Database.DbExecutor.ExecuteNonQueryAsync(System.String)">
<summary>
运行非查询语句,返回执行该语句受到影响的行数
</summary>
<param name="commandText">执行的数据库命令文本</param>
<returns></returns>
</member>
<member name="M:UTS_Core.Database.DbExecutor.ExecuteNonQuery(System.String,System.Data.Common.DbParameterCollection)">
<summary>
使用命令参数模式执行非查询语句,返回执行该语句受到影响的行数
@@ -657,6 +670,14 @@ UTS_Core
<param name="commandParams">执行的数据库命令参数</param>
<returns></returns>
</member>
<member name="M:UTS_Core.Database.DbExecutor.ExecuteNonQueryAsync(System.String,System.Data.Common.DbParameterCollection)">
<summary>
使用命令参数模式执行非查询语句,返回执行该语句受到影响的行数
</summary>
<param name="commandText">执行的数据库命令文本</param>
<param name="commandParams">执行的数据库命令参数</param>
<returns></returns>
</member>
<member name="M:UTS_Core.Database.DbExecutor.ExecuteReader(System.String)">
<summary>
执行数据库语句,返回数据库读取流的句柄
@@ -664,6 +685,13 @@ UTS_Core
<param name="commandText">执行的数据库命令文本</param>
<returns></returns>
</member>
<member name="M:UTS_Core.Database.DbExecutor.ExecuteReaderAsync(System.String)">
<summary>
执行数据库语句,返回数据库读取流的句柄
</summary>
<param name="commandText">执行的数据库命令文本</param>
<returns></returns>
</member>
<member name="M:UTS_Core.Database.DbExecutor.ExecuteReader(System.String,System.Data.Common.DbParameterCollection)">
<summary>
使用命令参数模式执行数据库语句,返回数据库读取流的句柄
@@ -672,6 +700,14 @@ UTS_Core
<param name="commandParams">执行的数据库命令参数</param>
<returns></returns>
</member>
<member name="M:UTS_Core.Database.DbExecutor.ExecuteReaderAsync(System.String,System.Data.Common.DbParameterCollection)">
<summary>
使用命令参数模式执行数据库语句,返回数据库读取流的句柄
</summary>
<param name="commandText">执行的数据库命令文本</param>
<param name="commandParams">执行的数据库命令参数</param>
<returns></returns>
</member>
<member name="M:UTS_Core.Database.DbExecutor.ExecuteScalar(System.String)">
<summary>
执行数据库语句,返回查询结果的第一行第一列的内容
@@ -679,6 +715,13 @@ UTS_Core
<param name="commandText">执行的数据库命令文本</param>
<returns></returns>
</member>
<member name="M:UTS_Core.Database.DbExecutor.ExecuteScalarAsync(System.String)">
<summary>
执行数据库语句,返回查询结果的第一行第一列的内容
</summary>
<param name="commandText">执行的数据库命令文本</param>
<returns></returns>
</member>
<member name="M:UTS_Core.Database.DbExecutor.ExecuteScalar(System.String,System.Data.Common.DbParameterCollection)">
<summary>
使用命令参数模式执行数据库语句,返回查询结果的第一行第一列的内容
@@ -687,6 +730,14 @@ UTS_Core
<param name="commandParams">执行的数据库命令参数</param>
<returns></returns>
</member>
<member name="M:UTS_Core.Database.DbExecutor.ExecuteScalarAsync(System.String,System.Data.Common.DbParameterCollection)">
<summary>
使用命令参数模式执行数据库语句,返回查询结果的第一行第一列的内容
</summary>
<param name="commandText">执行的数据库命令文本</param>
<param name="commandParams">执行的数据库命令参数</param>
<returns></returns>
</member>
<member name="M:UTS_Core.Database.DbExecutor.ExecuteDataTable(System.String,System.Boolean)">
<summary>
执行数据库语句,返回执行结果返回的数据表,常用于查询命令
@@ -1462,53 +1513,48 @@ UTS_Core
<param name="path"></param>
<returns></returns>
</member>
<member name="M:UTS_Core.Undo.ICommand.Execute">
<summary>
运行一条需要记录在撤销栈的命令
</summary>
</member>
<member name="M:UTS_Core.Undo.ICommand.Redo">
<member name="M:UTS_Core.ICommand.Redo">
<summary>
重做命令
</summary>
</member>
<member name="M:UTS_Core.Undo.ICommand.Undo">
<member name="M:UTS_Core.ICommand.Undo">
<summary>
撤销命令
</summary>
</member>
<member name="M:UTS_Core.Undo.CommandManager.RunCommand(UTS_Core.Undo.ICommand)">
<member name="M:UTS_Core.CommandManager.RunCommand(UTS_Core.ICommand)">
<summary>
运行命令,并将命令添加至撤销堆栈
</summary>
<param name="command"></param>
</member>
<member name="M:UTS_Core.Undo.CommandManager.AddUndoCommand(UTS_Core.Undo.ICommand)">
<member name="M:UTS_Core.CommandManager.AddUndoCommand(UTS_Core.ICommand)">
<summary>
将命令添加至撤销堆栈
</summary>
</member>
<member name="M:UTS_Core.Undo.CommandManager.ClearUndoCommands">
<member name="M:UTS_Core.CommandManager.ClearUndoCommands">
<summary>
清空撤销命令堆栈
</summary>
</member>
<member name="M:UTS_Core.Undo.CommandManager.ClearRedoCommands">
<member name="M:UTS_Core.CommandManager.ClearRedoCommands">
<summary>
清空重做命令堆栈
</summary>
</member>
<member name="M:UTS_Core.Undo.CommandManager.ClearCommands">
<member name="M:UTS_Core.CommandManager.ClearCommands">
<summary>
清空撤销与重做命令堆栈
</summary>
</member>
<member name="M:UTS_Core.Undo.CommandManager.Undo">
<member name="M:UTS_Core.CommandManager.Undo">
<summary>
执行撤销命令
</summary>
</member>
<member name="M:UTS_Core.Undo.CommandManager.Redo">
<member name="M:UTS_Core.CommandManager.Redo">
<summary>
执行重做命令
</summary>
@@ -6020,15 +6066,57 @@ UTS_Core
</summary>
<returns></returns>
</member>
<member name="P:UTS_Core.UTSModule.Station.RowNodeChangedEventArgs.BeforeNode">
<summary>
修改前的节点
</summary>
<returns></returns>
</member>
<member name="P:UTS_Core.UTSModule.Station.RowNodeChangedEventArgs.ChangeType">
<summary>
修改类型
</summary>
<returns></returns>
</member>
<member name="P:UTS_Core.UTSModule.Station.StationPlan.ParentPacket">
<summary>测试流程所关联的项目站包信息</summary>
</member>
<member name="F:UTS_Core.UTSModule.Station.StationPlanGrid._grd">
<summary>表格控件对象</summary>
</member>
<member name="F:UTS_Core.UTSModule.Station.StationPlanGrid._headNode">
<summary>表格树状目录起始节点</summary>
</member>
<member name="F:UTS_Core.UTSModule.Station.StationPlanGrid._drawCol">
<summary>起始绘制列</summary>
</member>
<member name="F:UTS_Core.UTSModule.Station.StationPlanGrid._drawStartRow">
<summary>起始绘制行</summary>
</member>
<member name="F:UTS_Core.UTSModule.Station.StationPlanGrid._debugMode">
<summary>调试模式是否开启</summary>
</member>
<member name="F:UTS_Core.UTSModule.Station.StationPlanGrid._showNodeIcon">
<summary>是否显示节点图标</summary>
</member>
<member name="F:UTS_Core.UTSModule.Station.StationPlanGrid._uploading">
<summary>处于更新表格状态中,不触发表格单元格修改事件</summary>
</member>
<member name="F:UTS_Core.UTSModule.Station.StationPlanGrid._paramChar">
<summary>多个参数间的分割符号</summary>
</member>
<member name="F:UTS_Core.UTSModule.Station.StationPlanGrid._testCmdManager">
<summary>测试命令管理器</summary>
</member>
<member name="F:UTS_Core.UTSModule.Station.StationPlanGrid._errCodeManager">
<summary>错误代码管理器</summary>
</member>
<member name="F:UTS_Core.UTSModule.Station.StationPlanGrid._labelNames">
<summary>表格标签字段字典</summary>
</member>
<member name="F:UTS_Core.UTSModule.Station.StationPlanGrid._recordNames">
<summary>表格记录名称字段字典</summary>
</member>
<member name="F:UTS_Core.UTSModule.Station.StationPlanGrid.ActiveNode">
<summary>当前活动节点</summary>
</member>
@@ -6038,11 +6126,31 @@ UTS_Core
<member name="E:UTS_Core.UTSModule.Station.StationPlanGrid.RowNodeTextChanged">
<summary>节点文本被修改事件</summary>
</member>
<member name="F:UTS_Core.UTSModule.Station.StationPlanGrid._testCmdManager">
<summary>测试命令管理器</summary>
<member name="E:UTS_Core.UTSModule.Station.StationPlanGrid.PlanGridCommandChanged">
<summary>节点执行可撤销事件</summary>
</member>
<member name="F:UTS_Core.UTSModule.Station.StationPlanGrid._errCodeManager">
<summary>错误代码管理</summary>
<member name="F:UTS_Core.UTSModule.Station.StationPlanGrid.__userActionTimer">
<summary>粘贴操作计时</summary>
</member>
<member name="F:UTS_Core.UTSModule.Station.StationPlanGrid.UserActionTimeout">
<summary>计时器超时时间</summary>
</member>
<member name="M:UTS_Core.UTSModule.Station.StationPlanGrid.#ctor">
<summary>
构造函数
</summary>
</member>
<member name="M:UTS_Core.UTSModule.Station.StationPlanGrid.OnUserAction(UTS_Core.UTSModule.Station.RowNode)">
<summary>
表格内容改变处理事件
</summary>
</member>
<member name="M:UTS_Core.UTSModule.Station.StationPlanGrid._userActionTimer_Tick(System.Object,System.EventArgs)">
<summary>
粘贴操作计时器超时处理事件
</summary>
<param name="sender"></param>
<param name="e"></param>
</member>
<member name="P:UTS_Core.UTSModule.Station.StationPlanGrid.SkipEvent">
<summary>
@@ -6050,9 +6158,107 @@ UTS_Core
</summary>
<returns></returns>
</member>
<member name="M:UTS_Core.UTSModule.Station.StationPlanGrid.GridUpdateEventTrigger(FlexCell.Grid)">
<member name="M:UTS_Core.UTSModule.Station.StationPlanGrid.BackwardNavigation">
<summary>
对第二行的Action执行一遍操作以触发更新事件
向后导航
</summary>
</member>
<member name="M:UTS_Core.UTSModule.Station.StationPlanGrid.ForwardNavigation">
<summary>
向前导航
</summary>
</member>
<member name="M:UTS_Core.UTSModule.Station.StationPlanGrid.CanBackward">
<summary>
是否可以后退
</summary>
<returns></returns>
<remarks></remarks>
</member>
<member name="M:UTS_Core.UTSModule.Station.StationPlanGrid.CanForward">
<summary>
是否可以前进
</summary>
<returns></returns>
<remarks></remarks>
</member>
<member name="M:UTS_Core.UTSModule.Station.StationPlanGrid.ClearNavigation">
<summary>
</summary>
</member>
<member name="M:UTS_Core.UTSModule.Station.StationPlanGrid.IsExistLabelName(System.String)">
<summary>
当前模块名是否已存在
</summary>
<param name="labelName"></param>
<returns></returns>
</member>
<member name="M:UTS_Core.UTSModule.Station.StationPlanGrid.IsExistRecordName(System.String)">
<summary>
当前字段名
</summary>
<param name="recordName"></param>
<returns></returns>
</member>
<member name="M:UTS_Core.UTSModule.Station.StationPlanGrid.ClearLabelNames">
<summary>
清空标签名称
</summary>
</member>
<member name="M:UTS_Core.UTSModule.Station.StationPlanGrid.ClearRecordNames">
<summary>
清空记录名称
</summary>
</member>
<member name="M:UTS_Core.UTSModule.Station.StationPlanGrid.AddLabelName(System.String,System.Int32)">
<summary>
添加标签名称
</summary>
<param name="labelName">标签名称</param>
<param name="row">行号</param>
</member>
<member name="M:UTS_Core.UTSModule.Station.StationPlanGrid.AddRecordName(System.String,System.Int32)">
<summary>
添加记录名称
</summary>
<param name="recordName">记录名</param>
<param name="row">行号</param>
</member>
<member name="M:UTS_Core.UTSModule.Station.StationPlanGrid.RemoveLabelName(System.String)">
<summary>
移出标签名称
</summary>
<param name="labelName">标签名称</param>
</member>
<member name="M:UTS_Core.UTSModule.Station.StationPlanGrid.RemoveRecordName(System.String)">
<summary>
移出记录名称
</summary>
<param name="recordName">记录名称</param>
</member>
<member name="M:UTS_Core.UTSModule.Station.StationPlanGrid.GetLabelNameGridRow(System.String)">
<summary>
获取标签名称行号
</summary>
<param name="labelName"></param>
<returns></returns>
</member>
<member name="M:UTS_Core.UTSModule.Station.StationPlanGrid.GetRecordNameGridRow(System.String)">
<summary>
获取记录名称行号
</summary>
<param name="recordName"></param>
<returns></returns>
</member>
<member name="M:UTS_Core.UTSModule.Station.StationPlanGrid.ReflushLabelNames">
<summary>
从表格中重载标签名称
</summary>
</member>
<member name="M:UTS_Core.UTSModule.Station.StationPlanGrid.ReflushRecordNames">
<summary>
从表格中重载记录名称
</summary>
</member>
<member name="M:UTS_Core.UTSModule.Station.StationPlanGrid.Grid_MouseLeave(System.Object,System.EventArgs)">
@@ -6065,38 +6271,16 @@ UTS_Core
光标进入grd表格时原底色切换到选中行
</summary>
</member>
<member name="M:UTS_Core.UTSModule.Station.StationPlanGrid.setRowTextForeColor(System.String,System.Boolean,UTS_Core.UTSModule.Station.RowNode.RowTypeEnum)">
<summary>
根据CmdType 和 isAction 返回该行字体颜色
</summary>
<returns></returns>
</member>
<member name="M:UTS_Core.UTSModule.Station.StationPlanGrid.Mouse_MoveOnNode_BackColorRepain(FlexCell.Grid,System.Int32,System.Int32,System.Drawing.Color)">
<summary>
鼠标移动到节点位置时所有子节点背景着色
</summary>
</member>
<member name="M:UTS_Core.UTSModule.Station.StationPlanGrid.getRowActionEn(FlexCell.Grid,System.Int32)">
<member name="M:UTS_Core.UTSModule.Station.StationPlanGrid.NodeRowTypeChanged(UTS_Core.UTSModule.Station.RowNode)">
<summary>
FixModule节点Action变化时子节点字体重新着色
节点类型变更,修改节点行样式
</summary>
</member>
<member name="M:UTS_Core.UTSModule.Station.StationPlanGrid.NodeAction_Change(FlexCell.Grid,System.Int32,System.Int32,System.Boolean)">
<summary>
FixModule节点Action变化时子节点字体重新着色
</summary>
</member>
<member name="M:UTS_Core.UTSModule.Station.StationPlanGrid.Grid_Repain_By_ActionEn(FlexCell.Grid)">
<summary>
根据总表状态对单元格字体重新着色
</summary>
</member>
<member name="M:UTS_Core.UTSModule.Station.StationPlanGrid.UpdateGridInfo(FlexCell.Grid)">
<summary>
遍历表格,并更新到全局数组
</summary>
<param name="node"></param>
</member>
<member name="M:UTS_Core.UTSModule.Station.StationPlanGrid.NodeActionChanged(UTS_Core.UTSModule.Station.RowNode)">
<summary>
@@ -6115,16 +6299,6 @@ UTS_Core
选定行使能或清除Action选项
</summary>
</member>
<member name="M:UTS_Core.UTSModule.Station.StationPlanGrid.Call_UpdateGridActionInfo">
<summary>
更新表格内容到缓存,但是并不重新着色
</summary>
</member>
<member name="M:UTS_Core.UTSModule.Station.StationPlanGrid.UpdateGridActionInfo(FlexCell.Grid)">
<summary>
更新ActionEn信息
</summary>
</member>
<member name="M:UTS_Core.UTSModule.Station.StationPlanGrid.Grid_MouseMove(System.Object,System.Windows.Forms.MouseEventArgs)">
<summary>
光标移动时,所在行底色高亮
@@ -6171,18 +6345,24 @@ UTS_Core
初始化测试站表格
</summary>
</member>
<member name="M:UTS_Core.UTSModule.Station.StationPlanGrid.UpdateGrid">
<summary>
加载测试文件后更新表格
</summary>
<remarks></remarks>
</member>
<member name="M:UTS_Core.UTSModule.Station.StationPlanGrid.ExpandRows(UTS_Core.UTSModule.Station.RowNode)">
<summary>
展开行节点
</summary>
<param name="node"></param>
</member>
<member name="M:UTS_Core.UTSModule.Station.StationPlanGrid.NodeMoveLeft(System.Int32)">
<member name="M:UTS_Core.UTSModule.Station.StationPlanGrid.NodeMoveLeft(System.Int32,System.Int32)">
<summary>
节点升级
</summary>
</member>
<member name="M:UTS_Core.UTSModule.Station.StationPlanGrid.NodeMoveRight(System.Int32)">
<member name="M:UTS_Core.UTSModule.Station.StationPlanGrid.NodeMoveRight(System.Int32,System.Int32)">
<summary>
节点降级
</summary>
@@ -6841,6 +7021,12 @@ UTS_Core
</summary>
<returns></returns>
</member>
<member name="P:UTS_Core.UTSModule.Station.RowNode.CanMove">
<summary>
允许移动节点移动
</summary>
<returns></returns>
</member>
<member name="P:UTS_Core.UTSModule.Station.RowNode.IsRetry">
<summary>
当前节点是否处于重试状态
@@ -9723,6 +9909,46 @@ UTS系列App与UtsCore交互为避免重复书写产生的中间类
</summary>
<returns></returns>
</member>
<member name="P:UTS_Core.GridNavigationManager.IsRunning">
<summary>
是否正在执行导航操作
</summary>
<remarks></remarks>
</member>
<member name="P:UTS_Core.GridNavigationManager.CanForward">
<summary>
是否可以后退
</summary>
<returns></returns>
</member>
<member name="P:UTS_Core.GridNavigationManager.CanBackward">
<summary>
是否可以前进
</summary>
<returns></returns>
<remarks></remarks>
</member>
<member name="M:UTS_Core.GridNavigationManager.Append(UTS_Core.INavigation)">
<summary>
添加导航
<param name="navigation">导航</param>
</summary>
</member>
<member name="M:UTS_Core.GridNavigationManager.RemoveForward">
<summary>
</summary>
</member>
<member name="M:UTS_Core.INavigation.Backward">
<summary>
向后导航
</summary>
</member>
<member name="M:UTS_Core.INavigation.Forward">
<summary>
向前导航
</summary>
</member>
<member name="M:UTS_Core.utsLabel.RunMode">
<summary>
解析模式,并且确定有关参数

File diff suppressed because one or more lines are too long

View File

@@ -222,12 +222,6 @@
<None Include="App.config" />
<None Include="packages.config" />
</ItemGroup>
<ItemGroup>
<ProjectReference Include="..\UTS_Core\UTS_Core.vbproj">
<Project>{33c6456c-f00d-41ac-a6fb-db0601495c6a}</Project>
<Name>UTS_Core</Name>
</ProjectReference>
</ItemGroup>
<ItemGroup>
<BootstrapperPackage Include=".NETFramework,Version=v4.8">
<Visible>False</Visible>
@@ -243,5 +237,14 @@
<ItemGroup>
<Content Include="AUTS.ico" />
</ItemGroup>
<ItemGroup>
<WCFMetadata Include="Connected Services\" />
</ItemGroup>
<ItemGroup>
<ProjectReference Include="..\UTS_Core\UTS_Core.vbproj">
<Project>{33C6456C-F00D-41AC-A6FB-DB0601495C6A}</Project>
<Name>UTS_Core</Name>
</ProjectReference>
</ItemGroup>
<Import Project="$(MSBuildToolsPath)\Microsoft.VisualBasic.targets" />
</Project>

View File

@@ -2,6 +2,7 @@
Imports System.Net
Imports System.Net.Sockets
Imports System.Text
Imports FluentFTP
Imports UTS_Core.Database
Imports UTS_Core.Security
Imports UTS_Core.UTSModule
@@ -370,14 +371,15 @@ Public Class FrmUpdateConfig
''' 获取更新服务的最新信息
''' </summary>
Private Function GetUpdateServiceInfo(serviceName As String) As UpdatePackageInfo
'MsgBox("DbConnector.CanConnectToRemote = " & DbConnector.CanConnectToRemote)
If DbConnector.CanConnectToRemote = False Then '判断网络连接状态
Throw New Exception($"无法连接到数据库!")
End If
Using db As New DbExecutor(UtsDb.RemoteDbType, UtsDb.RemoteConnString)
'MsgBox("DBOpen = " & UtsDb.RemoteDbType & " , " & UtsDb.RemoteConnString)
db.Open()
'sgBox("DBOpened")
Dim tableName As String = $"{SwUpdateTable.TableName}"
Dim colNames As New List(Of String) From {
$"{SwUpdateTable.ColNamesEnum.LastVersion}",
@@ -386,16 +388,18 @@ Public Class FrmUpdateConfig
}
Dim condition As String = $"`{SwUpdateTable.ColNamesEnum.SoftwareName}` = '{serviceName}'"
'MsgBox("dtServiceInfo = " & condition)
Dim dtServiceInfo As DataTable = db.ExecuteDataTable(db.CmdHelper.DbSearch(UtsDb.RemotePublicDb, colNames, tableName, condition))
If dtServiceInfo.Rows.Count <= 0 Then
Throw New Exception($"从数据库获取不到{serviceName}的信息!")
End If
'MsgBox("Step369")
Dim packetInfo As New UpdatePackageInfo
packetInfo.BinPackageMd5 = CStr(dtServiceInfo(0)($"{SwUpdateTable.ColNamesEnum.BinPackageMd5}"))
packetInfo.LastVersion = CStr(dtServiceInfo(0)($"{SwUpdateTable.ColNamesEnum.LastVersion}"))
packetInfo.PackageName = CStr(dtServiceInfo(0)($"{SwUpdateTable.ColNamesEnum.PackageName}"))
'MsgBox("Step401")
db.Close()
Return packetInfo
End Using
@@ -409,101 +413,109 @@ Public Class FrmUpdateConfig
UpdateInstallTip(20, $"Start Get Uts Host")
'获取webService目标地址
Dim remoteIP As IPEndPoint = Nothing
Try
If remoteIP Is Nothing Then
'Dim remoteIP As IPEndPoint = Nothing
'Try
' If remoteIP Is Nothing Then
' remoteIP = New IPEndPoint(Dns.GetHostAddresses("www.uts-data.com")(0), 5980)
' End If
'Catch ex As Exception
' UpdateInstallTip(20, $"Send Heartbeat Packet Fail:{ex.Message}")
' Return False
'End Try
remoteIP = New IPEndPoint(Dns.GetHostAddresses("www.uts-data.com")(0), 5980)
End If
Catch ex As Exception
UpdateInstallTip(20, $"Send Heartbeat Packet Fail:{ex.Message}")
Return False
End Try
'UpdateInstallTip(20, $"remoteIP:{remoteIP.Address }")
'发送获取主机地址命令
Try
Dim packet() As Byte = _webPacker.FillPacket(CByte(UtsWebPacket.Commands.Heartbeat), BitConverter.GetBytes(0))
_udpClient.Send(packet, packet.Length, remoteIP)
Catch ex As Exception
UpdateInstallTip(20, $"Send Heartbeat Packet Fail:{ex.Message}")
Return False
End Try
''发送获取主机地址命令
'Try
' Dim packet() As Byte = _webPacker.FillPacket(CByte(UtsWebPacket.Commands.Heartbeat), BitConverter.GetBytes(0))
' _udpClient.Send(packet, packet.Length, remoteIP)
'Catch ex As Exception
' UpdateInstallTip(20, $"Send Heartbeat Packet Fail:{ex.Message}")
' Return False
'End Try
'UpdateInstallTip(20, $"send")
'等待回复
Dim timeout As Integer = 5 * 1000
Dim lastTime As Date = Now
Dim length As Integer
Dim recvBuf() As Byte = Nothing
Dim recviceIp As New IPEndPoint(IPAddress.Any, 0)
While (Now - lastTime).TotalMilliseconds < timeout
length = _udpClient.Available
If length > 0 Then
recvBuf = _udpClient.Receive(recviceIp)
Exit While
End If
''等待回复
'Dim timeout As Integer = 5 * 1000
'Dim lastTime As Date = Now
'Dim length As Integer
'Dim recvBuf() As Byte = Nothing
'Dim recviceIp As New IPEndPoint(IPAddress.Any, 0)
'While (Now - lastTime).TotalMilliseconds < timeout
' length = _udpClient.Available
' If length > 0 Then
' recvBuf = _udpClient.Receive(recviceIp)
' Exit While
' End If
Threading.Thread.Sleep(1000)
End While
' Threading.Thread.Sleep(1000)
'End While
If recvBuf Is Nothing Then
UpdateInstallTip(20, $"Get Host Fail!")
Return False
End If
'If recvBuf Is Nothing Then
' UpdateInstallTip(20, $"Get Host Fail!")
' Return False
'End If
'UpdateInstallTip(20, $"Rcvd")
''校验
'Try
' _webPacker.CheckPacket(recvBuf)
'Catch ex As Exception
' UpdateInstallTip(20, $"Check Packet Error:{ex.Message}")
' Return False
'End Try
'UpdateInstallTip(20, $"Verfied")
'校验
Try
_webPacker.CheckPacket(recvBuf)
Catch ex As Exception
UpdateInstallTip(20, $"Check Packet Error:{ex.Message}")
Return False
End Try
''处理回复
'Dim cmdByte As Byte = recvBuf(UtsWebPacket.PacketBits.Command)
'处理回复
Dim cmdByte As Byte = recvBuf(UtsWebPacket.PacketBits.Command)
''不是回复心跳包
'If cmdByte <> 1 Then Return False
'不是回复心跳包
If cmdByte <> 1 Then Return False
'Dim type As Integer
'Dim ftpHost As String = ""
'Dim dbHost As String = ""
'For i As Integer = UtsWebPacket.PacketBits.Param + 4 To recvBuf.Count - 1
' type = recvBuf(i)
' length = recvBuf(i + 1)
Dim type As Integer
Dim ftpHost As String = ""
Dim dbHost As String = ""
For i As Integer = UtsWebPacket.PacketBits.Param + 4 To recvBuf.Count - 1
type = recvBuf(i)
length = recvBuf(i + 1)
' If length = 0 Then
' UpdateInstallTip(20, $"Invalid data length!")
' Return False
' End If
If length = 0 Then
UpdateInstallTip(20, $"Invalid data length!")
Return False
End If
' Select Case type
' Case 1 'ftp服务器地址
' ftpHost = Encoding.UTF8.GetString(recvBuf, i + 2, length)
' Case 2 'db服务器地址
' dbHost = Encoding.UTF8.GetString(recvBuf, i + 2, length)
' End Select
' i += length + 1
'Next
Select Case type
Case 1 'ftp服务器地址
ftpHost = Encoding.UTF8.GetString(recvBuf, i + 2, length)
Case 2 'db服务器地址
dbHost = Encoding.UTF8.GetString(recvBuf, i + 2, length)
End Select
i += length + 1
Next
'If String.IsNullOrEmpty(ftpHost) Then
' UpdateInstallTip(20, $"Get FtpHost Fail,Host is null.")
' Return False
'Else
' If String.Compare(UtsRegistry.FtpHost, ftpHost) <> 0 Then
' UtsRegistry.FtpHost = ftpHost '写入注册表
' End If
'End If
If String.IsNullOrEmpty(ftpHost) Then
UpdateInstallTip(20, $"Get FtpHost Fail,Host is null.")
Return False
Else
If String.Compare(UtsRegistry.FtpHost, ftpHost) <> 0 Then
UtsRegistry.FtpHost = ftpHost '写入注册表
End If
End If
If String.IsNullOrEmpty(dbHost) Then
UpdateInstallTip(20, $"Get DbHost Fail,Host is null.")
Return False
Else
If String.Compare(UtsRegistry.DbHost, dbHost) <> 0 Then
UtsRegistry.DbHost = dbHost '写入注册表
End If
End If
'If String.IsNullOrEmpty(dbHost) Then
' UpdateInstallTip(20, $"Get DbHost Fail,Host is null.")
' Return False
'Else
' If String.Compare(UtsRegistry.DbHost, dbHost) <> 0 Then
' UtsRegistry.DbHost = dbHost '写入注册表
' End If
'End If
'//'Momo 2025-09-09 目前先写死服务器地址,后续版本再改为动态获取
Dim ftpHost As String = "ftp.uts-data.com"
Dim dbHost As String = "db.uts-data.com"
UtsRegistry.DbHost = dbHost '写入注册表
UtsRegistry.FtpHost = ftpHost '写入注册表
UpdateInstallTip(20, $"Get Uts Host Success!")
Return True
End Function
@@ -513,7 +525,9 @@ Public Class FrmUpdateConfig
''' 一键更新
''' </summary>
Private Sub InstallUpdateService(Optional AlisaName As String = "")
If GetUtsHost() = False Then Return '根据License信息,获取服务器地址
'todo云端获取服务器地址写入注册表
'If GetUtsHost() = False Then Return '根据License信息,获取服务器地址
'校验License
UpdateInstallTip(20, "Begin CheckLicense...")
@@ -523,12 +537,17 @@ Public Class FrmUpdateConfig
UpdateInstallTip(25, "CheckLicense Success!")
_ftpClient = New FtpService(UtsRegistry.FtpHost, CInt(_license.FtpPort), _license.FtpUser, _license.FtpPwd)
UtsRegistry.FtpHost = _license.FtpHost '写入注册表
UtsRegistry.DbHost = _license.MysqlServer '写入注册表
_ftpClient = New FtpService(_license.FtpHost, CInt(_license.FtpPort), _license.FtpUser, _license.FtpPwd)
'获取远程数据库内容
Dim packetInfo As UpdatePackageInfo = GetUpdateServiceInfo(UpdateServiceName)
'检测服务存在
If WinService.ServicesExists(UpdateServiceName) Then
'Dim updateSerVer As String = UtsRegistry.UpdateServiceVersion
'If NeedToUpdateService(updateSerVer, packetInfo.LastVersion) = False Then

View File

@@ -137,7 +137,6 @@
<Name>UTS_Core</Name>
</ProjectReference>
</ItemGroup>
<ItemGroup />
<ItemGroup>
<Content Include="Document\Version.txt" />
<Content Include="MeIcon.ico" />

View File

@@ -394,3 +394,57 @@ G:\Git\AUTS\AUTS_Studio\obj\Debug\AUTS_Stu.1BA4C2FE.Up2Date
G:\Git\AUTS\AUTS_Studio\obj\Debug\AUTS_Studio.exe
G:\Git\AUTS\AUTS_Studio\obj\Debug\AUTS_Studio.xml
G:\Git\AUTS\AUTS_Studio\obj\Debug\AUTS_Studio.pdb
C:\Project\AUTS_Studio\bin\Debug\x64\SQLite.Interop.dll
C:\Project\AUTS_Studio\bin\Debug\x86\SQLite.Interop.dll
C:\Project\AUTS_Studio\bin\Debug\AUTS_Studio.exe.config
C:\Project\AUTS_Studio\bin\Debug\AUTS_Studio.exe
C:\Project\AUTS_Studio\bin\Debug\AUTS_Studio.pdb
C:\Project\AUTS_Studio\bin\Debug\AUTS_Studio.xml
C:\Project\AUTS_Studio\bin\Debug\MySql.Data.dll
C:\Project\AUTS_Studio\bin\Debug\UTS_Core.dll
C:\Project\AUTS_Studio\bin\Debug\SharpCompress.dll
C:\Project\AUTS_Studio\bin\Debug\FluentFTP.dll
C:\Project\AUTS_Studio\bin\Debug\FlexCell.dll
C:\Project\AUTS_Studio\bin\Debug\Newtonsoft.Json.dll
C:\Project\AUTS_Studio\bin\Debug\TeeChart.dll
C:\Project\AUTS_Studio\bin\Debug\System.Data.SQLite.dll
C:\Project\AUTS_Studio\bin\Debug\Google.Protobuf.dll
C:\Project\AUTS_Studio\bin\Debug\Zstandard.Net.dll
C:\Project\AUTS_Studio\bin\Debug\K4os.Compression.LZ4.Streams.dll
C:\Project\AUTS_Studio\bin\Debug\BouncyCastle.Crypto.dll
C:\Project\AUTS_Studio\bin\Debug\Ubiety.Dns.Core.dll
C:\Project\AUTS_Studio\bin\Debug\System.Memory.dll
C:\Project\AUTS_Studio\bin\Debug\System.Buffers.dll
C:\Project\AUTS_Studio\bin\Debug\ZstdSharp.dll
C:\Project\AUTS_Studio\bin\Debug\System.Runtime.CompilerServices.Unsafe.dll
C:\Project\AUTS_Studio\bin\Debug\K4os.Compression.LZ4.dll
C:\Project\AUTS_Studio\bin\Debug\K4os.Hash.xxHash.dll
C:\Project\AUTS_Studio\bin\Debug\System.Numerics.Vectors.dll
C:\Project\AUTS_Studio\bin\Debug\System.Threading.Tasks.Extensions.dll
C:\Project\AUTS_Studio\bin\Debug\UTS_Core.pdb
C:\Project\AUTS_Studio\bin\Debug\UTS_Core.xml
C:\Project\AUTS_Studio\bin\Debug\UTS_Core.dll.config
C:\Project\AUTS_Studio\bin\Debug\MySql.Data.xml
C:\Project\AUTS_Studio\bin\Debug\SharpCompress.pdb
C:\Project\AUTS_Studio\bin\Debug\FluentFTP.xml
C:\Project\AUTS_Studio\bin\Debug\Newtonsoft.Json.xml
C:\Project\AUTS_Studio\bin\Debug\Google.Protobuf.pdb
C:\Project\AUTS_Studio\bin\Debug\Google.Protobuf.xml
C:\Project\AUTS_Studio\bin\Debug\K4os.Compression.LZ4.Streams.xml
C:\Project\AUTS_Studio\bin\Debug\System.Memory.xml
C:\Project\AUTS_Studio\bin\Debug\System.Buffers.xml
C:\Project\AUTS_Studio\bin\Debug\System.Runtime.CompilerServices.Unsafe.xml
C:\Project\AUTS_Studio\bin\Debug\K4os.Compression.LZ4.xml
C:\Project\AUTS_Studio\bin\Debug\K4os.Hash.xxHash.xml
C:\Project\AUTS_Studio\bin\Debug\System.Numerics.Vectors.xml
C:\Project\AUTS_Studio\bin\Debug\System.Threading.Tasks.Extensions.xml
C:\Project\AUTS_Studio\obj\Debug\AUTS_Studio.vbproj.AssemblyReference.cache
C:\Project\AUTS_Studio\obj\Debug\AUTS_Studio.FrmMain.resources
C:\Project\AUTS_Studio\obj\Debug\AUTS_Studio.Resources.resources
C:\Project\AUTS_Studio\obj\Debug\AUTS_Studio.vbproj.GenerateResource.cache
C:\Project\AUTS_Studio\obj\Debug\AUTS_Studio.vbproj.CoreCompileInputs.cache
C:\Project\AUTS_Studio\obj\Debug\AUTS_Stu.1BA4C2FE.Up2Date
C:\Project\AUTS_Studio\obj\Debug\AUTS_Studio.exe
C:\Project\AUTS_Studio\obj\Debug\AUTS_Studio.xml
C:\Project\AUTS_Studio\obj\Debug\AUTS_Studio.pdb
G:\Git\AUTS\AUTS_Studio\obj\Debug\AUTS_Studio.exe.config

View File

@@ -170,12 +170,6 @@
<None Include="App.config" />
<None Include="packages.config" />
</ItemGroup>
<ItemGroup>
<ProjectReference Include="..\UTS_Core\UTS_Core.vbproj">
<Project>{33c6456c-f00d-41ac-a6fb-db0601495c6a}</Project>
<Name>UTS_Core</Name>
</ProjectReference>
</ItemGroup>
<ItemGroup>
<Content Include="FluentFTP.dll" />
</ItemGroup>
@@ -191,5 +185,11 @@
<Install>false</Install>
</BootstrapperPackage>
</ItemGroup>
<ItemGroup>
<ProjectReference Include="..\UTS_Core\UTS_Core.vbproj">
<Project>{33C6456C-F00D-41AC-A6FB-DB0601495C6A}</Project>
<Name>UTS_Core</Name>
</ProjectReference>
</ItemGroup>
<Import Project="$(MSBuildToolsPath)\Microsoft.VisualBasic.targets" />
</Project>

View File

@@ -31,5 +31,5 @@ Imports System.Runtime.InteropServices
'通过使用 "*",如下所示:
' <Assembly: AssemblyVersion("1.0.*")>
<Assembly: AssemblyVersion("2.4.2.0")>
<Assembly: AssemblyFileVersion("2.4.2.0")>
<Assembly: AssemblyVersion("2.4.3.0")>
<Assembly: AssemblyFileVersion("2.4.3.0")>

View File

@@ -168,7 +168,7 @@ Public Class FrmMain
sqlCmd.Append("DECLARE l_int int default 0;" & vbCrLf)
sqlCmd.Append("DECLARE l_len int default 0;" & vbCrLf)
sqlCmd.Append("DECLARE l_type varchar(16) default '';" & vbCrLf)
sqlCmd.Append("select count(*),`DATA_TYPE`,`CHARACTER_MAXIMUM_LENGTH` into l_int,l_type,l_len from `information_schema`.`COLUMNS` WHERE TABLE_SCHEMA = dbName and TABLE_NAME = tbName and COLUMN_NAME = filed;" & vbCrLf)
sqlCmd.Append("select count(*),`DATA_TYPE`,`CHARACTER_MAXIMUM_LENGTH` into l_int,l_type,l_len from `information_schema`.`COLUMNS` WHERE TABLE_SCHEMA = dbName and TABLE_NAME = tbName and COLUMN_NAME = filed COLLATE utf8_general_ci;" & vbCrLf)
sqlCmd.Append("if l_int = 0 then" & vbCrLf)
sqlCmd.Append("set @cmd = CONCAT('alter table ',dbName,'.',tbName,' add column ',filed,' varchar(',len,')');" & vbCrLf)
sqlCmd.Append("PREPARE pre FROM @cmd;" & vbCrLf)
@@ -193,7 +193,7 @@ Public Class FrmMain
sqlCmd.Append($"Create Procedure `{dbName}`.`AlterSnListBarcode`(in orderid int,in orderinternalid int,in pid int,in code varchar(32),in sntype int)" & vbCrLf)
sqlCmd.Append("begin " & vbCrLf)
sqlCmd.Append("DECLARE l_int int default 0; " & vbCrLf)
sqlCmd.Append("select count(*) into l_int from `TBL_SnList` WHERE `BarCode` = code; " & vbCrLf)
sqlCmd.Append("select count(*) into l_int from `TBL_SnList` WHERE `BarCode` = code COLLATE utf8_general_ci; " & vbCrLf)
sqlCmd.Append("if l_int = 0 then " & vbCrLf)
sqlCmd.Append("set @cmd = CONCAT('Insert into TBL_SnList(OrderID,OrderInternalID,ProductID,BarCode,SnType) values(',orderid,',',orderinternalid,',',pid,',''',code,''',',sntype,')'); " & vbCrLf)
sqlCmd.Append("PREPARE pre FROM @cmd; " & vbCrLf)

View File

@@ -31,5 +31,5 @@ Imports System.Runtime.InteropServices
'通过使用 "*",如下所示:
' <Assembly: AssemblyVersion("1.0.*")>
<Assembly: AssemblyVersion("1.8.6.0")>
<Assembly: AssemblyFileVersion("1.8.6.0")>
<Assembly: AssemblyVersion("1.8.8.0")>
<Assembly: AssemblyFileVersion("1.8.8.0")>

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

View File

@@ -1 +1 @@
ca48ce1c02fb0262258d0d8953c37f0ec8538e6954f3dfb45d4c80f6c5c96622
f016d1be56f6fedc61741e9fdbb1f0d49638d13457a53b051aea0362c5491bcc

View File

@@ -183,4 +183,70 @@ G:\Git\AUTS\AUTS_Win\bin\Debug\System.Buffers.xml
G:\Git\AUTS\AUTS_Win\bin\Debug\System.Runtime.CompilerServices.Unsafe.xml
G:\Git\AUTS\AUTS_Win\bin\Debug\System.Numerics.Vectors.xml
G:\Git\AUTS\AUTS_Win\bin\Debug\System.Threading.Tasks.Extensions.xml
G:\Git\AUTS\AUTS_Win\bin\Debug\Google.Protobuf.dll
G:\Git\AUTS\AUTS_Win\bin\Debug\Zstandard.Net.dll
G:\Git\AUTS\AUTS_Win\bin\Debug\K4os.Compression.LZ4.Streams.dll
G:\Git\AUTS\AUTS_Win\bin\Debug\BouncyCastle.Crypto.dll
G:\Git\AUTS\AUTS_Win\bin\Debug\Ubiety.Dns.Core.dll
G:\Git\AUTS\AUTS_Win\bin\Debug\K4os.Compression.LZ4.dll
G:\Git\AUTS\AUTS_Win\bin\Debug\K4os.Hash.xxHash.dll
G:\Git\AUTS\AUTS_Win\bin\Debug\MySql.Data.xml
G:\Git\AUTS\AUTS_Win\bin\Debug\Google.Protobuf.pdb
G:\Git\AUTS\AUTS_Win\bin\Debug\Google.Protobuf.xml
G:\Git\AUTS\AUTS_Win\bin\Debug\K4os.Compression.LZ4.Streams.xml
G:\Git\AUTS\AUTS_Win\bin\Debug\K4os.Compression.LZ4.xml
G:\Git\AUTS\AUTS_Win\bin\Debug\K4os.Hash.xxHash.xml
C:\Project\AUTS_Win\bin\Debug\x64\SQLite.Interop.dll
C:\Project\AUTS_Win\bin\Debug\x86\SQLite.Interop.dll
C:\Project\AUTS_Win\bin\Debug\AUTS_Win.exe.config
C:\Project\AUTS_Win\bin\Debug\AUTS_Win.exe
C:\Project\AUTS_Win\bin\Debug\AUTS_Win.pdb
C:\Project\AUTS_Win\bin\Debug\UTS_Core.dll
C:\Project\AUTS_Win\bin\Debug\Newtonsoft.Json.dll
C:\Project\AUTS_Win\bin\Debug\UTS_Core.pdb
C:\Project\AUTS_Win\obj\Debug\AUTS_Win.vbproj.AssemblyReference.cache
C:\Project\AUTS_Win\obj\Debug\AUTS_Win.FrmMain.resources
C:\Project\AUTS_Win\obj\Debug\AUTS_Win.FrmSettings.resources
C:\Project\AUTS_Win\obj\Debug\AUTS_Win.Resources.resources
C:\Project\AUTS_Win\obj\Debug\AUTS_Win.vbproj.GenerateResource.cache
C:\Project\AUTS_Win\obj\Debug\AUTS_Win.vbproj.CoreCompileInputs.cache
C:\Project\AUTS_Win\obj\Debug\AUTS_Win.vbproj.Up2Date
C:\Project\AUTS_Win\obj\Debug\AUTS_Win.exe
C:\Project\AUTS_Win\obj\Debug\AUTS_Win.pdb
C:\Project\AUTS_Win\bin\Debug\FlexCell.dll
C:\Project\AUTS_Win\bin\Debug\SharpCompress.dll
C:\Project\AUTS_Win\bin\Debug\FluentFTP.dll
C:\Project\AUTS_Win\bin\Debug\TeeChart.dll
C:\Project\AUTS_Win\bin\Debug\MySql.Data.dll
C:\Project\AUTS_Win\bin\Debug\System.Data.SQLite.dll
C:\Project\AUTS_Win\bin\Debug\System.Memory.dll
C:\Project\AUTS_Win\bin\Debug\System.Buffers.dll
C:\Project\AUTS_Win\bin\Debug\ZstdSharp.dll
C:\Project\AUTS_Win\bin\Debug\Google.Protobuf.dll
C:\Project\AUTS_Win\bin\Debug\Zstandard.Net.dll
C:\Project\AUTS_Win\bin\Debug\K4os.Compression.LZ4.Streams.dll
C:\Project\AUTS_Win\bin\Debug\BouncyCastle.Crypto.dll
C:\Project\AUTS_Win\bin\Debug\Ubiety.Dns.Core.dll
C:\Project\AUTS_Win\bin\Debug\System.Numerics.Vectors.dll
C:\Project\AUTS_Win\bin\Debug\System.Runtime.CompilerServices.Unsafe.dll
C:\Project\AUTS_Win\bin\Debug\System.Threading.Tasks.Extensions.dll
C:\Project\AUTS_Win\bin\Debug\K4os.Compression.LZ4.dll
C:\Project\AUTS_Win\bin\Debug\K4os.Hash.xxHash.dll
C:\Project\AUTS_Win\bin\Debug\UTS_Core.xml
C:\Project\AUTS_Win\bin\Debug\UTS_Core.dll.config
C:\Project\AUTS_Win\bin\Debug\SharpCompress.pdb
C:\Project\AUTS_Win\bin\Debug\FluentFTP.xml
C:\Project\AUTS_Win\bin\Debug\Newtonsoft.Json.xml
C:\Project\AUTS_Win\bin\Debug\MySql.Data.xml
C:\Project\AUTS_Win\bin\Debug\System.Memory.xml
C:\Project\AUTS_Win\bin\Debug\System.Buffers.xml
C:\Project\AUTS_Win\bin\Debug\Google.Protobuf.pdb
C:\Project\AUTS_Win\bin\Debug\Google.Protobuf.xml
C:\Project\AUTS_Win\bin\Debug\K4os.Compression.LZ4.Streams.xml
C:\Project\AUTS_Win\bin\Debug\System.Numerics.Vectors.xml
C:\Project\AUTS_Win\bin\Debug\System.Runtime.CompilerServices.Unsafe.xml
C:\Project\AUTS_Win\bin\Debug\System.Threading.Tasks.Extensions.xml
C:\Project\AUTS_Win\bin\Debug\K4os.Compression.LZ4.xml
C:\Project\AUTS_Win\bin\Debug\K4os.Hash.xxHash.xml
C:\Project\AUTS_Win\obj\Debug\AUTS_Win.exe.config
G:\Git\AUTS\AUTS_Win\obj\Debug\AUTS_Win.exe.config

BIN
Control/FlexCell.NET.msi Normal file

Binary file not shown.

File diff suppressed because it is too large Load Diff

BIN
Document/Hash.exe Normal file

Binary file not shown.

View File

@@ -1,16 +1,6 @@
Imports UTS_Core.UTSModule
Imports UTS_Core.UTSModule.Test
Imports System.ComponentModel
Imports System.IO.Ports
Imports UTS_Core.UTSModule.DbTableModel.Customer
Imports UTS_Core.UTSModule.DbConnect
Imports UTS_Core.Database
Imports UTS_Core.DebugLog
Imports UTS_Core.UTSModule.Test.Controls
Imports Newtonsoft.Json
Imports UTS_Core.Database
Imports UTS_Core.UTSModule.Project
Imports UTS_Core.UTSModule.Station
Imports System.Diagnostics
Imports UTS_Core.UTSModule
Public Class FrmMain
Implements IProcessStation
@@ -269,7 +259,6 @@ Public Class FrmMain
End If
TestlogTable.Range(TestlogTable.ActiveCell.Row, 0, TestlogTable.ActiveCell.Row, TestlogTable.Cols - 1).FontStrikeout = True
TestlogTable.Range(TestlogTable.ActiveCell.Row, 0, TestlogTable.ActiveCell.Row, TestlogTable.Cols - 1).BackColor = Color.Red
' TestlogTable.RemoveItem(TestlogTable.ActiveCell.Row)
End Sub
Public Function QueryRowIndex(rowid As Integer) As String
@@ -292,9 +281,7 @@ Public Class FrmMain
db.Open()
db.BeginTransaction()
Dim dicFiled As Dictionary(Of String, String)
Dim cmdText As String
Dim colName As String
Dim colNames As New List(Of String)
For Each inten In ModifyList
@@ -305,7 +292,6 @@ Public Class FrmMain
db.ExecuteNonQuery(cmdText) '执行语句
db.ClearDbParameter()
Catch ex As Exception
'WriteErrorLogToFile($"[{i}]Write LogQueue To Remote DB Error: {ex.Message}")
IsSaveChangesFlag = False
MsgBox($"保存修改失败!详情:{ex}")
Try

View File

@@ -172,13 +172,17 @@
</BootstrapperPackage>
</ItemGroup>
<ItemGroup>
<WCFMetadata Include="Connected Services\" />
</ItemGroup>
<ItemGroup>
<ProjectReference Include="..\AUTS_Win\AUTS_Win.vbproj">
<Project>{31df2b00-ad65-48be-a18e-4f2cbde1188d}</Project>
<Name>AUTS_Win</Name>
</ProjectReference>
<ProjectReference Include="..\UTS_Core\UTS_Core.vbproj">
<Project>{33c6456c-f00d-41ac-a6fb-db0601495c6a}</Project>
<Name>UTS_Core</Name>
</ProjectReference>
</ItemGroup>
<ItemGroup>
<WCFMetadata Include="Connected Services\" />
</ItemGroup>
<Import Project="$(MSBuildToolsPath)\Microsoft.VisualBasic.targets" />
</Project>

View File

@@ -631,6 +631,12 @@ UTS_Core
</summary>
<returns></returns>
</member>
<member name="M:UTS_Core.Database.DbExecutor.OpenAsync">
<summary>
打开数据库连接
</summary>
<returns></returns>
</member>
<member name="M:UTS_Core.Database.DbExecutor.Close">
<summary>
关闭数据库连接
@@ -649,6 +655,13 @@ UTS_Core
<param name="commandText">执行的数据库命令文本</param>
<returns></returns>
</member>
<member name="M:UTS_Core.Database.DbExecutor.ExecuteNonQueryAsync(System.String)">
<summary>
运行非查询语句,返回执行该语句受到影响的行数
</summary>
<param name="commandText">执行的数据库命令文本</param>
<returns></returns>
</member>
<member name="M:UTS_Core.Database.DbExecutor.ExecuteNonQuery(System.String,System.Data.Common.DbParameterCollection)">
<summary>
使用命令参数模式执行非查询语句,返回执行该语句受到影响的行数
@@ -657,6 +670,14 @@ UTS_Core
<param name="commandParams">执行的数据库命令参数</param>
<returns></returns>
</member>
<member name="M:UTS_Core.Database.DbExecutor.ExecuteNonQueryAsync(System.String,System.Data.Common.DbParameterCollection)">
<summary>
使用命令参数模式执行非查询语句,返回执行该语句受到影响的行数
</summary>
<param name="commandText">执行的数据库命令文本</param>
<param name="commandParams">执行的数据库命令参数</param>
<returns></returns>
</member>
<member name="M:UTS_Core.Database.DbExecutor.ExecuteReader(System.String)">
<summary>
执行数据库语句,返回数据库读取流的句柄
@@ -664,6 +685,13 @@ UTS_Core
<param name="commandText">执行的数据库命令文本</param>
<returns></returns>
</member>
<member name="M:UTS_Core.Database.DbExecutor.ExecuteReaderAsync(System.String)">
<summary>
执行数据库语句,返回数据库读取流的句柄
</summary>
<param name="commandText">执行的数据库命令文本</param>
<returns></returns>
</member>
<member name="M:UTS_Core.Database.DbExecutor.ExecuteReader(System.String,System.Data.Common.DbParameterCollection)">
<summary>
使用命令参数模式执行数据库语句,返回数据库读取流的句柄
@@ -672,6 +700,14 @@ UTS_Core
<param name="commandParams">执行的数据库命令参数</param>
<returns></returns>
</member>
<member name="M:UTS_Core.Database.DbExecutor.ExecuteReaderAsync(System.String,System.Data.Common.DbParameterCollection)">
<summary>
使用命令参数模式执行数据库语句,返回数据库读取流的句柄
</summary>
<param name="commandText">执行的数据库命令文本</param>
<param name="commandParams">执行的数据库命令参数</param>
<returns></returns>
</member>
<member name="M:UTS_Core.Database.DbExecutor.ExecuteScalar(System.String)">
<summary>
执行数据库语句,返回查询结果的第一行第一列的内容
@@ -679,6 +715,13 @@ UTS_Core
<param name="commandText">执行的数据库命令文本</param>
<returns></returns>
</member>
<member name="M:UTS_Core.Database.DbExecutor.ExecuteScalarAsync(System.String)">
<summary>
执行数据库语句,返回查询结果的第一行第一列的内容
</summary>
<param name="commandText">执行的数据库命令文本</param>
<returns></returns>
</member>
<member name="M:UTS_Core.Database.DbExecutor.ExecuteScalar(System.String,System.Data.Common.DbParameterCollection)">
<summary>
使用命令参数模式执行数据库语句,返回查询结果的第一行第一列的内容
@@ -687,6 +730,14 @@ UTS_Core
<param name="commandParams">执行的数据库命令参数</param>
<returns></returns>
</member>
<member name="M:UTS_Core.Database.DbExecutor.ExecuteScalarAsync(System.String,System.Data.Common.DbParameterCollection)">
<summary>
使用命令参数模式执行数据库语句,返回查询结果的第一行第一列的内容
</summary>
<param name="commandText">执行的数据库命令文本</param>
<param name="commandParams">执行的数据库命令参数</param>
<returns></returns>
</member>
<member name="M:UTS_Core.Database.DbExecutor.ExecuteDataTable(System.String,System.Boolean)">
<summary>
执行数据库语句,返回执行结果返回的数据表,常用于查询命令
@@ -1462,53 +1513,48 @@ UTS_Core
<param name="path"></param>
<returns></returns>
</member>
<member name="M:UTS_Core.Undo.ICommand.Execute">
<summary>
运行一条需要记录在撤销栈的命令
</summary>
</member>
<member name="M:UTS_Core.Undo.ICommand.Redo">
<member name="M:UTS_Core.ICommand.Redo">
<summary>
重做命令
</summary>
</member>
<member name="M:UTS_Core.Undo.ICommand.Undo">
<member name="M:UTS_Core.ICommand.Undo">
<summary>
撤销命令
</summary>
</member>
<member name="M:UTS_Core.Undo.CommandManager.RunCommand(UTS_Core.Undo.ICommand)">
<member name="M:UTS_Core.CommandManager.RunCommand(UTS_Core.ICommand)">
<summary>
运行命令,并将命令添加至撤销堆栈
</summary>
<param name="command"></param>
</member>
<member name="M:UTS_Core.Undo.CommandManager.AddUndoCommand(UTS_Core.Undo.ICommand)">
<member name="M:UTS_Core.CommandManager.AddUndoCommand(UTS_Core.ICommand)">
<summary>
将命令添加至撤销堆栈
</summary>
</member>
<member name="M:UTS_Core.Undo.CommandManager.ClearUndoCommands">
<member name="M:UTS_Core.CommandManager.ClearUndoCommands">
<summary>
清空撤销命令堆栈
</summary>
</member>
<member name="M:UTS_Core.Undo.CommandManager.ClearRedoCommands">
<member name="M:UTS_Core.CommandManager.ClearRedoCommands">
<summary>
清空重做命令堆栈
</summary>
</member>
<member name="M:UTS_Core.Undo.CommandManager.ClearCommands">
<member name="M:UTS_Core.CommandManager.ClearCommands">
<summary>
清空撤销与重做命令堆栈
</summary>
</member>
<member name="M:UTS_Core.Undo.CommandManager.Undo">
<member name="M:UTS_Core.CommandManager.Undo">
<summary>
执行撤销命令
</summary>
</member>
<member name="M:UTS_Core.Undo.CommandManager.Redo">
<member name="M:UTS_Core.CommandManager.Redo">
<summary>
执行重做命令
</summary>
@@ -1660,6 +1706,16 @@ UTS_Core
<param name="station">当前站位信息</param>
<param name="result">当前测试结果</param>
</member>
<member name="M:UTS_Core.UTSModule.DbConnect.DbConnector.UpdateSnListTableToLocal(UTS_Core.Database.DbExecutor,System.String,System.Collections.Generic.List{System.String},System.Collections.Generic.List{System.String},System.Boolean)">
<summary>
更新SNList表指定字段名称的值
</summary>
<param name="db"></param>
<param name="dbName"></param>
<param name="filedNames"></param>
<param name="filedValues"></param>
<param name="saveCache"></param>
</member>
<member name="M:UTS_Core.UTSModule.DbConnect.DbConnector.UpdateLocalSnList(System.String,System.String,System.String,System.String,System.String)">
<summary>
更新本地SN总表的测试记录(用于处理组播写入Sn总表操作)
@@ -6020,15 +6076,57 @@ UTS_Core
</summary>
<returns></returns>
</member>
<member name="P:UTS_Core.UTSModule.Station.RowNodeChangedEventArgs.BeforeNode">
<summary>
修改前的节点
</summary>
<returns></returns>
</member>
<member name="P:UTS_Core.UTSModule.Station.RowNodeChangedEventArgs.ChangeType">
<summary>
修改类型
</summary>
<returns></returns>
</member>
<member name="P:UTS_Core.UTSModule.Station.StationPlan.ParentPacket">
<summary>测试流程所关联的项目站包信息</summary>
</member>
<member name="F:UTS_Core.UTSModule.Station.StationPlanGrid._grd">
<summary>表格控件对象</summary>
</member>
<member name="F:UTS_Core.UTSModule.Station.StationPlanGrid._headNode">
<summary>表格树状目录起始节点</summary>
</member>
<member name="F:UTS_Core.UTSModule.Station.StationPlanGrid._drawCol">
<summary>起始绘制列</summary>
</member>
<member name="F:UTS_Core.UTSModule.Station.StationPlanGrid._drawStartRow">
<summary>起始绘制行</summary>
</member>
<member name="F:UTS_Core.UTSModule.Station.StationPlanGrid._debugMode">
<summary>调试模式是否开启</summary>
</member>
<member name="F:UTS_Core.UTSModule.Station.StationPlanGrid._showNodeIcon">
<summary>是否显示节点图标</summary>
</member>
<member name="F:UTS_Core.UTSModule.Station.StationPlanGrid._uploading">
<summary>处于更新表格状态中,不触发表格单元格修改事件</summary>
</member>
<member name="F:UTS_Core.UTSModule.Station.StationPlanGrid._paramChar">
<summary>多个参数间的分割符号</summary>
</member>
<member name="F:UTS_Core.UTSModule.Station.StationPlanGrid._testCmdManager">
<summary>测试命令管理器</summary>
</member>
<member name="F:UTS_Core.UTSModule.Station.StationPlanGrid._errCodeManager">
<summary>错误代码管理器</summary>
</member>
<member name="F:UTS_Core.UTSModule.Station.StationPlanGrid._labelNames">
<summary>表格标签字段字典</summary>
</member>
<member name="F:UTS_Core.UTSModule.Station.StationPlanGrid._recordNames">
<summary>表格记录名称字段字典</summary>
</member>
<member name="F:UTS_Core.UTSModule.Station.StationPlanGrid.ActiveNode">
<summary>当前活动节点</summary>
</member>
@@ -6038,11 +6136,31 @@ UTS_Core
<member name="E:UTS_Core.UTSModule.Station.StationPlanGrid.RowNodeTextChanged">
<summary>节点文本被修改事件</summary>
</member>
<member name="F:UTS_Core.UTSModule.Station.StationPlanGrid._testCmdManager">
<summary>测试命令管理器</summary>
<member name="E:UTS_Core.UTSModule.Station.StationPlanGrid.PlanGridCommandChanged">
<summary>节点执行可撤销事件</summary>
</member>
<member name="F:UTS_Core.UTSModule.Station.StationPlanGrid._errCodeManager">
<summary>错误代码管理</summary>
<member name="F:UTS_Core.UTSModule.Station.StationPlanGrid.__userActionTimer">
<summary>粘贴操作计时</summary>
</member>
<member name="F:UTS_Core.UTSModule.Station.StationPlanGrid.UserActionTimeout">
<summary>计时器超时时间</summary>
</member>
<member name="M:UTS_Core.UTSModule.Station.StationPlanGrid.#ctor">
<summary>
构造函数
</summary>
</member>
<member name="M:UTS_Core.UTSModule.Station.StationPlanGrid.OnUserAction(UTS_Core.UTSModule.Station.RowNode)">
<summary>
表格内容改变处理事件
</summary>
</member>
<member name="M:UTS_Core.UTSModule.Station.StationPlanGrid._userActionTimer_Tick(System.Object,System.EventArgs)">
<summary>
粘贴操作计时器超时处理事件
</summary>
<param name="sender"></param>
<param name="e"></param>
</member>
<member name="P:UTS_Core.UTSModule.Station.StationPlanGrid.SkipEvent">
<summary>
@@ -6050,9 +6168,107 @@ UTS_Core
</summary>
<returns></returns>
</member>
<member name="M:UTS_Core.UTSModule.Station.StationPlanGrid.GridUpdateEventTrigger(FlexCell.Grid)">
<member name="M:UTS_Core.UTSModule.Station.StationPlanGrid.BackwardNavigation">
<summary>
对第二行的Action执行一遍操作以触发更新事件
向后导航
</summary>
</member>
<member name="M:UTS_Core.UTSModule.Station.StationPlanGrid.ForwardNavigation">
<summary>
向前导航
</summary>
</member>
<member name="M:UTS_Core.UTSModule.Station.StationPlanGrid.CanBackward">
<summary>
是否可以后退
</summary>
<returns></returns>
<remarks></remarks>
</member>
<member name="M:UTS_Core.UTSModule.Station.StationPlanGrid.CanForward">
<summary>
是否可以前进
</summary>
<returns></returns>
<remarks></remarks>
</member>
<member name="M:UTS_Core.UTSModule.Station.StationPlanGrid.ClearNavigation">
<summary>
</summary>
</member>
<member name="M:UTS_Core.UTSModule.Station.StationPlanGrid.IsExistLabelName(System.String)">
<summary>
当前模块名是否已存在
</summary>
<param name="labelName"></param>
<returns></returns>
</member>
<member name="M:UTS_Core.UTSModule.Station.StationPlanGrid.IsExistRecordName(System.String)">
<summary>
当前字段名
</summary>
<param name="recordName"></param>
<returns></returns>
</member>
<member name="M:UTS_Core.UTSModule.Station.StationPlanGrid.ClearLabelNames">
<summary>
清空标签名称
</summary>
</member>
<member name="M:UTS_Core.UTSModule.Station.StationPlanGrid.ClearRecordNames">
<summary>
清空记录名称
</summary>
</member>
<member name="M:UTS_Core.UTSModule.Station.StationPlanGrid.AddLabelName(System.String,System.Int32)">
<summary>
添加标签名称
</summary>
<param name="labelName">标签名称</param>
<param name="row">行号</param>
</member>
<member name="M:UTS_Core.UTSModule.Station.StationPlanGrid.AddRecordName(System.String,System.Int32)">
<summary>
添加记录名称
</summary>
<param name="recordName">记录名</param>
<param name="row">行号</param>
</member>
<member name="M:UTS_Core.UTSModule.Station.StationPlanGrid.RemoveLabelName(System.String)">
<summary>
移出标签名称
</summary>
<param name="labelName">标签名称</param>
</member>
<member name="M:UTS_Core.UTSModule.Station.StationPlanGrid.RemoveRecordName(System.String)">
<summary>
移出记录名称
</summary>
<param name="recordName">记录名称</param>
</member>
<member name="M:UTS_Core.UTSModule.Station.StationPlanGrid.GetLabelNameGridRow(System.String)">
<summary>
获取标签名称行号
</summary>
<param name="labelName"></param>
<returns></returns>
</member>
<member name="M:UTS_Core.UTSModule.Station.StationPlanGrid.GetRecordNameGridRow(System.String)">
<summary>
获取记录名称行号
</summary>
<param name="recordName"></param>
<returns></returns>
</member>
<member name="M:UTS_Core.UTSModule.Station.StationPlanGrid.ReflushLabelNames">
<summary>
从表格中重载标签名称
</summary>
</member>
<member name="M:UTS_Core.UTSModule.Station.StationPlanGrid.ReflushRecordNames">
<summary>
从表格中重载记录名称
</summary>
</member>
<member name="M:UTS_Core.UTSModule.Station.StationPlanGrid.Grid_MouseLeave(System.Object,System.EventArgs)">
@@ -6065,38 +6281,16 @@ UTS_Core
光标进入grd表格时原底色切换到选中行
</summary>
</member>
<member name="M:UTS_Core.UTSModule.Station.StationPlanGrid.setRowTextForeColor(System.String,System.Boolean,UTS_Core.UTSModule.Station.RowNode.RowTypeEnum)">
<summary>
根据CmdType 和 isAction 返回该行字体颜色
</summary>
<returns></returns>
</member>
<member name="M:UTS_Core.UTSModule.Station.StationPlanGrid.Mouse_MoveOnNode_BackColorRepain(FlexCell.Grid,System.Int32,System.Int32,System.Drawing.Color)">
<summary>
鼠标移动到节点位置时所有子节点背景着色
</summary>
</member>
<member name="M:UTS_Core.UTSModule.Station.StationPlanGrid.getRowActionEn(FlexCell.Grid,System.Int32)">
<member name="M:UTS_Core.UTSModule.Station.StationPlanGrid.NodeRowTypeChanged(UTS_Core.UTSModule.Station.RowNode)">
<summary>
FixModule节点Action变化时子节点字体重新着色
节点类型变更,修改节点行样式
</summary>
</member>
<member name="M:UTS_Core.UTSModule.Station.StationPlanGrid.NodeAction_Change(FlexCell.Grid,System.Int32,System.Int32,System.Boolean)">
<summary>
FixModule节点Action变化时子节点字体重新着色
</summary>
</member>
<member name="M:UTS_Core.UTSModule.Station.StationPlanGrid.Grid_Repain_By_ActionEn(FlexCell.Grid)">
<summary>
根据总表状态对单元格字体重新着色
</summary>
</member>
<member name="M:UTS_Core.UTSModule.Station.StationPlanGrid.UpdateGridInfo(FlexCell.Grid)">
<summary>
遍历表格,并更新到全局数组
</summary>
<param name="node"></param>
</member>
<member name="M:UTS_Core.UTSModule.Station.StationPlanGrid.NodeActionChanged(UTS_Core.UTSModule.Station.RowNode)">
<summary>
@@ -6115,16 +6309,6 @@ UTS_Core
选定行使能或清除Action选项
</summary>
</member>
<member name="M:UTS_Core.UTSModule.Station.StationPlanGrid.Call_UpdateGridActionInfo">
<summary>
更新表格内容到缓存,但是并不重新着色
</summary>
</member>
<member name="M:UTS_Core.UTSModule.Station.StationPlanGrid.UpdateGridActionInfo(FlexCell.Grid)">
<summary>
更新ActionEn信息
</summary>
</member>
<member name="M:UTS_Core.UTSModule.Station.StationPlanGrid.Grid_MouseMove(System.Object,System.Windows.Forms.MouseEventArgs)">
<summary>
光标移动时,所在行底色高亮
@@ -6171,18 +6355,24 @@ UTS_Core
初始化测试站表格
</summary>
</member>
<member name="M:UTS_Core.UTSModule.Station.StationPlanGrid.UpdateGrid">
<summary>
加载测试文件后更新表格
</summary>
<remarks></remarks>
</member>
<member name="M:UTS_Core.UTSModule.Station.StationPlanGrid.ExpandRows(UTS_Core.UTSModule.Station.RowNode)">
<summary>
展开行节点
</summary>
<param name="node"></param>
</member>
<member name="M:UTS_Core.UTSModule.Station.StationPlanGrid.NodeMoveLeft(System.Int32)">
<member name="M:UTS_Core.UTSModule.Station.StationPlanGrid.NodeMoveLeft(System.Int32,System.Int32)">
<summary>
节点升级
</summary>
</member>
<member name="M:UTS_Core.UTSModule.Station.StationPlanGrid.NodeMoveRight(System.Int32)">
<member name="M:UTS_Core.UTSModule.Station.StationPlanGrid.NodeMoveRight(System.Int32,System.Int32)">
<summary>
节点降级
</summary>
@@ -6841,6 +7031,12 @@ UTS_Core
</summary>
<returns></returns>
</member>
<member name="P:UTS_Core.UTSModule.Station.RowNode.CanMove">
<summary>
允许移动节点移动
</summary>
<returns></returns>
</member>
<member name="P:UTS_Core.UTSModule.Station.RowNode.IsRetry">
<summary>
当前节点是否处于重试状态
@@ -9723,6 +9919,46 @@ UTS系列App与UtsCore交互为避免重复书写产生的中间类
</summary>
<returns></returns>
</member>
<member name="P:UTS_Core.GridNavigationManager.IsRunning">
<summary>
是否正在执行导航操作
</summary>
<remarks></remarks>
</member>
<member name="P:UTS_Core.GridNavigationManager.CanForward">
<summary>
是否可以后退
</summary>
<returns></returns>
</member>
<member name="P:UTS_Core.GridNavigationManager.CanBackward">
<summary>
是否可以前进
</summary>
<returns></returns>
<remarks></remarks>
</member>
<member name="M:UTS_Core.GridNavigationManager.Append(UTS_Core.INavigation)">
<summary>
添加导航
<param name="navigation">导航</param>
</summary>
</member>
<member name="M:UTS_Core.GridNavigationManager.RemoveForward">
<summary>
</summary>
</member>
<member name="M:UTS_Core.INavigation.Backward">
<summary>
向后导航
</summary>
</member>
<member name="M:UTS_Core.INavigation.Forward">
<summary>
向前导航
</summary>
</member>
<member name="M:UTS_Core.utsLabel.RunMode">
<summary>
解析模式,并且确定有关参数

View File

@@ -1 +1 @@
86145609ae4e278126b1513a8d7bcc6e8b126d6182ad8e4d9bc96e6128318529
384cd63a033c7cce4d2758ed67c54e656ca20202fe3133d7e336e161ff5fae44

View File

@@ -206,3 +206,118 @@ D:\ML\Wen\AUTS\SQLliteReading\bin\Debug\ZstdSharp.dll
D:\ML\Wen\AUTS\SQLliteReading\bin\Debug\System.Threading.Tasks.Extensions.dll
D:\ML\Wen\AUTS\SQLliteReading\bin\Debug\SharpCompress.pdb
D:\ML\Wen\AUTS\SQLliteReading\bin\Debug\System.Threading.Tasks.Extensions.xml
C:\Project\SQLliteReading\obj\Debug\SQLliteReading.vbproj.AssemblyReference.cache
C:\Project\SQLliteReading\obj\Debug\AUTS_ProductEntry.exe.config
C:\Project\SQLliteReading\obj\Debug\AUTS_ProductEntry.FrmMain.resources
C:\Project\SQLliteReading\obj\Debug\AUTS_ProductEntry.Resources.resources
C:\Project\SQLliteReading\obj\Debug\SQLliteReading.vbproj.GenerateResource.cache
C:\Project\SQLliteReading\obj\Debug\SQLliteReading.vbproj.CoreCompileInputs.cache
C:\Project\SQLliteReading\obj\Debug\AUTS_ProductEntry.exe
C:\Project\SQLliteReading\obj\Debug\AUTS_ProductEntry.xml
C:\Project\SQLliteReading\obj\Debug\AUTS_ProductEntry.pdb
C:\Project\SQLliteReading\bin\Debug\x64\SQLite.Interop.dll
C:\Project\SQLliteReading\bin\Debug\x86\SQLite.Interop.dll
C:\Project\SQLliteReading\bin\Debug\AUTS_ProductEntry.exe.config
C:\Project\SQLliteReading\bin\Debug\AUTS_ProductEntry.exe
C:\Project\SQLliteReading\bin\Debug\AUTS_ProductEntry.pdb
C:\Project\SQLliteReading\bin\Debug\AUTS_ProductEntry.xml
C:\Project\SQLliteReading\bin\Debug\FlexCell.dll
C:\Project\SQLliteReading\bin\Debug\Newtonsoft.Json.Bson.dll
C:\Project\SQLliteReading\bin\Debug\Newtonsoft.Json.dll
C:\Project\SQLliteReading\bin\Debug\UTS_Core.dll
C:\Project\SQLliteReading\bin\Debug\SharpCompress.dll
C:\Project\SQLliteReading\bin\Debug\FluentFTP.dll
C:\Project\SQLliteReading\bin\Debug\TeeChart.dll
C:\Project\SQLliteReading\bin\Debug\MySql.Data.dll
C:\Project\SQLliteReading\bin\Debug\System.Memory.dll
C:\Project\SQLliteReading\bin\Debug\System.Buffers.dll
C:\Project\SQLliteReading\bin\Debug\ZstdSharp.dll
C:\Project\SQLliteReading\bin\Debug\Google.Protobuf.dll
C:\Project\SQLliteReading\bin\Debug\Zstandard.Net.dll
C:\Project\SQLliteReading\bin\Debug\K4os.Compression.LZ4.Streams.dll
C:\Project\SQLliteReading\bin\Debug\BouncyCastle.Crypto.dll
C:\Project\SQLliteReading\bin\Debug\Ubiety.Dns.Core.dll
C:\Project\SQLliteReading\bin\Debug\System.Numerics.Vectors.dll
C:\Project\SQLliteReading\bin\Debug\System.Runtime.CompilerServices.Unsafe.dll
C:\Project\SQLliteReading\bin\Debug\System.Threading.Tasks.Extensions.dll
C:\Project\SQLliteReading\bin\Debug\K4os.Compression.LZ4.dll
C:\Project\SQLliteReading\bin\Debug\K4os.Hash.xxHash.dll
C:\Project\SQLliteReading\bin\Debug\UTS_Core.pdb
C:\Project\SQLliteReading\bin\Debug\UTS_Core.xml
C:\Project\SQLliteReading\bin\Debug\UTS_Core.dll.config
C:\Project\SQLliteReading\bin\Debug\Newtonsoft.Json.xml
C:\Project\SQLliteReading\bin\Debug\Newtonsoft.Json.Bson.pdb
C:\Project\SQLliteReading\bin\Debug\Newtonsoft.Json.Bson.xml
C:\Project\SQLliteReading\bin\Debug\SharpCompress.pdb
C:\Project\SQLliteReading\bin\Debug\FluentFTP.xml
C:\Project\SQLliteReading\bin\Debug\MySql.Data.xml
C:\Project\SQLliteReading\bin\Debug\System.Memory.xml
C:\Project\SQLliteReading\bin\Debug\System.Buffers.xml
C:\Project\SQLliteReading\bin\Debug\Google.Protobuf.pdb
C:\Project\SQLliteReading\bin\Debug\Google.Protobuf.xml
C:\Project\SQLliteReading\bin\Debug\K4os.Compression.LZ4.Streams.xml
C:\Project\SQLliteReading\bin\Debug\System.Numerics.Vectors.xml
C:\Project\SQLliteReading\bin\Debug\System.Runtime.CompilerServices.Unsafe.xml
C:\Project\SQLliteReading\bin\Debug\System.Threading.Tasks.Extensions.xml
C:\Project\SQLliteReading\bin\Debug\K4os.Compression.LZ4.xml
C:\Project\SQLliteReading\bin\Debug\K4os.Hash.xxHash.xml
C:\Project\SQLliteReading\obj\Debug\SQLliteR.4BCD7BEC.Up2Date
G:\Git\AUTS\SQLliteReading\bin\Debug\x64\SQLite.Interop.dll
G:\Git\AUTS\SQLliteReading\bin\Debug\x86\SQLite.Interop.dll
G:\Git\AUTS\SQLliteReading\bin\Debug\AUTS_ProductEntry.exe.config
G:\Git\AUTS\SQLliteReading\bin\Debug\AUTS_ProductEntry.exe
G:\Git\AUTS\SQLliteReading\bin\Debug\AUTS_ProductEntry.pdb
G:\Git\AUTS\SQLliteReading\bin\Debug\AUTS_ProductEntry.xml
G:\Git\AUTS\SQLliteReading\bin\Debug\FlexCell.dll
G:\Git\AUTS\SQLliteReading\bin\Debug\Newtonsoft.Json.Bson.dll
G:\Git\AUTS\SQLliteReading\bin\Debug\Newtonsoft.Json.dll
G:\Git\AUTS\SQLliteReading\bin\Debug\UTS_Core.dll
G:\Git\AUTS\SQLliteReading\bin\Debug\SharpCompress.dll
G:\Git\AUTS\SQLliteReading\bin\Debug\FluentFTP.dll
G:\Git\AUTS\SQLliteReading\bin\Debug\TeeChart.dll
G:\Git\AUTS\SQLliteReading\bin\Debug\MySql.Data.dll
G:\Git\AUTS\SQLliteReading\bin\Debug\System.Memory.dll
G:\Git\AUTS\SQLliteReading\bin\Debug\System.Buffers.dll
G:\Git\AUTS\SQLliteReading\bin\Debug\ZstdSharp.dll
G:\Git\AUTS\SQLliteReading\bin\Debug\Google.Protobuf.dll
G:\Git\AUTS\SQLliteReading\bin\Debug\Zstandard.Net.dll
G:\Git\AUTS\SQLliteReading\bin\Debug\K4os.Compression.LZ4.Streams.dll
G:\Git\AUTS\SQLliteReading\bin\Debug\BouncyCastle.Crypto.dll
G:\Git\AUTS\SQLliteReading\bin\Debug\Ubiety.Dns.Core.dll
G:\Git\AUTS\SQLliteReading\bin\Debug\System.Numerics.Vectors.dll
G:\Git\AUTS\SQLliteReading\bin\Debug\System.Runtime.CompilerServices.Unsafe.dll
G:\Git\AUTS\SQLliteReading\bin\Debug\System.Threading.Tasks.Extensions.dll
G:\Git\AUTS\SQLliteReading\bin\Debug\K4os.Compression.LZ4.dll
G:\Git\AUTS\SQLliteReading\bin\Debug\K4os.Hash.xxHash.dll
G:\Git\AUTS\SQLliteReading\bin\Debug\UTS_Core.pdb
G:\Git\AUTS\SQLliteReading\bin\Debug\UTS_Core.xml
G:\Git\AUTS\SQLliteReading\bin\Debug\UTS_Core.dll.config
G:\Git\AUTS\SQLliteReading\bin\Debug\Newtonsoft.Json.xml
G:\Git\AUTS\SQLliteReading\bin\Debug\Newtonsoft.Json.Bson.pdb
G:\Git\AUTS\SQLliteReading\bin\Debug\Newtonsoft.Json.Bson.xml
G:\Git\AUTS\SQLliteReading\bin\Debug\SharpCompress.pdb
G:\Git\AUTS\SQLliteReading\bin\Debug\FluentFTP.xml
G:\Git\AUTS\SQLliteReading\bin\Debug\MySql.Data.xml
G:\Git\AUTS\SQLliteReading\bin\Debug\System.Memory.xml
G:\Git\AUTS\SQLliteReading\bin\Debug\System.Buffers.xml
G:\Git\AUTS\SQLliteReading\bin\Debug\Google.Protobuf.pdb
G:\Git\AUTS\SQLliteReading\bin\Debug\Google.Protobuf.xml
G:\Git\AUTS\SQLliteReading\bin\Debug\K4os.Compression.LZ4.Streams.xml
G:\Git\AUTS\SQLliteReading\bin\Debug\System.Numerics.Vectors.xml
G:\Git\AUTS\SQLliteReading\bin\Debug\System.Runtime.CompilerServices.Unsafe.xml
G:\Git\AUTS\SQLliteReading\bin\Debug\System.Threading.Tasks.Extensions.xml
G:\Git\AUTS\SQLliteReading\bin\Debug\K4os.Compression.LZ4.xml
G:\Git\AUTS\SQLliteReading\bin\Debug\K4os.Hash.xxHash.xml
G:\Git\AUTS\SQLliteReading\obj\Debug\SQLliteReading.vbproj.AssemblyReference.cache
G:\Git\AUTS\SQLliteReading\obj\Debug\AUTS_ProductEntry.exe.config
G:\Git\AUTS\SQLliteReading\obj\Debug\AUTS_ProductEntry.FrmMain.resources
G:\Git\AUTS\SQLliteReading\obj\Debug\AUTS_ProductEntry.Resources.resources
G:\Git\AUTS\SQLliteReading\obj\Debug\SQLliteReading.vbproj.GenerateResource.cache
G:\Git\AUTS\SQLliteReading\obj\Debug\SQLliteReading.vbproj.CoreCompileInputs.cache
G:\Git\AUTS\SQLliteReading\obj\Debug\SQLliteR.4BCD7BEC.Up2Date
G:\Git\AUTS\SQLliteReading\obj\Debug\AUTS_ProductEntry.exe
G:\Git\AUTS\SQLliteReading\obj\Debug\AUTS_ProductEntry.xml
G:\Git\AUTS\SQLliteReading\obj\Debug\AUTS_ProductEntry.pdb
G:\Git\AUTS\SQLliteReading\bin\Debug\AUTS_Win.exe
G:\Git\AUTS\SQLliteReading\bin\Debug\AUTS_Win.pdb
G:\Git\AUTS\SQLliteReading\bin\Debug\AUTS_Win.exe.config

View File

@@ -734,7 +734,7 @@ Namespace UTSModule.DbConnect
Dim sqlText As String = $"Call `{dbName}`.`UpdateSnListBarcode`('{result.DUT_SN}',{station.SnListOrder},'{timeString}',{logResult},'{a1String}');"
''CZH 2023 06 07 增加SN_list MoId
'CZH 2023 06 07 增加SN_list MoId
If result.CustomRecord.ContainsKey("InternalNo") And result.TestResult = TestResult.TestResultEnum.Pass Then
MoId = result.CustomRecord("OrderID")
sqlText = $"Call `{dbName}`.`UpdateSnListBarcode_MO`('{result.DUT_SN}',{station.SnListOrder},'{timeString}',{logResult},'{a1String}',{MoId});"
@@ -764,7 +764,7 @@ Namespace UTSModule.DbConnect
Dim MoId As String = "-1"
'A类型站额外更新组装字段
If station.StationType = ProcessStation.StationTypeEnum.Assem Then
a1String = result.CustomRecord("AssemblySn")
'a1String = result.CustomRecord("AssemblySn")
updateString &= $",`{SnListTable.ColNames.AssemblySn}` = '{a1String}',`{SnListTable.ColNames.AssemblyTime}` = '{timeString}'"
End If
@@ -774,7 +774,7 @@ Namespace UTSModule.DbConnect
If saveCache Then
cmdText = $"Call `{UtsDb.RemotePrivateDb}`.`UpdateSnListBarcode`('{result.DUT_SN}',{station.SnListOrder},'{timeString}',{logResult},'{a1String}');"
''CZH 2023 06 07 增加SN_list MoId
'CZH 2023 06 07 增加SN_list MoId
If result.CustomRecord.ContainsKey("OrderID") Then
MoId = result.CustomRecord("OrderID")
cmdText = $"Call `{dbName}`.`UpdateSnListBarcode_MO`('{result.DUT_SN}',{station.SnListOrder},'{timeString}',{logResult},'{a1String}',{MoId});"
@@ -796,6 +796,46 @@ Namespace UTSModule.DbConnect
End If
End Sub
''' <summary>
''' 更新SNList表指定字段名称的值
''' </summary>
''' <param name="db"></param>
''' <param name="dbName"></param>
''' <param name="filedNames"></param>
''' <param name="filedValues"></param>
''' <param name="saveCache"></param>
Public Shared Sub UpdateSnListTableToLocal(db As DbExecutor, dbName As String, filedNames As List(Of String), filedValues As List(Of String), Optional saveCache As Boolean = True)
'Dim timeString As String = $"{result.StartTime:yyyy-MM-dd HH:mm:ss}"
'Dim logResult As Integer = CInt(IIf(result.TestResult = TestResult.TestResultEnum.Pass, 1, 0))
'Dim a1String As String = ""
'Dim localDbName As String = UtsFilterDbName(db.DatabaseType, dbName) '过滤库名
'Dim updateString As String = $"`S{Station.SnListOrder}` = '{timeString}',`Result{Station.SnListOrder}` = {logResult}"
'Dim MoId As String = "-1"
''A类型站额外更新组装字段
'If Station.StationType = ProcessStation.StationTypeEnum.Assem Then
' 'a1String = result.CustomRecord("AssemblySn")
' updateString &= $",`{SnListTable.ColNames.AssemblySn}` = '{a1String}',`{SnListTable.ColNames.AssemblyTime}` = '{timeString}'"
'End If
'Dim condition As String = $"`{SnListTable.ColNames.ProductID}` = '{Station.ParentProject.Index}' and `{SnListTable.ColNames.BarCode}` = '{result.DUT_SN}'"
'Dim cmdText As String = db.CmdHelper.DbUpdate(localDbName, SnListTable.TableName, updateString, condition)
'db.ExecuteNonQuery(cmdText)
'If saveCache Then
' cmdText = $"Call `{UtsDb.RemotePrivateDb}`.`UpdateSnListBarcode`('{result.DUT_SN}',{Station.SnListOrder},'{timeString}',{logResult},'{a1String}');"
' 'CZH 2023 06 07 增加SN_list MoId
' If result.CustomRecord.ContainsKey("OrderID") Then
' MoId = result.CustomRecord("OrderID")
' cmdText = $"Call `{dbName}`.`UpdateSnListBarcode_MO`('{result.DUT_SN}',{Station.SnListOrder},'{timeString}',{logResult},'{a1String}',{MoId});"
' End If
' ''''''''''''''''''
' SaveCmdStringToCacheTable(db, cmdText)
'End If
End Sub
''' <summary>
''' 更新本地SN总表的测试记录(用于处理组播写入Sn总表操作)
''' </summary>

View File

@@ -1,4 +1,5 @@
Imports FluentFTP
Imports System.Text
Imports FluentFTP
Namespace UTSModule
Public Class FtpService
@@ -41,7 +42,10 @@ Namespace UTSModule
Dim result As Boolean
Using ftpClient As FtpClient = New FtpClient(_ftpHost, _ftpPort, _ftpUser, _ftpPwd)
AddHandler ftpClient.ValidateCertificate, AddressOf OnValidateCertificate
ftpClient.EncryptionMode = FtpEncryptionMode.Auto
ftpClient.EncryptionMode = FtpEncryptionMode.None
ftpClient.DataConnectionType = FtpDataConnectionType.PASV
ftpClient.Encoding = Encoding.UTF8
ftpClient.Connect()
ftpClient.Disconnect()
End Using
@@ -59,7 +63,10 @@ Namespace UTSModule
Dim result As Boolean
Using ftpClient As FtpClient = New FtpClient(_ftpHost, _ftpPort, _ftpUser, _ftpPwd)
AddHandler ftpClient.ValidateCertificate, AddressOf OnValidateCertificate
ftpClient.EncryptionMode = FtpEncryptionMode.Auto
ftpClient.EncryptionMode = FtpEncryptionMode.None
ftpClient.DataConnectionType = FtpDataConnectionType.PASV
ftpClient.Encoding = Encoding.UTF8
ftpClient.Connect()
result = ftpClient.FileExists(path)
@@ -78,7 +85,10 @@ Namespace UTSModule
Public Sub FtpUpload(remotePath As String, loadPath As String)
Using ftpClient As FtpClient = New FtpClient(_ftpHost, _ftpPort, _ftpUser, _ftpPwd)
AddHandler ftpClient.ValidateCertificate, AddressOf OnValidateCertificate
ftpClient.EncryptionMode = FtpEncryptionMode.Auto
ftpClient.EncryptionMode = FtpEncryptionMode.None
ftpClient.DataConnectionType = FtpDataConnectionType.PASV
ftpClient.Encoding = Encoding.UTF8
ftpClient.Connect()
ftpClient.UploadFile(loadPath, remotePath, FtpRemoteExists.Overwrite, True)
ftpClient.Disconnect()
@@ -93,7 +103,10 @@ Namespace UTSModule
Public Sub FtpDownload(remotePath As String, loadPath As String)
Using ftpClient As FtpClient = New FtpClient(_ftpHost, _ftpPort, _ftpUser, _ftpPwd)
AddHandler ftpClient.ValidateCertificate, AddressOf OnValidateCertificate
ftpClient.EncryptionMode = FtpEncryptionMode.Auto
ftpClient.EncryptionMode = FtpEncryptionMode.None
ftpClient.DataConnectionType = FtpDataConnectionType.PASV
ftpClient.Encoding = Encoding.UTF8
ftpClient.Connect()
ftpClient.DownloadFile(loadPath, remotePath)
ftpClient.Disconnect()

View File

@@ -173,6 +173,12 @@ Namespace UTSModule.Project
project.InfoChanged = True
End If
'Momo 2025-07-17 新增对项目有效期的修改检测
MsgBoxDtpValidDate.Value)
If String.Compare(project.EolDate.ToString, DtpValidDate.Value.ToString) <> 0 Then
project.EolDate = DtpValidDate.Value
project.InfoChanged = True
End If
If project.Price <> NudPrice.Value Then
project.Price = NudPrice.Value

View File

@@ -859,8 +859,7 @@ Namespace UTSModule.Project
Private Function ProjectExists(db As DbExecutor, dbName As String, project As ProjectInfo) As Boolean
Dim tableName As String = DbTableModel.Customer.ProjectTable.TableName
Dim colNames As String = $"Count(*)"
Dim condition As String = $"`{DbTableModel.Customer.ProjectTable.ColNames.ProjectName}` = '{project.Name}' or
`{DbTableModel.Customer.ProjectTable.ColNames.ID}` = '{project.Index}' "
Dim condition As String = $"`{DbTableModel.Customer.ProjectTable.ColNames.ProjectName}` = '{project.Name}' or `{DbTableModel.Customer.ProjectTable.ColNames.ID}` = '{project.Index}' "
Return CInt(db.ExecuteScalar(db.CmdHelper.DbSearch(dbName, colNames, tableName, condition))) > 0
End Function
@@ -1045,9 +1044,7 @@ Namespace UTSModule.Project
Private Function StationExists(db As DbExecutor, dbName As String, processStation As ProcessStation) As Boolean
Dim tableName As String = DbTableModel.Customer.StationListTable.TableName
Dim colName As String = "Count(*)"
Dim condition As String = $"`{DbTableModel.Customer.StationListTable.ColNames.ProjectID}` = {processStation.ParentProject.Index}
and (`{DbTableModel.Customer.StationListTable.ColNames.StationName}` = '{processStation.Name}'
or `{DbTableModel.Customer.StationListTable.ColNames.ID}` = '{processStation.StationID}')"
Dim condition As String = $"`{DbTableModel.Customer.StationListTable.ColNames.ProjectID}` = {processStation.ParentProject.Index} and (`{DbTableModel.Customer.StationListTable.ColNames.StationName}` = '{processStation.Name}' or `{DbTableModel.Customer.StationListTable.ColNames.ID}` = '{processStation.StationID}')"
Return CInt(db.ExecuteScalar(db.CmdHelper.DbSearch(dbName, colName, tableName, condition))) > 0
End Function

View File

@@ -80,6 +80,8 @@ Namespace UTSModule.Station
Me.TsmiDebugStart = New System.Windows.Forms.ToolStripMenuItem()
Me.TsmiDebugEnd = New System.Windows.Forms.ToolStripMenuItem()
Me.TsmiDebugContinue = New System.Windows.Forms.ToolStripMenuItem()
Me.执行1ToolStripMenuItem = New System.Windows.Forms.ToolStripMenuItem()
Me.执行2ToolStripMenuItem = New System.Windows.Forms.ToolStripMenuItem()
Me.TsmiDebugStep = New System.Windows.Forms.ToolStripMenuItem()
Me.ToolStripSeparator8 = New System.Windows.Forms.ToolStripSeparator()
Me.TsmiDebugSetup = New System.Windows.Forms.ToolStripMenuItem()
@@ -90,6 +92,7 @@ Namespace UTSModule.Station
Me.ToolStripSeparator9 = New System.Windows.Forms.ToolStripSeparator()
Me.TsmiDebugNode = New System.Windows.Forms.ToolStripMenuItem()
Me.TsmiDebugNodeBegin = New System.Windows.Forms.ToolStripMenuItem()
Me.TsmiJumpCall = New System.Windows.Forms.ToolStripMenuItem()
Me.GrpSingleRowInfo = New System.Windows.Forms.GroupBox()
Me.SplitContainer1 = New System.Windows.Forms.SplitContainer()
Me.GrdRowNode = New FlexCell.Grid()
@@ -98,7 +101,6 @@ Namespace UTSModule.Station
Me.TabControl1 = New System.Windows.Forms.TabControl()
Me.TpOutputInfo = New System.Windows.Forms.TabPage()
Me.RtxOutputInfo = New System.Windows.Forms.RichTextBox()
Me.TsmiJumpCall = New System.Windows.Forms.ToolStripMenuItem()
Me.ToolStrip1.SuspendLayout()
Me.StuMain.SuspendLayout()
CType(Me.SplStationPlan, System.ComponentModel.ISupportInitialize).BeginInit()
@@ -123,10 +125,12 @@ Namespace UTSModule.Station
'
'ToolStrip1
'
Me.ToolStrip1.ImageScalingSize = New System.Drawing.Size(24, 24)
Me.ToolStrip1.Items.AddRange(New System.Windows.Forms.ToolStripItem() {Me.TsBtnOpen, Me.TsBtnSave, Me.ToolStripSeparator4, Me.TsBtnLoad, Me.TsBtnSaveAs, Me.ToolStripSeparator3, Me.TsBtnBackward, Me.TsBtnForward, Me.ToolStripSeparator1, Me.TsBtnUndo, Me.TsBtnRedo, Me.ToolStripSeparator13, Me.tsBtnInsertRow, Me.tsBtnRemoveRow, Me.ToolStripSeparator14, Me.TsBtnMoveUp, Me.TsBtnMoveDown, Me.TsBtnMoveLeft, Me.TsBtnMoveRight, Me.ToolStripSeparator2, Me.TsBtnDebugMode, Me.TsBtnDebugStart, Me.TsBtnFailMode, Me.ToolStripSeparator10, Me.tslBtn_ActionOnly, Me.TsBtn_Record, Me.TsBtn_ExpandNode})
Me.ToolStrip1.Location = New System.Drawing.Point(0, 0)
Me.ToolStrip1.Name = "ToolStrip1"
Me.ToolStrip1.Size = New System.Drawing.Size(977, 40)
Me.ToolStrip1.Padding = New System.Windows.Forms.Padding(0, 0, 3, 0)
Me.ToolStrip1.Size = New System.Drawing.Size(1466, 58)
Me.ToolStrip1.TabIndex = 0
Me.ToolStrip1.Text = "ToolStrip1"
'
@@ -136,7 +140,7 @@ Namespace UTSModule.Station
Me.TsBtnOpen.Image = CType(resources.GetObject("TsBtnOpen.Image"), System.Drawing.Image)
Me.TsBtnOpen.ImageTransparentColor = System.Drawing.Color.Magenta
Me.TsBtnOpen.Name = "TsBtnOpen"
Me.TsBtnOpen.Size = New System.Drawing.Size(35, 37)
Me.TsBtnOpen.Size = New System.Drawing.Size(47, 53)
Me.TsBtnOpen.Text = "打开"
Me.TsBtnOpen.TextImageRelation = System.Windows.Forms.TextImageRelation.ImageAboveText
'
@@ -146,14 +150,14 @@ Namespace UTSModule.Station
Me.TsBtnSave.Image = CType(resources.GetObject("TsBtnSave.Image"), System.Drawing.Image)
Me.TsBtnSave.ImageTransparentColor = System.Drawing.Color.Magenta
Me.TsBtnSave.Name = "TsBtnSave"
Me.TsBtnSave.Size = New System.Drawing.Size(35, 37)
Me.TsBtnSave.Size = New System.Drawing.Size(47, 53)
Me.TsBtnSave.Text = "保存"
Me.TsBtnSave.TextImageRelation = System.Windows.Forms.TextImageRelation.ImageAboveText
'
'ToolStripSeparator4
'
Me.ToolStripSeparator4.Name = "ToolStripSeparator4"
Me.ToolStripSeparator4.Size = New System.Drawing.Size(6, 40)
Me.ToolStripSeparator4.Size = New System.Drawing.Size(6, 58)
'
'TsBtnLoad
'
@@ -161,7 +165,7 @@ Namespace UTSModule.Station
Me.TsBtnLoad.Image = CType(resources.GetObject("TsBtnLoad.Image"), System.Drawing.Image)
Me.TsBtnLoad.ImageTransparentColor = System.Drawing.Color.Magenta
Me.TsBtnLoad.Name = "TsBtnLoad"
Me.TsBtnLoad.Size = New System.Drawing.Size(35, 37)
Me.TsBtnLoad.Size = New System.Drawing.Size(47, 53)
Me.TsBtnLoad.Text = "重载"
Me.TsBtnLoad.TextImageRelation = System.Windows.Forms.TextImageRelation.ImageAboveText
'
@@ -171,14 +175,14 @@ Namespace UTSModule.Station
Me.TsBtnSaveAs.Image = CType(resources.GetObject("TsBtnSaveAs.Image"), System.Drawing.Image)
Me.TsBtnSaveAs.ImageTransparentColor = System.Drawing.Color.Magenta
Me.TsBtnSaveAs.Name = "TsBtnSaveAs"
Me.TsBtnSaveAs.Size = New System.Drawing.Size(35, 37)
Me.TsBtnSaveAs.Size = New System.Drawing.Size(47, 53)
Me.TsBtnSaveAs.Text = "导出"
Me.TsBtnSaveAs.TextImageRelation = System.Windows.Forms.TextImageRelation.ImageAboveText
'
'ToolStripSeparator3
'
Me.ToolStripSeparator3.Name = "ToolStripSeparator3"
Me.ToolStripSeparator3.Size = New System.Drawing.Size(6, 40)
Me.ToolStripSeparator3.Size = New System.Drawing.Size(6, 58)
'
'TsBtnBackward
'
@@ -186,7 +190,7 @@ Namespace UTSModule.Station
Me.TsBtnBackward.Image = CType(resources.GetObject("TsBtnBackward.Image"), System.Drawing.Image)
Me.TsBtnBackward.ImageTransparentColor = System.Drawing.Color.Magenta
Me.TsBtnBackward.Name = "TsBtnBackward"
Me.TsBtnBackward.Size = New System.Drawing.Size(47, 37)
Me.TsBtnBackward.Size = New System.Drawing.Size(64, 53)
Me.TsBtnBackward.Text = "上一步"
Me.TsBtnBackward.TextImageRelation = System.Windows.Forms.TextImageRelation.ImageAboveText
'
@@ -196,7 +200,7 @@ Namespace UTSModule.Station
Me.TsBtnForward.Image = CType(resources.GetObject("TsBtnForward.Image"), System.Drawing.Image)
Me.TsBtnForward.ImageTransparentColor = System.Drawing.Color.Magenta
Me.TsBtnForward.Name = "TsBtnForward"
Me.TsBtnForward.Size = New System.Drawing.Size(47, 37)
Me.TsBtnForward.Size = New System.Drawing.Size(64, 53)
Me.TsBtnForward.Text = "下一步"
Me.TsBtnForward.TextImageRelation = System.Windows.Forms.TextImageRelation.ImageAboveText
Me.TsBtnForward.ToolTipText = "下一步"
@@ -204,7 +208,7 @@ Namespace UTSModule.Station
'ToolStripSeparator1
'
Me.ToolStripSeparator1.Name = "ToolStripSeparator1"
Me.ToolStripSeparator1.Size = New System.Drawing.Size(6, 40)
Me.ToolStripSeparator1.Size = New System.Drawing.Size(6, 58)
'
'TsBtnUndo
'
@@ -212,7 +216,7 @@ Namespace UTSModule.Station
Me.TsBtnUndo.Image = CType(resources.GetObject("TsBtnUndo.Image"), System.Drawing.Image)
Me.TsBtnUndo.ImageTransparentColor = System.Drawing.Color.Magenta
Me.TsBtnUndo.Name = "TsBtnUndo"
Me.TsBtnUndo.Size = New System.Drawing.Size(35, 37)
Me.TsBtnUndo.Size = New System.Drawing.Size(47, 53)
Me.TsBtnUndo.Text = "撤销"
Me.TsBtnUndo.TextImageRelation = System.Windows.Forms.TextImageRelation.ImageAboveText
'
@@ -222,7 +226,7 @@ Namespace UTSModule.Station
Me.TsBtnRedo.Image = CType(resources.GetObject("TsBtnRedo.Image"), System.Drawing.Image)
Me.TsBtnRedo.ImageTransparentColor = System.Drawing.Color.Magenta
Me.TsBtnRedo.Name = "TsBtnRedo"
Me.TsBtnRedo.Size = New System.Drawing.Size(35, 37)
Me.TsBtnRedo.Size = New System.Drawing.Size(47, 53)
Me.TsBtnRedo.Text = "重做"
Me.TsBtnRedo.TextImageRelation = System.Windows.Forms.TextImageRelation.ImageAboveText
Me.TsBtnRedo.ToolTipText = "撤销"
@@ -230,14 +234,14 @@ Namespace UTSModule.Station
'ToolStripSeparator13
'
Me.ToolStripSeparator13.Name = "ToolStripSeparator13"
Me.ToolStripSeparator13.Size = New System.Drawing.Size(6, 40)
Me.ToolStripSeparator13.Size = New System.Drawing.Size(6, 58)
'
'tsBtnInsertRow
'
Me.tsBtnInsertRow.Image = CType(resources.GetObject("tsBtnInsertRow.Image"), System.Drawing.Image)
Me.tsBtnInsertRow.ImageTransparentColor = System.Drawing.Color.Magenta
Me.tsBtnInsertRow.Name = "tsBtnInsertRow"
Me.tsBtnInsertRow.Size = New System.Drawing.Size(48, 37)
Me.tsBtnInsertRow.Size = New System.Drawing.Size(73, 53)
Me.tsBtnInsertRow.Text = "插入行"
Me.tsBtnInsertRow.TextImageRelation = System.Windows.Forms.TextImageRelation.ImageAboveText
'
@@ -246,14 +250,14 @@ Namespace UTSModule.Station
Me.tsBtnRemoveRow.Image = CType(resources.GetObject("tsBtnRemoveRow.Image"), System.Drawing.Image)
Me.tsBtnRemoveRow.ImageTransparentColor = System.Drawing.Color.Magenta
Me.tsBtnRemoveRow.Name = "tsBtnRemoveRow"
Me.tsBtnRemoveRow.Size = New System.Drawing.Size(48, 37)
Me.tsBtnRemoveRow.Size = New System.Drawing.Size(73, 53)
Me.tsBtnRemoveRow.Text = "移除行"
Me.tsBtnRemoveRow.TextImageRelation = System.Windows.Forms.TextImageRelation.ImageAboveText
'
'ToolStripSeparator14
'
Me.ToolStripSeparator14.Name = "ToolStripSeparator14"
Me.ToolStripSeparator14.Size = New System.Drawing.Size(6, 40)
Me.ToolStripSeparator14.Size = New System.Drawing.Size(6, 58)
'
'TsBtnMoveUp
'
@@ -261,7 +265,7 @@ Namespace UTSModule.Station
Me.TsBtnMoveUp.Image = CType(resources.GetObject("TsBtnMoveUp.Image"), System.Drawing.Image)
Me.TsBtnMoveUp.ImageTransparentColor = System.Drawing.Color.Magenta
Me.TsBtnMoveUp.Name = "TsBtnMoveUp"
Me.TsBtnMoveUp.Size = New System.Drawing.Size(35, 37)
Me.TsBtnMoveUp.Size = New System.Drawing.Size(47, 53)
Me.TsBtnMoveUp.Text = "上移"
Me.TsBtnMoveUp.TextImageRelation = System.Windows.Forms.TextImageRelation.ImageAboveText
'
@@ -271,7 +275,7 @@ Namespace UTSModule.Station
Me.TsBtnMoveDown.Image = CType(resources.GetObject("TsBtnMoveDown.Image"), System.Drawing.Image)
Me.TsBtnMoveDown.ImageTransparentColor = System.Drawing.Color.Magenta
Me.TsBtnMoveDown.Name = "TsBtnMoveDown"
Me.TsBtnMoveDown.Size = New System.Drawing.Size(35, 37)
Me.TsBtnMoveDown.Size = New System.Drawing.Size(47, 53)
Me.TsBtnMoveDown.Text = "下移"
Me.TsBtnMoveDown.TextImageRelation = System.Windows.Forms.TextImageRelation.ImageAboveText
'
@@ -281,7 +285,7 @@ Namespace UTSModule.Station
Me.TsBtnMoveLeft.Image = CType(resources.GetObject("TsBtnMoveLeft.Image"), System.Drawing.Image)
Me.TsBtnMoveLeft.ImageTransparentColor = System.Drawing.Color.Magenta
Me.TsBtnMoveLeft.Name = "TsBtnMoveLeft"
Me.TsBtnMoveLeft.Size = New System.Drawing.Size(35, 37)
Me.TsBtnMoveLeft.Size = New System.Drawing.Size(47, 53)
Me.TsBtnMoveLeft.Text = "升级"
Me.TsBtnMoveLeft.TextImageRelation = System.Windows.Forms.TextImageRelation.ImageAboveText
'
@@ -291,21 +295,21 @@ Namespace UTSModule.Station
Me.TsBtnMoveRight.Image = CType(resources.GetObject("TsBtnMoveRight.Image"), System.Drawing.Image)
Me.TsBtnMoveRight.ImageTransparentColor = System.Drawing.Color.Magenta
Me.TsBtnMoveRight.Name = "TsBtnMoveRight"
Me.TsBtnMoveRight.Size = New System.Drawing.Size(35, 37)
Me.TsBtnMoveRight.Size = New System.Drawing.Size(47, 53)
Me.TsBtnMoveRight.Text = "降级"
Me.TsBtnMoveRight.TextImageRelation = System.Windows.Forms.TextImageRelation.ImageAboveText
'
'ToolStripSeparator2
'
Me.ToolStripSeparator2.Name = "ToolStripSeparator2"
Me.ToolStripSeparator2.Size = New System.Drawing.Size(6, 40)
Me.ToolStripSeparator2.Size = New System.Drawing.Size(6, 58)
'
'TsBtnDebugMode
'
Me.TsBtnDebugMode.Image = CType(resources.GetObject("TsBtnDebugMode.Image"), System.Drawing.Image)
Me.TsBtnDebugMode.ImageTransparentColor = System.Drawing.Color.Magenta
Me.TsBtnDebugMode.Name = "TsBtnDebugMode"
Me.TsBtnDebugMode.Size = New System.Drawing.Size(60, 37)
Me.TsBtnDebugMode.Size = New System.Drawing.Size(92, 53)
Me.TsBtnDebugMode.Text = "调试模式"
Me.TsBtnDebugMode.TextImageRelation = System.Windows.Forms.TextImageRelation.ImageAboveText
'
@@ -314,7 +318,7 @@ Namespace UTSModule.Station
Me.TsBtnDebugStart.Image = CType(resources.GetObject("TsBtnDebugStart.Image"), System.Drawing.Image)
Me.TsBtnDebugStart.ImageTransparentColor = System.Drawing.Color.Magenta
Me.TsBtnDebugStart.Name = "TsBtnDebugStart"
Me.TsBtnDebugStart.Size = New System.Drawing.Size(60, 37)
Me.TsBtnDebugStart.Size = New System.Drawing.Size(92, 53)
Me.TsBtnDebugStart.Text = "开始调试"
Me.TsBtnDebugStart.TextImageRelation = System.Windows.Forms.TextImageRelation.ImageAboveText
'
@@ -323,21 +327,21 @@ Namespace UTSModule.Station
Me.TsBtnFailMode.Image = CType(resources.GetObject("TsBtnFailMode.Image"), System.Drawing.Image)
Me.TsBtnFailMode.ImageTransparentColor = System.Drawing.Color.Magenta
Me.TsBtnFailMode.Name = "TsBtnFailMode"
Me.TsBtnFailMode.Size = New System.Drawing.Size(60, 37)
Me.TsBtnFailMode.Size = New System.Drawing.Size(92, 53)
Me.TsBtnFailMode.Text = "单步退出"
Me.TsBtnFailMode.TextImageRelation = System.Windows.Forms.TextImageRelation.ImageAboveText
'
'ToolStripSeparator10
'
Me.ToolStripSeparator10.Name = "ToolStripSeparator10"
Me.ToolStripSeparator10.Size = New System.Drawing.Size(6, 40)
Me.ToolStripSeparator10.Size = New System.Drawing.Size(6, 58)
'
'tslBtn_ActionOnly
'
Me.tslBtn_ActionOnly.Image = CType(resources.GetObject("tslBtn_ActionOnly.Image"), System.Drawing.Image)
Me.tslBtn_ActionOnly.ImageTransparentColor = System.Drawing.Color.Magenta
Me.tslBtn_ActionOnly.Name = "tslBtn_ActionOnly"
Me.tslBtn_ActionOnly.Size = New System.Drawing.Size(48, 37)
Me.tslBtn_ActionOnly.Size = New System.Drawing.Size(67, 53)
Me.tslBtn_ActionOnly.Text = "Action"
Me.tslBtn_ActionOnly.TextImageRelation = System.Windows.Forms.TextImageRelation.ImageAboveText
'
@@ -346,7 +350,7 @@ Namespace UTSModule.Station
Me.TsBtn_Record.Image = CType(resources.GetObject("TsBtn_Record.Image"), System.Drawing.Image)
Me.TsBtn_Record.ImageTransparentColor = System.Drawing.Color.Magenta
Me.TsBtn_Record.Name = "TsBtn_Record"
Me.TsBtn_Record.Size = New System.Drawing.Size(54, 37)
Me.TsBtn_Record.Size = New System.Drawing.Size(71, 53)
Me.TsBtn_Record.Text = "Record"
Me.TsBtn_Record.TextImageRelation = System.Windows.Forms.TextImageRelation.ImageAboveText
'
@@ -355,16 +359,18 @@ Namespace UTSModule.Station
Me.TsBtn_ExpandNode.Image = CType(resources.GetObject("TsBtn_ExpandNode.Image"), System.Drawing.Image)
Me.TsBtn_ExpandNode.ImageTransparentColor = System.Drawing.Color.Magenta
Me.TsBtn_ExpandNode.Name = "TsBtn_ExpandNode"
Me.TsBtn_ExpandNode.Size = New System.Drawing.Size(55, 37)
Me.TsBtn_ExpandNode.Size = New System.Drawing.Size(74, 53)
Me.TsBtn_ExpandNode.Text = "Expand"
Me.TsBtn_ExpandNode.TextImageRelation = System.Windows.Forms.TextImageRelation.ImageAboveText
'
'StuMain
'
Me.StuMain.ImageScalingSize = New System.Drawing.Size(24, 24)
Me.StuMain.Items.AddRange(New System.Windows.Forms.ToolStripItem() {Me.TssLblTestStatus, Me.TssLblTestTime, Me.TssBarTestProgress})
Me.StuMain.Location = New System.Drawing.Point(0, 558)
Me.StuMain.Location = New System.Drawing.Point(0, 841)
Me.StuMain.Name = "StuMain"
Me.StuMain.Size = New System.Drawing.Size(977, 22)
Me.StuMain.Padding = New System.Windows.Forms.Padding(2, 0, 21, 0)
Me.StuMain.Size = New System.Drawing.Size(1466, 29)
Me.StuMain.TabIndex = 1
Me.StuMain.Text = "StatusStrip1"
'
@@ -372,7 +378,7 @@ Namespace UTSModule.Station
'
Me.TssLblTestStatus.AutoSize = False
Me.TssLblTestStatus.Name = "TssLblTestStatus"
Me.TssLblTestStatus.Size = New System.Drawing.Size(120, 17)
Me.TssLblTestStatus.Size = New System.Drawing.Size(120, 22)
Me.TssLblTestStatus.Text = "测试状态"
'
'TssLblTestTime
@@ -381,19 +387,20 @@ Namespace UTSModule.Station
Me.TssLblTestTime.ForeColor = System.Drawing.Color.Green
Me.TssLblTestTime.Name = "TssLblTestTime"
Me.TssLblTestTime.Overflow = System.Windows.Forms.ToolStripItemOverflow.Always
Me.TssLblTestTime.Size = New System.Drawing.Size(160, 17)
Me.TssLblTestTime.Size = New System.Drawing.Size(160, 22)
Me.TssLblTestTime.Text = "TimeExpend:00:00:00:000"
'
'TssBarTestProgress
'
Me.TssBarTestProgress.AutoSize = False
Me.TssBarTestProgress.Name = "TssBarTestProgress"
Me.TssBarTestProgress.Size = New System.Drawing.Size(200, 16)
Me.TssBarTestProgress.Size = New System.Drawing.Size(300, 21)
'
'SplStationPlan
'
Me.SplStationPlan.Dock = System.Windows.Forms.DockStyle.Fill
Me.SplStationPlan.Location = New System.Drawing.Point(0, 40)
Me.SplStationPlan.Location = New System.Drawing.Point(0, 58)
Me.SplStationPlan.Margin = New System.Windows.Forms.Padding(4)
Me.SplStationPlan.Name = "SplStationPlan"
Me.SplStationPlan.Orientation = System.Windows.Forms.Orientation.Horizontal
'
@@ -404,14 +411,17 @@ Namespace UTSModule.Station
'SplStationPlan.Panel2
'
Me.SplStationPlan.Panel2.Controls.Add(Me.GrpOutputInfo)
Me.SplStationPlan.Size = New System.Drawing.Size(977, 518)
Me.SplStationPlan.SplitterDistance = 348
Me.SplStationPlan.Size = New System.Drawing.Size(1466, 783)
Me.SplStationPlan.SplitterDistance = 526
Me.SplStationPlan.SplitterWidth = 6
Me.SplStationPlan.TabIndex = 10
'
'SplPlanDesign
'
Me.SplPlanDesign.Dock = System.Windows.Forms.DockStyle.Fill
Me.SplPlanDesign.FixedPanel = System.Windows.Forms.FixedPanel.Panel2
Me.SplPlanDesign.Location = New System.Drawing.Point(0, 0)
Me.SplPlanDesign.Margin = New System.Windows.Forms.Padding(4)
Me.SplPlanDesign.Name = "SplPlanDesign"
'
'SplPlanDesign.Panel1
@@ -421,8 +431,9 @@ Namespace UTSModule.Station
'SplPlanDesign.Panel2
'
Me.SplPlanDesign.Panel2.Controls.Add(Me.GrpSingleRowInfo)
Me.SplPlanDesign.Size = New System.Drawing.Size(977, 348)
Me.SplPlanDesign.SplitterDistance = 671
Me.SplPlanDesign.Size = New System.Drawing.Size(1466, 526)
Me.SplPlanDesign.SplitterDistance = 1006
Me.SplPlanDesign.SplitterWidth = 6
Me.SplPlanDesign.TabIndex = 0
'
'GrpStationPlan
@@ -430,8 +441,10 @@ Namespace UTSModule.Station
Me.GrpStationPlan.Controls.Add(Me.GrdStationPlan)
Me.GrpStationPlan.Dock = System.Windows.Forms.DockStyle.Fill
Me.GrpStationPlan.Location = New System.Drawing.Point(0, 0)
Me.GrpStationPlan.Margin = New System.Windows.Forms.Padding(4)
Me.GrpStationPlan.Name = "GrpStationPlan"
Me.GrpStationPlan.Size = New System.Drawing.Size(671, 348)
Me.GrpStationPlan.Padding = New System.Windows.Forms.Padding(4)
Me.GrpStationPlan.Size = New System.Drawing.Size(1006, 526)
Me.GrpStationPlan.TabIndex = 45
Me.GrpStationPlan.TabStop = False
Me.GrpStationPlan.Text = "执行流程"
@@ -441,19 +454,22 @@ Namespace UTSModule.Station
Me.GrdStationPlan.BorderStyle = FlexCell.BorderStyleEnum.None
Me.GrdStationPlan.ContextMenuStrip = Me.CmsPlanGrid
Me.GrdStationPlan.DefaultFont = New System.Drawing.Font("宋体", 9.0!)
Me.GrdStationPlan.DefaultRowHeight = CType(28, Short)
Me.GrdStationPlan.Dock = System.Windows.Forms.DockStyle.Fill
Me.GrdStationPlan.GridColor = System.Drawing.Color.FromArgb(CType(CType(192, Byte), Integer), CType(CType(192, Byte), Integer), CType(CType(192, Byte), Integer))
Me.GrdStationPlan.Location = New System.Drawing.Point(3, 17)
Me.GrdStationPlan.Location = New System.Drawing.Point(4, 25)
Me.GrdStationPlan.Margin = New System.Windows.Forms.Padding(4)
Me.GrdStationPlan.MouseWheelSpeed = CType(3, Short)
Me.GrdStationPlan.Name = "GrdStationPlan"
Me.GrdStationPlan.Size = New System.Drawing.Size(665, 328)
Me.GrdStationPlan.Size = New System.Drawing.Size(998, 497)
Me.GrdStationPlan.TabIndex = 0
'
'CmsPlanGrid
'
Me.CmsPlanGrid.Items.AddRange(New System.Windows.Forms.ToolStripItem() {Me.MsiGridRowBlockInsert, Me.MsiGridRowBlockDelete, Me.ToolStripSeparator7, Me.tsBtn_CheckAction, Me.tsBtn_UncheckAction, Me.ToolStripSeparator15, Me.MsiUndo, Me.MsiRedo, Me.ToolStripSeparator6, Me.MsiSaveNodeFile, Me.MsiLoadNodeFile, Me.ToolStripSeparator11, Me.TsmiDebugStart, Me.TsmiDebugEnd, Me.TsmiDebugContinue, Me.TsmiDebugStep, Me.ToolStripSeparator8, Me.TsmiDebugSetup, Me.TsmiDebugMain, Me.TsmiDebugPass, Me.TsmiDebugFail, Me.TsmiDebugCleanup, Me.ToolStripSeparator9, Me.TsmiDebugNode, Me.TsmiDebugNodeBegin, Me.TsmiJumpCall})
Me.CmsPlanGrid.ImageScalingSize = New System.Drawing.Size(24, 24)
Me.CmsPlanGrid.Items.AddRange(New System.Windows.Forms.ToolStripItem() {Me.MsiGridRowBlockInsert, Me.MsiGridRowBlockDelete, Me.ToolStripSeparator7, Me.tsBtn_CheckAction, Me.tsBtn_UncheckAction, Me.ToolStripSeparator15, Me.MsiUndo, Me.MsiRedo, Me.ToolStripSeparator6, Me.MsiSaveNodeFile, Me.MsiLoadNodeFile, Me.ToolStripSeparator11, Me.TsmiDebugStart, Me.TsmiDebugEnd, Me.TsmiDebugContinue, Me.执行1ToolStripMenuItem, Me.执行2ToolStripMenuItem, Me.TsmiDebugStep, Me.ToolStripSeparator8, Me.TsmiDebugSetup, Me.TsmiDebugMain, Me.TsmiDebugPass, Me.TsmiDebugFail, Me.TsmiDebugCleanup, Me.ToolStripSeparator9, Me.TsmiDebugNode, Me.TsmiDebugNodeBegin, Me.TsmiJumpCall})
Me.CmsPlanGrid.Name = "CmsMain"
Me.CmsPlanGrid.Size = New System.Drawing.Size(222, 502)
Me.CmsPlanGrid.Size = New System.Drawing.Size(303, 744)
'
'MsiGridRowBlockInsert
'
@@ -461,7 +477,7 @@ Namespace UTSModule.Station
Me.MsiGridRowBlockInsert.Name = "MsiGridRowBlockInsert"
Me.MsiGridRowBlockInsert.ShortcutKeyDisplayString = "Ctr+I"
Me.MsiGridRowBlockInsert.ShortcutKeys = CType((System.Windows.Forms.Keys.Control Or System.Windows.Forms.Keys.I), System.Windows.Forms.Keys)
Me.MsiGridRowBlockInsert.Size = New System.Drawing.Size(221, 22)
Me.MsiGridRowBlockInsert.Size = New System.Drawing.Size(302, 32)
Me.MsiGridRowBlockInsert.Text = "插入"
'
'MsiGridRowBlockDelete
@@ -470,75 +486,75 @@ Namespace UTSModule.Station
Me.MsiGridRowBlockDelete.Name = "MsiGridRowBlockDelete"
Me.MsiGridRowBlockDelete.ShortcutKeyDisplayString = "Ctr+D"
Me.MsiGridRowBlockDelete.ShortcutKeys = CType((System.Windows.Forms.Keys.Control Or System.Windows.Forms.Keys.D), System.Windows.Forms.Keys)
Me.MsiGridRowBlockDelete.Size = New System.Drawing.Size(221, 22)
Me.MsiGridRowBlockDelete.Size = New System.Drawing.Size(302, 32)
Me.MsiGridRowBlockDelete.Text = "删除"
'
'ToolStripSeparator7
'
Me.ToolStripSeparator7.Name = "ToolStripSeparator7"
Me.ToolStripSeparator7.Size = New System.Drawing.Size(218, 6)
Me.ToolStripSeparator7.Size = New System.Drawing.Size(299, 6)
'
'tsBtn_CheckAction
'
Me.tsBtn_CheckAction.Image = CType(resources.GetObject("tsBtn_CheckAction.Image"), System.Drawing.Image)
Me.tsBtn_CheckAction.Name = "tsBtn_CheckAction"
Me.tsBtn_CheckAction.Size = New System.Drawing.Size(221, 22)
Me.tsBtn_CheckAction.Size = New System.Drawing.Size(302, 32)
Me.tsBtn_CheckAction.Text = "勾选测试"
'
'tsBtn_UncheckAction
'
Me.tsBtn_UncheckAction.Image = CType(resources.GetObject("tsBtn_UncheckAction.Image"), System.Drawing.Image)
Me.tsBtn_UncheckAction.Name = "tsBtn_UncheckAction"
Me.tsBtn_UncheckAction.Size = New System.Drawing.Size(221, 22)
Me.tsBtn_UncheckAction.Size = New System.Drawing.Size(302, 32)
Me.tsBtn_UncheckAction.Text = "取消勾选测试"
'
'ToolStripSeparator15
'
Me.ToolStripSeparator15.Name = "ToolStripSeparator15"
Me.ToolStripSeparator15.Size = New System.Drawing.Size(218, 6)
Me.ToolStripSeparator15.Size = New System.Drawing.Size(299, 6)
'
'MsiUndo
'
Me.MsiUndo.Name = "MsiUndo"
Me.MsiUndo.ShortcutKeys = CType((System.Windows.Forms.Keys.Control Or System.Windows.Forms.Keys.Z), System.Windows.Forms.Keys)
Me.MsiUndo.Size = New System.Drawing.Size(221, 22)
Me.MsiUndo.Size = New System.Drawing.Size(302, 32)
Me.MsiUndo.Text = "撤销"
'
'MsiRedo
'
Me.MsiRedo.Name = "MsiRedo"
Me.MsiRedo.ShortcutKeys = CType((System.Windows.Forms.Keys.Control Or System.Windows.Forms.Keys.Y), System.Windows.Forms.Keys)
Me.MsiRedo.Size = New System.Drawing.Size(221, 22)
Me.MsiRedo.Size = New System.Drawing.Size(302, 32)
Me.MsiRedo.Text = "重做"
'
'ToolStripSeparator6
'
Me.ToolStripSeparator6.Name = "ToolStripSeparator6"
Me.ToolStripSeparator6.Size = New System.Drawing.Size(218, 6)
Me.ToolStripSeparator6.Size = New System.Drawing.Size(299, 6)
'
'MsiSaveNodeFile
'
Me.MsiSaveNodeFile.Name = "MsiSaveNodeFile"
Me.MsiSaveNodeFile.Size = New System.Drawing.Size(221, 22)
Me.MsiSaveNodeFile.Size = New System.Drawing.Size(302, 32)
Me.MsiSaveNodeFile.Text = "另存为节点文件"
'
'MsiLoadNodeFile
'
Me.MsiLoadNodeFile.Name = "MsiLoadNodeFile"
Me.MsiLoadNodeFile.Size = New System.Drawing.Size(221, 22)
Me.MsiLoadNodeFile.Size = New System.Drawing.Size(302, 32)
Me.MsiLoadNodeFile.Text = "加载节点文件"
'
'ToolStripSeparator11
'
Me.ToolStripSeparator11.Name = "ToolStripSeparator11"
Me.ToolStripSeparator11.Size = New System.Drawing.Size(218, 6)
Me.ToolStripSeparator11.Size = New System.Drawing.Size(299, 6)
'
'TsmiDebugStart
'
Me.TsmiDebugStart.Image = CType(resources.GetObject("TsmiDebugStart.Image"), System.Drawing.Image)
Me.TsmiDebugStart.Name = "TsmiDebugStart"
Me.TsmiDebugStart.ShortcutKeys = System.Windows.Forms.Keys.F5
Me.TsmiDebugStart.Size = New System.Drawing.Size(221, 22)
Me.TsmiDebugStart.Size = New System.Drawing.Size(302, 32)
Me.TsmiDebugStart.Text = "开始执行"
'
'TsmiDebugEnd
@@ -546,7 +562,7 @@ Namespace UTSModule.Station
Me.TsmiDebugEnd.Image = CType(resources.GetObject("TsmiDebugEnd.Image"), System.Drawing.Image)
Me.TsmiDebugEnd.Name = "TsmiDebugEnd"
Me.TsmiDebugEnd.ShortcutKeys = CType((System.Windows.Forms.Keys.Shift Or System.Windows.Forms.Keys.F5), System.Windows.Forms.Keys)
Me.TsmiDebugEnd.Size = New System.Drawing.Size(221, 22)
Me.TsmiDebugEnd.Size = New System.Drawing.Size(302, 32)
Me.TsmiDebugEnd.Text = "退出执行"
'
'TsmiDebugContinue
@@ -554,83 +570,107 @@ Namespace UTSModule.Station
Me.TsmiDebugContinue.Image = CType(resources.GetObject("TsmiDebugContinue.Image"), System.Drawing.Image)
Me.TsmiDebugContinue.Name = "TsmiDebugContinue"
Me.TsmiDebugContinue.ShortcutKeys = CType((System.Windows.Forms.Keys.Alt Or System.Windows.Forms.Keys.F5), System.Windows.Forms.Keys)
Me.TsmiDebugContinue.Size = New System.Drawing.Size(221, 22)
Me.TsmiDebugContinue.Size = New System.Drawing.Size(302, 32)
Me.TsmiDebugContinue.Text = "继续执行"
'
'执行1ToolStripMenuItem
'
Me.执行1ToolStripMenuItem.Name = "执行1ToolStripMenuItem"
Me.执行1ToolStripMenuItem.ShortcutKeys = System.Windows.Forms.Keys.F9
Me.执行1ToolStripMenuItem.Size = New System.Drawing.Size(302, 32)
Me.执行1ToolStripMenuItem.Text = "单步重复"
'
'执行2ToolStripMenuItem
'
Me.执行2ToolStripMenuItem.Name = "执行2ToolStripMenuItem"
Me.执行2ToolStripMenuItem.ShortcutKeys = System.Windows.Forms.Keys.F10
Me.执行2ToolStripMenuItem.Size = New System.Drawing.Size(302, 32)
Me.执行2ToolStripMenuItem.Text = "单步调试"
'
'TsmiDebugStep
'
Me.TsmiDebugStep.Image = CType(resources.GetObject("TsmiDebugStep.Image"), System.Drawing.Image)
Me.TsmiDebugStep.Name = "TsmiDebugStep"
Me.TsmiDebugStep.ShortcutKeys = System.Windows.Forms.Keys.F11
Me.TsmiDebugStep.Size = New System.Drawing.Size(221, 22)
Me.TsmiDebugStep.Text = "单步执行"
Me.TsmiDebugStep.Size = New System.Drawing.Size(302, 32)
Me.TsmiDebugStep.Text = "单步断点调试"
'
'ToolStripSeparator8
'
Me.ToolStripSeparator8.Name = "ToolStripSeparator8"
Me.ToolStripSeparator8.Size = New System.Drawing.Size(218, 6)
Me.ToolStripSeparator8.Size = New System.Drawing.Size(299, 6)
'
'TsmiDebugSetup
'
Me.TsmiDebugSetup.Name = "TsmiDebugSetup"
Me.TsmiDebugSetup.ShortcutKeys = CType((System.Windows.Forms.Keys.Control Or System.Windows.Forms.Keys.F1), System.Windows.Forms.Keys)
Me.TsmiDebugSetup.Size = New System.Drawing.Size(221, 22)
Me.TsmiDebugSetup.Size = New System.Drawing.Size(302, 32)
Me.TsmiDebugSetup.Text = "Setup模块执行"
'
'TsmiDebugMain
'
Me.TsmiDebugMain.Name = "TsmiDebugMain"
Me.TsmiDebugMain.ShortcutKeys = CType((System.Windows.Forms.Keys.Control Or System.Windows.Forms.Keys.F2), System.Windows.Forms.Keys)
Me.TsmiDebugMain.Size = New System.Drawing.Size(221, 22)
Me.TsmiDebugMain.Size = New System.Drawing.Size(302, 32)
Me.TsmiDebugMain.Text = "Main模块执行"
'
'TsmiDebugPass
'
Me.TsmiDebugPass.Name = "TsmiDebugPass"
Me.TsmiDebugPass.ShortcutKeys = CType((System.Windows.Forms.Keys.Control Or System.Windows.Forms.Keys.F3), System.Windows.Forms.Keys)
Me.TsmiDebugPass.Size = New System.Drawing.Size(221, 22)
Me.TsmiDebugPass.Size = New System.Drawing.Size(302, 32)
Me.TsmiDebugPass.Text = "Pass模块执行"
'
'TsmiDebugFail
'
Me.TsmiDebugFail.Name = "TsmiDebugFail"
Me.TsmiDebugFail.ShortcutKeys = CType((System.Windows.Forms.Keys.Control Or System.Windows.Forms.Keys.F4), System.Windows.Forms.Keys)
Me.TsmiDebugFail.Size = New System.Drawing.Size(221, 22)
Me.TsmiDebugFail.Size = New System.Drawing.Size(302, 32)
Me.TsmiDebugFail.Text = "Fail模块执行"
'
'TsmiDebugCleanup
'
Me.TsmiDebugCleanup.Name = "TsmiDebugCleanup"
Me.TsmiDebugCleanup.ShortcutKeys = CType((System.Windows.Forms.Keys.Control Or System.Windows.Forms.Keys.F5), System.Windows.Forms.Keys)
Me.TsmiDebugCleanup.Size = New System.Drawing.Size(221, 22)
Me.TsmiDebugCleanup.Size = New System.Drawing.Size(302, 32)
Me.TsmiDebugCleanup.Text = "Cleanup模块执行"
'
'ToolStripSeparator9
'
Me.ToolStripSeparator9.Name = "ToolStripSeparator9"
Me.ToolStripSeparator9.Size = New System.Drawing.Size(218, 6)
Me.ToolStripSeparator9.Size = New System.Drawing.Size(299, 6)
'
'TsmiDebugNode
'
Me.TsmiDebugNode.Name = "TsmiDebugNode"
Me.TsmiDebugNode.ShortcutKeys = CType((System.Windows.Forms.Keys.Control Or System.Windows.Forms.Keys.F10), System.Windows.Forms.Keys)
Me.TsmiDebugNode.Size = New System.Drawing.Size(221, 22)
Me.TsmiDebugNode.Size = New System.Drawing.Size(302, 32)
Me.TsmiDebugNode.Text = "节点测试"
'
'TsmiDebugNodeBegin
'
Me.TsmiDebugNodeBegin.Name = "TsmiDebugNodeBegin"
Me.TsmiDebugNodeBegin.ShortcutKeys = CType((System.Windows.Forms.Keys.Control Or System.Windows.Forms.Keys.F11), System.Windows.Forms.Keys)
Me.TsmiDebugNodeBegin.Size = New System.Drawing.Size(221, 22)
Me.TsmiDebugNodeBegin.Size = New System.Drawing.Size(302, 32)
Me.TsmiDebugNodeBegin.Text = "节点开始测试"
'
'TsmiJumpCall
'
Me.TsmiJumpCall.Name = "TsmiJumpCall"
Me.TsmiJumpCall.ShortcutKeys = System.Windows.Forms.Keys.F12
Me.TsmiJumpCall.Size = New System.Drawing.Size(302, 32)
Me.TsmiJumpCall.Text = "函数跳转"
Me.TsmiJumpCall.Visible = False
'
'GrpSingleRowInfo
'
Me.GrpSingleRowInfo.Controls.Add(Me.SplitContainer1)
Me.GrpSingleRowInfo.Dock = System.Windows.Forms.DockStyle.Fill
Me.GrpSingleRowInfo.Location = New System.Drawing.Point(0, 0)
Me.GrpSingleRowInfo.Margin = New System.Windows.Forms.Padding(4)
Me.GrpSingleRowInfo.Name = "GrpSingleRowInfo"
Me.GrpSingleRowInfo.Size = New System.Drawing.Size(302, 348)
Me.GrpSingleRowInfo.Padding = New System.Windows.Forms.Padding(4)
Me.GrpSingleRowInfo.Size = New System.Drawing.Size(454, 526)
Me.GrpSingleRowInfo.TabIndex = 1
Me.GrpSingleRowInfo.TabStop = False
Me.GrpSingleRowInfo.Text = "属性"
@@ -639,7 +679,8 @@ Namespace UTSModule.Station
'
Me.SplitContainer1.Dock = System.Windows.Forms.DockStyle.Fill
Me.SplitContainer1.FixedPanel = System.Windows.Forms.FixedPanel.Panel2
Me.SplitContainer1.Location = New System.Drawing.Point(3, 17)
Me.SplitContainer1.Location = New System.Drawing.Point(4, 25)
Me.SplitContainer1.Margin = New System.Windows.Forms.Padding(4)
Me.SplitContainer1.Name = "SplitContainer1"
Me.SplitContainer1.Orientation = System.Windows.Forms.Orientation.Horizontal
'
@@ -650,20 +691,23 @@ Namespace UTSModule.Station
'SplitContainer1.Panel2
'
Me.SplitContainer1.Panel2.Controls.Add(Me.RtxColTip)
Me.SplitContainer1.Size = New System.Drawing.Size(296, 328)
Me.SplitContainer1.SplitterDistance = 246
Me.SplitContainer1.Size = New System.Drawing.Size(446, 497)
Me.SplitContainer1.SplitterDistance = 407
Me.SplitContainer1.SplitterWidth = 6
Me.SplitContainer1.TabIndex = 1
'
'GrdRowNode
'
Me.GrdRowNode.BorderStyle = FlexCell.BorderStyleEnum.None
Me.GrdRowNode.DefaultFont = New System.Drawing.Font("宋体", 9.0!)
Me.GrdRowNode.DefaultRowHeight = CType(28, Short)
Me.GrdRowNode.Dock = System.Windows.Forms.DockStyle.Fill
Me.GrdRowNode.GridColor = System.Drawing.Color.FromArgb(CType(CType(192, Byte), Integer), CType(CType(192, Byte), Integer), CType(CType(192, Byte), Integer))
Me.GrdRowNode.Location = New System.Drawing.Point(0, 0)
Me.GrdRowNode.Margin = New System.Windows.Forms.Padding(4)
Me.GrdRowNode.MouseWheelSpeed = CType(3, Short)
Me.GrdRowNode.Name = "GrdRowNode"
Me.GrdRowNode.Size = New System.Drawing.Size(296, 246)
Me.GrdRowNode.Size = New System.Drawing.Size(446, 407)
Me.GrdRowNode.TabIndex = 0
'
'RtxColTip
@@ -672,8 +716,9 @@ Namespace UTSModule.Station
Me.RtxColTip.Dock = System.Windows.Forms.DockStyle.Fill
Me.RtxColTip.Enabled = False
Me.RtxColTip.Location = New System.Drawing.Point(0, 0)
Me.RtxColTip.Margin = New System.Windows.Forms.Padding(4)
Me.RtxColTip.Name = "RtxColTip"
Me.RtxColTip.Size = New System.Drawing.Size(296, 78)
Me.RtxColTip.Size = New System.Drawing.Size(446, 84)
Me.RtxColTip.TabIndex = 0
Me.RtxColTip.Text = ""
'
@@ -682,8 +727,10 @@ Namespace UTSModule.Station
Me.GrpOutputInfo.Controls.Add(Me.TabControl1)
Me.GrpOutputInfo.Dock = System.Windows.Forms.DockStyle.Fill
Me.GrpOutputInfo.Location = New System.Drawing.Point(0, 0)
Me.GrpOutputInfo.Margin = New System.Windows.Forms.Padding(4)
Me.GrpOutputInfo.Name = "GrpOutputInfo"
Me.GrpOutputInfo.Size = New System.Drawing.Size(977, 166)
Me.GrpOutputInfo.Padding = New System.Windows.Forms.Padding(4)
Me.GrpOutputInfo.Size = New System.Drawing.Size(1466, 251)
Me.GrpOutputInfo.TabIndex = 0
Me.GrpOutputInfo.TabStop = False
Me.GrpOutputInfo.Text = "输出内容"
@@ -692,19 +739,21 @@ Namespace UTSModule.Station
'
Me.TabControl1.Controls.Add(Me.TpOutputInfo)
Me.TabControl1.Dock = System.Windows.Forms.DockStyle.Fill
Me.TabControl1.Location = New System.Drawing.Point(3, 17)
Me.TabControl1.Location = New System.Drawing.Point(4, 25)
Me.TabControl1.Margin = New System.Windows.Forms.Padding(4)
Me.TabControl1.Name = "TabControl1"
Me.TabControl1.SelectedIndex = 0
Me.TabControl1.Size = New System.Drawing.Size(971, 146)
Me.TabControl1.Size = New System.Drawing.Size(1458, 222)
Me.TabControl1.TabIndex = 1
'
'TpOutputInfo
'
Me.TpOutputInfo.Controls.Add(Me.RtxOutputInfo)
Me.TpOutputInfo.Location = New System.Drawing.Point(4, 22)
Me.TpOutputInfo.Location = New System.Drawing.Point(4, 28)
Me.TpOutputInfo.Margin = New System.Windows.Forms.Padding(4)
Me.TpOutputInfo.Name = "TpOutputInfo"
Me.TpOutputInfo.Padding = New System.Windows.Forms.Padding(3)
Me.TpOutputInfo.Size = New System.Drawing.Size(963, 120)
Me.TpOutputInfo.Padding = New System.Windows.Forms.Padding(4)
Me.TpOutputInfo.Size = New System.Drawing.Size(1450, 190)
Me.TpOutputInfo.TabIndex = 0
Me.TpOutputInfo.Text = "输出信息"
Me.TpOutputInfo.UseVisualStyleBackColor = True
@@ -713,35 +762,29 @@ Namespace UTSModule.Station
'
Me.RtxOutputInfo.BorderStyle = System.Windows.Forms.BorderStyle.None
Me.RtxOutputInfo.Dock = System.Windows.Forms.DockStyle.Fill
Me.RtxOutputInfo.Location = New System.Drawing.Point(3, 3)
Me.RtxOutputInfo.Location = New System.Drawing.Point(4, 4)
Me.RtxOutputInfo.Margin = New System.Windows.Forms.Padding(4)
Me.RtxOutputInfo.Name = "RtxOutputInfo"
Me.RtxOutputInfo.Size = New System.Drawing.Size(957, 114)
Me.RtxOutputInfo.Size = New System.Drawing.Size(1442, 182)
Me.RtxOutputInfo.TabIndex = 0
Me.RtxOutputInfo.Text = ""
'
'TsmiJumpCall
'
Me.TsmiJumpCall.Name = "TsmiJumpCall"
Me.TsmiJumpCall.ShortcutKeys = System.Windows.Forms.Keys.F12
Me.TsmiJumpCall.Size = New System.Drawing.Size(221, 22)
Me.TsmiJumpCall.Text = "函数跳转"
Me.TsmiJumpCall.Visible = False
'
'FrmStationPlan
'
Me.AutoScaleDimensions = New System.Drawing.SizeF(6.0!, 12.0!)
Me.AutoScaleDimensions = New System.Drawing.SizeF(9.0!, 18.0!)
Me.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font
Me.ClientSize = New System.Drawing.Size(977, 580)
Me.ClientSize = New System.Drawing.Size(1466, 870)
Me.Controls.Add(Me.SplStationPlan)
Me.Controls.Add(Me.StuMain)
Me.Controls.Add(Me.ToolStrip1)
Me.KeyPreview = True
Me.Margin = New System.Windows.Forms.Padding(4)
Me.Name = "FrmStationPlan"
Me.Text = "Form1"
Me.ToolStrip1.ResumeLayout(false)
Me.ToolStrip1.PerformLayout
Me.StuMain.ResumeLayout(false)
Me.StuMain.PerformLayout
Me.Text = "Form1"
Me.ToolStrip1.ResumeLayout(False)
Me.ToolStrip1.PerformLayout()
Me.StuMain.ResumeLayout(False)
Me.StuMain.PerformLayout
Me.SplStationPlan.Panel1.ResumeLayout(false)
Me.SplStationPlan.Panel2.ResumeLayout(false)
CType(Me.SplStationPlan,System.ComponentModel.ISupportInitialize).EndInit
@@ -836,5 +879,7 @@ End Sub
Friend WithEvents TsBtnUndo As ToolStripButton
Friend WithEvents TsBtnRedo As ToolStripButton
Friend WithEvents TsmiJumpCall As ToolStripMenuItem
Friend WithEvents 执行1ToolStripMenuItem As ToolStripMenuItem
Friend WithEvents 执行2ToolStripMenuItem As ToolStripMenuItem
End Class
End Namespace

View File

@@ -124,258 +124,255 @@
<data name="TsBtnOpen.Image" type="System.Drawing.Bitmap, System.Drawing" mimetype="application/x-microsoft.net.object.bytearray.base64">
<value>
iVBORw0KGgoAAAANSUhEUgAAADAAAAAwCAYAAABXAvmHAAAAAXNSR0IArs4c6QAAAARnQU1BAACxjwv8
YQUAAAAJcEhZcwAADsMAAA7DAcdvqGQAAAGrSURBVGhD7ZjLSsRAFEQDirrXnfpvolsfPyf6Bz4QUX/F
11arkEDbtKncpLrHgRw4INypriTTE7C7hYWFyezAC3gP3+GXWa55B8/hNrRyAF9gqbiGz5CdFvjkW158
L2/C8k1w25QKWngGZ8M9ny56CfehG26ZK5h23cLZvMF0UdveLHAI065XOJt0QVobe599QcHkvk148vPn
LyYvOJFJfXvwEZYCkxacQbiPT76/+FIgXaw0dxPu47YZCqSz0txNuO8BDgXSWWnuJtz3CYcC6aw0dxPu
UwE1dxPuUwE1dxPuUwE1dxPuUwE1dxPuUwE1dxPuUwE1dxPuUwE1dxPuUwE1dxPuUwE1dxPuUwE1dxPu
UwE1dxPuUwE1dxPuU4F//099GqA5+bEKjz5q3AQv/hqmXaOOVdIAzeFZZf6ZVp5CSR7K4fEej/nyz9X2
CW5BSR4swS3T8iZ48aNP//LwX/Cb4Fkl92X+w3bINW8gt82oJ9+TL7R2rP0NtHzPV6HVe74aq3zPH8PZ
rOo9zwO1DWih9XueF78LrdR+z39A/t6OIA+UFxYWwnTdN1Eve2U88bP5AAAAAElFTkSuQmCC
YQUAAAAJcEhZcwAAFiUAABYlAUlSJPAAAAGnSURBVGhD7ZjNSgRBDIQLFPWuN/XdRK/+vJzoG/iDiPoq
rnpVAjMgRa+1Sad7XegP+rLpSqVnMg0bYDAYRNkDcAXgEcAHgO/kZTkfAFwC2GXzWo4AvBVMW63XyTMF
e/I9i5+XHSLlTVjbcPJe64KLiWA9/zvpNYBD3pSAtcwNed3zpggLSprWmwWOyeudN0Tg19qadL/0hIKw
3zaAM/6xJmGQkN8BgOclglDCCtx+9uTn4ksCd8JK3H7WNn8J3Akrcfs9CYE7YSVuvy8hcCesxO2nBCqe
jdtPCVQ8G7efEqh4Nm4/JVDxbNx+SqDi2bj9lEDFs3H7KYGKZ+P2UwIVz8btpwQqno3bTwlUPBu3nxKo
eDZuPyVQ8Wzcfkrw7//UqwPwWMVGHy0OYcXfktdKYxV1AJtV8p5e65yLKcEixsZ7Nubjfa3XC4AdLqYE
C0tYy/Q8hBW/8vSPxcuwN2GzSutL/rAzluW8m9pmpSc/w4k2jo0/ALdDiyuyKb3u+Was854/5WIirOue
t4HaFhcTpfc9b8XvcxG1tL7nP6fv7WQaKA8GgwA/US97ZXWnuP4AAAAASUVORK5CYII=
</value>
</data>
<data name="TsBtnSave.Image" type="System.Drawing.Bitmap, System.Drawing" mimetype="application/x-microsoft.net.object.bytearray.base64">
<value>
iVBORw0KGgoAAAANSUhEUgAAADAAAAAwCAYAAABXAvmHAAAAAXNSR0IArs4c6QAAAARnQU1BAACxjwv8
YQUAAAAJcEhZcwAADsMAAA7DAcdvqGQAAAHqSURBVGhD7Zm9Tt1AEEYvNDxCArwSXZDSpAwiFQ+HEA2Q
dPmpeAl4AaALEnxTXDSate/xeHcvkeIjnerzN97F9rWEVwsLC6PsyFP5Rz7Jl07ey0+yKQfyuxw6YQ//
ys+yCbvyhxw6UU+f5RdZzTc5dIJt2ORK2D3vh17ID3KNz8wabLG2aD+vehOP0g/8KD0+M2tpvgk/yIxQ
PodjGTcx+5nwQ8wI5XNptgk/wIxQXkOTTfiyGaG8lupN+KIZiflc7Q18JIcYe7AnvbF9yYzEvMY7OcbQ
JjYd/4YvmBEbEo+ZKy3INhE7CBXsstvlj8dl3XQLeWIPSRc6k15PutCZ9HrShc6k15MudCa9nnShM+n1
pAudSa+HCq1+RqNjP6vxOIQKLV9k0aEXWzwGoULMWxuhvIAKMW9thPICKlCeheZRXkAFyrPQPMoLqEB5
FppHeQEVKM9C8ygvoALlWWge5QVUoDwLzaO8gAqUZ6F5lBdQgfIsNI/yAipQnoXmUV5ABcqz0DzKCx6k
L/j/TBs+M2vZNM8+tPjM1ob8lr50LvflGp+ZtYzNs3NeSp/9ksiZ9KV/ya8S2ZO3cmjAe3ol7cPjJA7l
jRwa9B5eS38bT8J2eyJ/yvjVZhvaA2vntttm8l9+YeH/YrV6BfNWMy9RUhK1AAAAAElFTkSuQmCC
YQUAAAAJcEhZcwAAFiUAABYlAUlSJPAAAAHbSURBVGhD7ZlLSsVAEEWvTlyCvy05U3DiUNGRixNx4m/m
Z+QmdAPqTEEpeEhT3clJJd1PwRyo0e17q8okL2CkmZmZLlYkHUt6lPQu6atRvUja9c2nsiXpptCsVX1I
2vdDjGVV0m2hSev6lHTghxnDSSF8WVXlStg9n4aeS1pPdN90CjasDV11iTcXuOH0mgsY1ZegAUkfw15h
idHPBA1I+liqLUEDkj6FKkvQgKRPZfISNKDXx5a9gXd8+IKuB3vQG9s38nh9Sj378ITSEn3nf/BNPBbi
z4wtGsiW8B6EDHbZ7fL7c9Hqu4VSvA8JGxoTnidsaEx4nrChMeF5wobGhOcJGxoTnidsaEx4HjLU+hn1
1fWz6s8hZKj5IvNVerH5MwgZvF67PKRnkMHrtctDegYZSI9CeaRnkIH0KJRHegYZSI9CeaRnkIH0KJRH
egYZSI9CeaRnkIH0KJRHegYZSI9CeaRnkIH0KJRHegYZSI9CeaRnkIH0KJRHesarM6T/mTbCgUBfnn1o
STWbDXlwpjNJm4ne13AMXXnW88Jp94neyWkh9K/UoR+2xJqkp4L5t+ty8eFxENuSrgshv1VX7jYehG17
JOmu8NVmGWUPrPW222bwX35m5r/xDfNWMy9xCndOAAAAAElFTkSuQmCC
</value>
</data>
<data name="TsBtnLoad.Image" type="System.Drawing.Bitmap, System.Drawing" mimetype="application/x-microsoft.net.object.bytearray.base64">
<value>
iVBORw0KGgoAAAANSUhEUgAAADAAAAAwCAYAAABXAvmHAAAAAXNSR0IArs4c6QAAAARnQU1BAACxjwv8
YQUAAAAJcEhZcwAADsMAAA7DAcdvqGQAAAHOSURBVGhD1ZnLSgRBFEMbFN3rUv03H1v160T/wDfot+jo
VhNk4FqUk77dqRrnQGAgnZt+TS26hhnsQpfQPbSAvsziTM6+gNhl5QB6hWrFLfQCsdMC70bPk1+KF2F5
EnxtagU9dA7N5gGKQ68g2+MNHELXUOy6g2bzDsWhLGrFERS73qDZxIFUa+x99oGCyX1b0OnPz19MHjiR
SX370DNUC0waOIN03za0PPlaIA6r+W7SfWfQqkD0ar6bdN8TtCoQvZrvJt33Ca0KRK/mu0n3qYDy3aT7
VED5btJ9KqB8N+k+FVC+m3SfCijfTbpPBZTvJt2nAsp3k+5TAeW7SfepgPLdpPtUQPlu0n0qoHw36T4V
UL6bdJ8KKN9Nuk8FlO8m3acCyneT7lMB5btJ96mA8t2k+1RA+W7SfSqgfDfpPhVQvpt0nwr8+4+7MUCV
lJ/X+Qm8xUXw5G+g2DXq83oMUCXcsyqP6aVRGxxlqITbPNzuKY9rLXbuQJIyWIM7Mj0vIrXJV4b/gneD
j5TvZfnHdogzbyF2jLrzS8pBG8fGX0DPdb4Jvdb5ZqxznT+BZrOudf4R4saihd7rPE9+D7LSep3/gPh/
O4a4sTiBYfgGl13a4+npcwkAAAAASUVORK5CYII=
YQUAAAAJcEhZcwAAFiUAABYlAUlSJPAAAAHASURBVGhD1ZlLTgMxEERLAsEelsDd+Gwhp0NwA/4SnIXf
NqglR4paE9WUXXbIk7xJT/WzZyZejIF6DgEsADwB+AawNI/oGb1visvKCYCPCWmv8V6cFuJujJz8asQi
LE8iXpvcfNS4zpOp4Tk1vXU+3jVOAdwl12O+qIav1DREvThLrs98QQ35sfbG7rM3JFT79gBc5h9bGlZS
5TsG8LYhUNWwAdm3vzb5qYDcsBHZd0UCcsNGZN8rCcgNG5F9vyQgN2xE9rEAq7uRfSzA6m5kHwuwuhvZ
xwKs7kb2sQCru5F9LMDqbmQfC7C6G9nHAqzuRvaxAKu7kX0swOpuZB8LsLob2ccCrO5G9rEAq7uRfSzA
6m5kHwuwuhvZxwKs7kb2sQCru5F9LMDqbmQfC7C6G9nHAqzuRvaxwL//uMsWkD+vxyfwHouIyd8n16zP
62wBcWaVrxk1Zh1w5FAmjnniuCdf13uE8yBPZoocnCJOZEYuQjrky+FNxN2IRxrvZf5jO0b0fCiOWXd+
RW60c+z8AvLr0GOL7Mqofb4b29znL/JkatjWPv9SDhYtjN7nY/JHeRKt9N7nf8r/7bwcLFbxB5dd2uNo
4MxjAAAAAElFTkSuQmCC
</value>
</data>
<data name="TsBtnSaveAs.Image" type="System.Drawing.Bitmap, System.Drawing" mimetype="application/x-microsoft.net.object.bytearray.base64">
<value>
iVBORw0KGgoAAAANSUhEUgAAABgAAAAYCAYAAADgdz34AAAAAXNSR0IArs4c6QAAAARnQU1BAACxjwv8
YQUAAAAJcEhZcwAADsMAAA7DAcdvqGQAAADQSURBVEhL5ZYxDgFBGEbnCE4gjuAcCnEER3AER9BpVWqV
QqcTlSOIUkVFx/fWSMYsyfx/FCu+5CX7ZWfmTbKT3Q1J+mLnYCmKMhQ3sRKLQg5iL4ryFHSqVpaZ+H3B
UQwy2qIWr4A5OaxVi0fATrsJPfFVQR7m/pGA42eBmARc8yrgpMxj38aewhjuEbNg/LgMLUEfVe01jGmu
4CpO4hz7JfYUxrgFGzER09jXsacwxi34/WdggZgE7MwCMQk8aYbA8tHPYe5Hgfe35R2spYRwB61XwcSY
NxMjAAAAAElFTkSuQmCC
YQUAAAAJcEhZcwAAFiUAABYlAUlSJPAAAADWSURBVEhL5ZYxCsJAEEXfETyBeATPYSEewSN4BI9gZ2tl
bWVhZydWHkEsrbTSTvkywWU0wVkMBP3wYT87M28JSxJ4qg/sMrxMZlRqCNyAFbD40Adg7weVqQB0/EaF
Zj8BOAID57YvlHIB6vHWrBflAHTSbuLetwFe6v0jgK5fxFIIoLVeBbopc8tby6lVoz0pDBjbumV5lNQX
Uk1zAVfgBJwtXyynVk02YANMgKnlteXUqskG1P6IagdELIUAOlnEUgiQo2YAIh99b/WWAnJ/W95Zsx66
A61XwcQ50MgGAAAAAElFTkSuQmCC
</value>
</data>
<data name="TsBtnBackward.Image" type="System.Drawing.Bitmap, System.Drawing" mimetype="application/x-microsoft.net.object.bytearray.base64">
<value>
iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAAAXNSR0IArs4c6QAAAARnQU1BAACxjwv8
YQUAAAAJcEhZcwAADsMAAA7DAcdvqGQAAAHJSURBVDhPvZHdK4NhGMb3pzAt4dgfIPmMosgBB8pHjnbA
kSMhijSa2pgJ89U23jEJExpmvhq2+ZoMxVZD78vYxjsue5+NMTVK+dV18jxdv7v7eXh/Rrt8BC7UkpVE
OWvCoHYdoeuf4cqRKCaNqGwY/p1Es2gN1YL4X14hGZmHzmBFcXX7zxLl3A4p6mwAtQuY7Qw6FTOgVhmo
l2mo9DT652iIJ25JQrUwg1ojEXA8PfvB3PvgcLmJIJKm0WskVxi+SuRqPbnsMzxDNMugnrpCzYAdIws3
5Pwz1TIXtBsMkoomwxJpYF9u70cPi2vag3PHHQ7sN5BPO0mplfKTmE/uUCpyIrFoCgkFY4jPGwpKuH29
PvZjslBuQ5V0Hx2qcyJ4h3lgcXLphcFyDxm1DUFub1jAuH04PHNh59gBo/kCS1unaOgLfm/dqBtCqRMl
bTbkN+6RyKhNCLK7woLkrLJvqRHvEQEbWM9Fs7DYH7FoYqBZuUX3mBFxGeKvjxlJedMGEXye/J4u9Rr4
aaLogsJaPTxPL5BPmNCj2YZsfJNM5spS5SpiU1uiCzKEusBrq0ji8xQQ5PQgLlMCfnp7oNyKmJTm6IJ/
gsd7A8Wc0VfbPf1MAAAAAElFTkSuQmCC
YQUAAAAJcEhZcwAAFiUAABYlAUlSJPAAAAHOSURBVDhPvZHfS5NRAIb3p6QyxLr2DwgpLQoMDC/qIqjE
q13oVVeRoaDEjAXO5sKaNdmm33QR6SRl6lyazJzr16RlUBtM5ft0Oaff5iM7onOftIKgF56rc97n5XB0
un+NZ/IzOaSJsMAxEqTP8xbtvd8mV9bGNhygoeXF30nc4+GCcia7R5d9DK8/zLWmzj9LHKMLouiNgPQe
QlGFR7bXSNMKrkkZp0/m6aiMaWhdoO3r+jyBo/Wd3QzKZppYIikE2rT2r1J5218osbp84rDXv4txROGe
9JPmZ1Hsb9a0fZosCTyzCmfqh/MSs31MvHsrpbIqp1iJbfAxuob1VVyUOqSMILS8wQ1jnNP1L6moG6C8
9vmBJPfe7bR6tGywRmg0f+Chc6VgXfmlsvxjG//SJhZpHv3lJ3mBkkzz6VuChS8xAqHvTLz7Skvvwffe
7U9iMMe5/iDClfuLAos0h/5id15QeeHmCZpNi0KgZvdIyCpL0S3GgwruqXUeDwQoqzad/JHjudU6KwTH
lw/pds1Qes5YXHD1jo/UThbrUJAe9zyWwTmxnCubHdOUVLUXF1QbvFTUOQXltTb0l3ooq+mi9HwnJVUd
nDrbVlzw37IPxZzRV+2pq28AAAAASUVORK5CYII=
</value>
</data>
<data name="TsBtnForward.Image" type="System.Drawing.Bitmap, System.Drawing" mimetype="application/x-microsoft.net.object.bytearray.base64">
<value>
iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAAAXNSR0IArs4c6QAAAARnQU1BAACxjwv8
YQUAAAAJcEhZcwAADsMAAA7DAcdvqGQAAACMSURBVDhPtZDRDYAgDET7wazu5AIOY/x2BX/dAHO2KNQW
MMZLXiK1d5zSLwohxBwZ+9IGEBc6sd6JjYXBNO8XOOfG9Kx3xF4GJIOF3hP7M6BGM6CXrgCi0aUzYIiW
MOcgUa2BJcy3bb1DWg34RkafGwF2A+hlg/vnJThAGkAI0WDRU9HAV/6tHp9FdAB/QLi4qrG0hAAAAABJ
RU5ErkJggg==
YQUAAAAJcEhZcwAAFiUAABYlAUlSJPAAAACESURBVDhPtZDBDYAgDEV7YFZ3YgGHMZ5dgasbYEpFm08r
mOhP3sFKH1+J/kgIIWvwfRNcYPJKBZw3Qh7My35Rl7XIOmMK9M0InnMFT3QFowwJiKLLoGDKVnguoq4g
4m4Jz1PabokvkAZyo4DPHYHdgPOyQfsTRXA2qBJkuIEf/a0eH+QAf0C4uBZ9A6wAAAAASUVORK5CYII=
</value>
</data>
<data name="TsBtnUndo.Image" type="System.Drawing.Bitmap, System.Drawing" mimetype="application/x-microsoft.net.object.bytearray.base64">
<value>
iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAAAXNSR0IArs4c6QAAAARnQU1BAACxjwv8
YQUAAAAJcEhZcwAADsMAAA7DAcdvqGQAAAHJSURBVDhPvZHdK4NhGMb3pzAt4dgfIPmMosgBB8pHjnbA
kSMhijSa2pgJ89U23jEJExpmvhq2+ZoMxVZD78vYxjsue5+NMTVK+dV18jxdv7v7eXh/Rrt8BC7UkpVE
OWvCoHYdoeuf4cqRKCaNqGwY/p1Es2gN1YL4X14hGZmHzmBFcXX7zxLl3A4p6mwAtQuY7Qw6FTOgVhmo
l2mo9DT652iIJ25JQrUwg1ojEXA8PfvB3PvgcLmJIJKm0WskVxi+SuRqPbnsMzxDNMugnrpCzYAdIws3
5Pwz1TIXtBsMkoomwxJpYF9u70cPi2vag3PHHQ7sN5BPO0mplfKTmE/uUCpyIrFoCgkFY4jPGwpKuH29
PvZjslBuQ5V0Hx2qcyJ4h3lgcXLphcFyDxm1DUFub1jAuH04PHNh59gBo/kCS1unaOgLfm/dqBtCqRMl
bTbkN+6RyKhNCLK7woLkrLJvqRHvEQEbWM9Fs7DYH7FoYqBZuUX3mBFxGeKvjxlJedMGEXye/J4u9Rr4
aaLogsJaPTxPL5BPmNCj2YZsfJNM5spS5SpiU1uiCzKEusBrq0ji8xQQ5PQgLlMCfnp7oNyKmJTm6IJ/
gsd7A8Wc0VfbPf1MAAAAAElFTkSuQmCC
YQUAAAAJcEhZcwAAFiUAABYlAUlSJPAAAAHOSURBVDhPvZHfS5NRAIb3p6QyxLr2DwgpLQoMDC/qIqjE
q13oVVeRoaDEjAXO5sKaNdmm33QR6SRl6lyazJzr16RlUBtM5ft0Oaff5iM7onOftIKgF56rc97n5XB0
un+NZ/IzOaSJsMAxEqTP8xbtvd8mV9bGNhygoeXF30nc4+GCcia7R5d9DK8/zLWmzj9LHKMLouiNgPQe
QlGFR7bXSNMKrkkZp0/m6aiMaWhdoO3r+jyBo/Wd3QzKZppYIikE2rT2r1J5218osbp84rDXv4txROGe
9JPmZ1Hsb9a0fZosCTyzCmfqh/MSs31MvHsrpbIqp1iJbfAxuob1VVyUOqSMILS8wQ1jnNP1L6moG6C8
9vmBJPfe7bR6tGywRmg0f+Chc6VgXfmlsvxjG//SJhZpHv3lJ3mBkkzz6VuChS8xAqHvTLz7Skvvwffe
7U9iMMe5/iDClfuLAos0h/5id15QeeHmCZpNi0KgZvdIyCpL0S3GgwruqXUeDwQoqzad/JHjudU6KwTH
lw/pds1Qes5YXHD1jo/UThbrUJAe9zyWwTmxnCubHdOUVLUXF1QbvFTUOQXltTb0l3ooq+mi9HwnJVUd
nDrbVlzw37IPxZzRV+2pq28AAAAASUVORK5CYII=
</value>
</data>
<data name="TsBtnRedo.Image" type="System.Drawing.Bitmap, System.Drawing" mimetype="application/x-microsoft.net.object.bytearray.base64">
<value>
iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAAAXNSR0IArs4c6QAAAARnQU1BAACxjwv8
YQUAAAAJcEhZcwAADsMAAA7DAcdvqGQAAACMSURBVDhPtZDRDYAgDET7wazu5AIOY/x2BX/dAHO2KNQW
MMZLXiK1d5zSLwohxBwZ+9IGEBc6sd6JjYXBNO8XOOfG9Kx3xF4GJIOF3hP7M6BGM6CXrgCi0aUzYIiW
MOcgUa2BJcy3bb1DWg34RkafGwF2A+hlg/vnJThAGkAI0WDRU9HAV/6tHp9FdAB/QLi4qrG0hAAAAABJ
RU5ErkJggg==
YQUAAAAJcEhZcwAAFiUAABYlAUlSJPAAAACESURBVDhPtZDBDYAgDEV7YFZ3YgGHMZ5dgasbYEpFm08r
mOhP3sFKH1+J/kgIIWvwfRNcYPJKBZw3Qh7My35Rl7XIOmMK9M0InnMFT3QFowwJiKLLoGDKVnguoq4g
4m4Jz1PabokvkAZyo4DPHYHdgPOyQfsTRXA2qBJkuIEf/a0eH+QAf0C4uBZ9A6wAAAAASUVORK5CYII=
</value>
</data>
<data name="tsBtnInsertRow.Image" type="System.Drawing.Bitmap, System.Drawing" mimetype="application/x-microsoft.net.object.bytearray.base64">
<value>
iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAAAXNSR0IArs4c6QAAAARnQU1BAACxjwv8
YQUAAAAJcEhZcwAADsMAAA7DAcdvqGQAAADTSURBVDhPvVKrDoNAEOSX+gt1tfxBg6psUNjmFJKcQjY5
gyQ5gyXBVDbBVFYgKitWVEzZ43qpoDwC6SSjZmc2uxlvMXRRQ+UVVNZRnjVEomHlceAL9OooEjUzwBrp
CTQtw0hOD/hsZaPhA/APYnrAZhegj1ZeDzLVYPJ/RCwRHIWhlX/CDbCZz6vvQHUD9IWgChoMYNGRNxvj
FVAlQWSEIBkOYLiB8CSNUeaEMCX4MWEbNaMBDnxv77N1WUMXbQttG7smzi2SxWpNDBY3cf+3JnreG12r
GpgvtOAmAAAAAElFTkSuQmCC
YQUAAAAJcEhZcwAAFiUAABYlAUlSJPAAAADYSURBVDhPrVItD8IwFNxf4i/gsPsHpApJpmZJ1eRSNUlS
M7mkZnbJDJJkBomYmJx4AnHkddCQBvaRccmp3t3Le70gWAtTNtBFDZ0PVGcDmRr4up/AB+gxUKZ6YcDL
SD3Q9kAUq/kB76lstOyA8CDnB2x2At/o61ZDZQZMvo9MFMRRWvo6H07AZl6vuQP1DTAXgi5pNIAfHXmy
NV4BXRFkThDpeADDCaKTskZVEKKMECaEbdxOBjjwvv6h7bFN1cCUtWvj0MSlRfp3E8XqJu6n/9fBP8rS
Jj4BXasamGdFJGcAAAAASUVORK5CYII=
</value>
</data>
<data name="tsBtnRemoveRow.Image" type="System.Drawing.Bitmap, System.Drawing" mimetype="application/x-microsoft.net.object.bytearray.base64">
<value>
iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAAAXNSR0IArs4c6QAAAARnQU1BAACxjwv8
YQUAAAAJcEhZcwAADsMAAA7DAcdvqGQAAADdSURBVDhPY6AK2Hbwwv+1O0/9X7zh0P+Zy3b9nzBv8//e
2ev/Q6UJg3W7Tv8HgS/f//1//PbP/0uPfv039Uwm3oD5a/ajaD5+6+d/p7B84g2YMG8j2EYQBmmcsXA1
HE+es/x/19SF/5t6ZqEYyMLEgtsCkMbDN/7833bu5/+lB7/9n7T5E9hwkCZ0DNWCCkA2rjvx43/7sgf/
S2fe/Z/ScwcjTFA0o8dCZesUsFdg3oJhqHJMgC0WIrKbcGtAB9hiAa+N6ABkALpzSTKAJgmJJAOQExIy
hkoPasDAAACBjwD6rwhXUgAAAABJRU5ErkJggg==
YQUAAAAJcEhZcwAAFiUAABYlAUlSJPAAAADdSURBVDhPY2CgBth28ML/tTtP/V+84dD/mct2/Z8wb/P/
3tnr/6OrwwnW7Tr9HwS+fP/3//HbP/8vPfr139QzmXgD5q/Zj6L5+K2f/53C8ok3YMK8jWAbQRikccbC
1XA8ec7y/11TF/5v6pmFYiALEwtuC0AaD9/483/buZ//lx789n/S5k9gw0Ga0DG6XjAA2bjuxI//7cse
/C+defd/Ss8djDBB0YweC5WtU8BegXkLhpENQAHYYiEiuwm3BnSALRbw2ogOQAagO5ckA7B5gSQDKPYC
ckIiywsDCgCBjwD6FcXgCwAAAABJRU5ErkJggg==
</value>
</data>
<data name="TsBtnMoveUp.Image" type="System.Drawing.Bitmap, System.Drawing" mimetype="application/x-microsoft.net.object.bytearray.base64">
<value>
iVBORw0KGgoAAAANSUhEUgAAAEAAAABACAYAAACqaXHeAAAAAXNSR0IArs4c6QAAAARnQU1BAACxjwv8
YQUAAAAJcEhZcwAADsMAAA7DAcdvqGQAAAGeSURBVHhe7ZgxSsRAGEZXsbC0E72A5/AcnsITeAoLwcpK
9DBWIoJ4ALG21e/BBpafWZOZZDWT+R48CLO7ZP6XbDMrY4wxxhhj/pxDebmW66Y4k1/yey3XrDXBsfyQ
3fCdn/JULpoT+SLj8J18xncWCU/+WaYG3/RVLu5N6Hvy0UW9CUOffHQRb0Luk49W/SaUPvlolW9C3/Dv
ibW3xFpnVRH6hr+Vj2ENH+R1WNu0ighDht+XDBs/Y21PVhth6PCwLQBUGSFnePgtAFQVIXd46AsAVUQo
GR6GBIBZRygdHoYGgFlGGDM85ASAWUUYOzzkBoBZRJhieCgJAP8a4UA+ydSN8UaywSGUBgDuwb3i7zvZ
I3udnHOZuiHmDA9jAkBfBPY6OdsC5A4PYwPAbxF2EiD1FygZHqYIAKkIO/sLwJG8knfygoVCpgrQwV7Y
E3tjj7Nn6gDV4QDSAYIOIJvBAaQDBB1ANoMDSAcIOoBsBgeQTQe4lzEAa83AwUUMwFozcGqzebzGdRUn
OVPCuR2Hl7izMzxjjDHGGGNSrFY/c13kAfiRZ4MAAAAASUVORK5CYII=
YQUAAAAJcEhZcwAAFiUAABYlAUlSJPAAAAGTSURBVHhe7ZhBSsUwFEWv4sChM9ENuA7X4SpcgatwIDhy
JLoYRyKCuABx7NTPgRY+If83SVNt2nvgQXntJ++e5E8iGWOMMcYY89ccS7ruiudVcSHpR9JvVzzTWwWn
kr62wvf1Lek8/HhpnEl6i4Tvi3d8s0jY+ddI6LDel3gShnY+rEWdhNSdD2sRJyF358Nq+iSU7nxYTZ6E
ofCfkd5HpNekhKHw95KeI/0nSbeRflMSUsIfdmHDd/QOWpaQGh52CYAmJeSEh30CoCkJueFhSAA0IaEk
PKQIgFlLKA0PqQJglhLGhIccATArCWPDQ64AmIWEGuGhRAD8q4QjSS+RRfu66wZMoVQAsAZrhb/vixmZ
tTqXkcVKwsMYATAkgVmrs0tAbngYKwD2SZhEQOwvUBIeagiAmITJ/gJwIulG0oOkq/BlBrUE9DALMzEb
M86e2gKawwIswAIswAIswAIswAIswAIswALWKOAxIoDeauDiIhRAbzVwa7N9vcZzEzc5NeHejstLarI7
PGOMMcYYY+JsAHNd5AEOCv+IAAAAAElFTkSuQmCC
</value>
</data>
<data name="TsBtnMoveDown.Image" type="System.Drawing.Bitmap, System.Drawing" mimetype="application/x-microsoft.net.object.bytearray.base64">
<value>
iVBORw0KGgoAAAANSUhEUgAAAEAAAABACAYAAACqaXHeAAAAAXNSR0IArs4c6QAAAARnQU1BAACxjwv8
YQUAAAAJcEhZcwAADsMAAA7DAcdvqGQAAAGdSURBVHhe7Zg9SsRAGIajWFjaiXsBz+E5PIUn8BQWgpXV
ooexEUQQe8Ha1n1fyAfhY3bnJ8mSybwPPBAGspnvSbaZTgghhBBCiKNzBm96ed0UF/AN/vfymmvNcA9t
eJNrzbCFPgDXmuEF+gBcawYFgArgVADYDAoAFcCpALAZFAAqgFMBYDMoAKwyAE9teHDxDG+5UMjUAbgX
7ol7m+1kied2w2Ms+ghPYC5TBeCzuYfh73CPs5wx8vBy+CCzJMIUAULDm9zr5OwLQHMjjA1waHg6S4DQ
X2BoToQxAWLDz/YXIJfwHYYeTJ/gKYxRGoDDP0B/r/kJN3BWpohQEmARwxtjI+QGWNTwxpgIOQEWObxR
GiE1wKKHN0oipASoYngjN0IsQFXDGzkRDgWocngjNcK+AFUPb6REeHVrlAGqH96IRfgOrH0F1syqhjdi
EVKtcnjjCn7A0GAp8l7+RtWUfglVv3lP7pewijfvSf0SVvXmPbEvYZVv3sMv4Qf64X/hat+85xr+QRue
11xrinN418trIYQQQgghjkbX7QBWxOPySaszcAAAAABJRU5ErkJggg==
YQUAAAAJcEhZcwAAFiUAABYlAUlSJPAAAAGSSURBVHhe7ZhNSgQxEIWf4sKlO3Eu4Dk8h6fwBJ7CheDK
1aCHcSOIIO4F124dHnRBE2omP50eOp33QUGomXTnfUlvAgghhBBCCHFszgDcDMVxV1wAeAPwPxTH7HXD
/Si8FXvdsHUEsNcNL44A9rpBAiRAAiRAAiRAAiRAAiRAAiRAAloSwFsbXlw8A7gNf8ygtgCuhWvi2ma7
WeK93fgai/UI4CT8YwK1BPDdXMP4OVzjLHeMvLwMF10qoYYAL7wV11qdfQJKJEwVcCj8bAK8T6BUwhQB
sfCzfQLkEsC781KrJwCn4SSHUgEM/+DMtfoEsAkn1aaGhBIBiwhvTJWQK2BR4Y0pEnIELDK8USohVcCi
wxslElIENBHeyJUQE9BUeCNHwiEBTYY3UiXsE9B0eCNFwqvTp4DmwxsxCd9O78vpNRneiElIrSbDG1cA
PpxQqcW5fEbTlJ6Epnc+JPckrGLnQ1JPwqp2PiR2Ela58yE8CT9O+N8173zINYC/UXiO2euKcwB3Q3Es
hBBCCCHEEdkBVsTj8gS5a8wAAAAASUVORK5CYII=
</value>
</data>
<data name="TsBtnMoveLeft.Image" type="System.Drawing.Bitmap, System.Drawing" mimetype="application/x-microsoft.net.object.bytearray.base64">
<value>
iVBORw0KGgoAAAANSUhEUgAAAEAAAABACAYAAACqaXHeAAAAAXNSR0IArs4c6QAAAARnQU1BAACxjwv8
YQUAAAAJcEhZcwAADsMAAA7DAcdvqGQAAAEUSURBVHhe7ZoxSkRBEAU/YrChmXgB77Hn8BSewHMIJoar
hzFRzMz1AKZaD3ayWU1cd+mugoKfDe/Bn4GmFxERERGRf+cU11vz3YoLfMKvrfk+wxYk/CuO8MMbLM+u
8PEeS/NT+HiFZfkt/C2W5RxfcBY83uEJlsTwOAseDY8lMTzOgkfDY0kMj7Pg0fBYEsPjLHg0PJbkEj9w
Fjy+4SM+HMANZqiyt8nSCj9xFvyYzHhtLzPGa5wdeIxm0PrntC+g/S8Qcgm+4+zgWPoSHOQZfMZZAbH0
MziwBLAEsASwBLAEsASwBLAEsASwBLAEsARovSAxaL0iM2i9JDXYVUKLNblBSmi7KDlovSorIiIiIodl
Wb4BwPHkArNQmuIAAAAASUVORK5CYII=
YQUAAAAJcEhZcwAAFiUAABYlAUlSJPAAAAEYSURBVHhe7ZoxigJBEEU/i4HhZuIF9h6ew1PsCTyHYGLo
ehgTxWzz9QCmStFTIE05Jjsq1e/Bhwm6Gd6H6YGmJAAAAACAZzOSNOtiz00xlbSTdOliz5/1oqyY/PFG
3rOoF2bknrxlXS/ORp+8ZV5vyMQj+WW9IRMTSYdA2rOS9FFvygLygTTyyCOfE+QDaeSRRz4nyAfSTch/
SToF0p5fSVtJPy/IprtUGexmaSzpHEi/W+x6bZA7xu/gZe8au2j9d5ovoPlPwLBD8C94qSf1IejYb3Af
yHtS/wYdSqCEAiVQQoESKKFACZRQoARKKFACJRSaHpBwHpWQekTG6Ssh/ZCUc6+EJsbknKYHJZ2mR2UB
AAAA4NVcAcDx5AIlrB0yAAAAAElFTkSuQmCC
</value>
</data>
<data name="TsBtnMoveRight.Image" type="System.Drawing.Bitmap, System.Drawing" mimetype="application/x-microsoft.net.object.bytearray.base64">
<value>
iVBORw0KGgoAAAANSUhEUgAAAEAAAABACAYAAACqaXHeAAAAAXNSR0IArs4c6QAAAARnQU1BAACxjwv8
YQUAAAAJcEhZcwAADsMAAA7DAcdvqGQAAAD9SURBVHhe7ZoxisJgFAYjWGy5rZ5gr+E5PMWewFNYWFrq
ZbaUBY+w9bY6DxIQeWU04X8zMJAufAMR+fk7EREREZG3s8RNbzyX4hN/8NYbzyssww6H8YMXLBPhiM8B
SkXYYhYgLBPhgFmAsESEBe4xCxD+4hqbxghgBDACGAGMAEYAI4ARwAhgBDACzCJCnOTEYcYJzxN5xSxA
+Idf+BLi3O7xGGuu/uMHjk4cXmYvnKPfODrlA5T/BILSP4JTU/q/gOMxGx46HpvE8ZgNDx2PTeJ4zIaH
jscmcTxmw0PHY7OUviBR/opM+UtS5a/Jlb8oGZS+KisiIiIi09J1d9Ph4/jaLDotAAAAAElFTkSuQmCC
YQUAAAAJcEhZcwAAFiUAABYlAUlSJPAAAAD5SURBVHhe7dqxCQJBFIThEQwMTbUC27AOq7ACqzAwNNRm
DEWwBGNT5bF3IMuGh7vs/B88uEBxZ0CF5UkAAADAv80lbYeJZytLSTdJn2HieZW/qGeHn/Dj3J1KOBcK
sCphVwhvV8KpEN6qhJmkYyH8OA9J6/xNvaEESkgogRISSqCEhBIoIaEESkgooZUS4iYnLjMukq6V5lkI
P85L0iY/9FTi3u73GqvVeUta5IefQlxe5h/W6uzzw0/BvgD7r0Cw/hGsrYm/wVoIXwhNeMITvk+EL4Qm
POEJ3yfCF0JbhA/WCxL2KzL2S1L2a3L2i5LBelUWAAAAtX0B0+Hj+Dk2eN8AAAAASUVORK5CYII=
</value>
</data>
<data name="TsBtnDebugMode.Image" type="System.Drawing.Bitmap, System.Drawing" mimetype="application/x-microsoft.net.object.bytearray.base64">
<value>
iVBORw0KGgoAAAANSUhEUgAAAEAAAABACAYAAACqaXHeAAAAAXNSR0IArs4c6QAAAARnQU1BAACxjwv8
YQUAAAAJcEhZcwAADsMAAA7DAcdvqGQAAAW1SURBVHhe7ZvHq2VFEIefKCIoLk0rdYwrcwAdxYABcTEq
iogrRUGXBtCN4V/QvXGhoph1YwAjbs26VDeGjQF0zL9PXkNRtzqd2+fyvPN+8MGb09V9uvqe7q6uc2Zj
W9taiS4T34h/GvlaXCrWRjgUOVriK7E2ihxsYW0UOdfCltZ+4mJx1H//KqvVsVa7pKMFfaAvK9XB4kNB
J/8QN4mSWh1rtUPck3tjR1/o00p0kPhY2I7+LW4VOVlbyKnV7kbxl7C2n4vDxKyKnE+UBsHb5tRiFzmf
mHUQSs4ncoPg7XKq2ZWcT8wyCMyvT4W/2bviN3eNQbhZoDPEw8KWQ07ejrq0gWiTtm0596YP9hrQ12Fr
Qs75F8W+gogtGoRP3LXEnyKn3K9LW5Hz3Js+0BdbBkMGoeZ8UjQIOd4SOb0tojqe5HzSLIPA3pq2Oot3
Pqk2CN+KBwRrSU509kGBbdQGeOeTcoOAD5PiBAIM3xjzLXI+yQ8Cj+3z4gKxt2gVttR5QdhHP+d8En2L
1oSLRLeI8FKgkah1AO0UdPxRcTIXltQpgrYYSNouKXoK8aElWg1FtJVbfLaaIufpey1KreoG4Vfn3eJy
0aO9BL/m/eJNwX79yyafbV67T0x5apiuvwrbR5y/RQzRMoOA41eLL4StX4LBuVJQt6bZnU/KBSLniJx2
iA+ErdMDC9rhIifuHT32KRAbrmgQXhaRzhal7ayVH8R5ItKrwtrO6nySj/BYob3o8O/C2gHT5glxrThW
7L8Jf3PtSYFNVC960h4T1o6+zaozhb0hnCaseOz51bzd0+JIURP1nxG+/nfCT4eThH8i09lhFj0i7M2e
E1YsWn7OE/vfJnp1u/ALL2uCXxiJOawNB6hJ6k1dw/nC6hrhbaY4n3Sn8O1dIayIGL1NiWzKvTd1zQJn
w1t+Gb/V8dgvq2eFbZMDjhV96F1sw5R7ZFiCg43VqcKWs3Axn5fVEcIvjCcKKw5QtryFBUVGEcxpjrT+
mEmEZ+1Y7UfpKWHbvkdYHSI4StM3a1diQVWDighlbX22tVG6Tti2XxO9svVhQVWDir4Utj45eytbBl6l
cuIEW8bZoVe2PiyoalDRz8LWP0BY2TLwKpXTli37SfTK1ocFVQ0qolO2/sgBOFDYsh9Fr2x9WFDVoCK/
BR4jrGwZeJXKjxe2bEtOgTeErT9yEbxe2LZfF72y9WFB3iAH4ek7wm+DJDOsHQebUSKgsm1H2yBhci6t
HrGgyKiED4TI5NhyToOTc3FGTCV/sjxBWA0JhEaEwmRyrA2numVEm/6w40PhfcSQUJgDQu8gcBCxukp4
G051U3W38O3tElYXCm9TAucvEZPk3/ORqrbiF3tfWBvm5R2iR7Rzl/BzmrWHMiv/MuQhMZtINtibgU+I
cHj5Xng7TnUtawJz3j/2ECVEWHd8QuR0Mat8Soy0lNe5IkptsZhxsCG2P04QLAH7PFsdq30ulRa9FHlc
WLvZU2JRUvQlEekssVZJ0ch5UtKl11VMh/eErdMDc35LpMWjLzN4LFtfjPCSg/DV1i/BVudTXznlXoyU
vlnq0jLOe5HFvVcQyjIgnCCBv7lGhOezPS2abRD26JejJDSmvB5nXr4iRr0epw3aos3SazgUDcLk1+Oj
PpBgT5/ygQQRHnXtE1j7AYZ+IDH6ExkCGQ4tpW92ONVhg23UBuQGgT4N/UQG0dnRH0mRvc2JbS+q4/GD
kHN+qY+kkmqDEDnPY+sjxsT/6jO5pNwgMN8i51MgshYfSibxedtHwt/MQgejLzO8XU41u+hLFQ85iUPF
LCoNQs555G1zarErDcKszidFg1ByHllbyKnVLhqElTifxPxKWySBRi3ash2FnFrtEPdMgRp9GT7na2Jv
JVhqibJaHWu1S+Le9GHyPr8qecdaWRtFzrWwNtrj/+MkEVvPICyVut7Wtlq1sfEvE45NIRdAVjQAAAAA
SUVORK5CYII=
YQUAAAAJcEhZcwAAFiUAABYlAUlSJPAAAAV9SURBVHhe7ZtHqy1FFIWXKCIoDk0js76ROYAJAwbEgQFF
xJGioEMD6MTwF3RuHKgoZp0YwIhTsw7ViWFiAJ9ZvksVFOvu6qrTp/u8mz7Y8Li1anftOl3Vu3b3k3bY
YRVcLuk7Sf912reSLnMnmxkC8iBb9o072cx4cL22ZfDAem1Ds5+kSyQd7Q0BvYH16jLHpDEwlpVysKSP
0yD/knSLC4zewHp1wDW5NjrGwphWwkGSPrWB/ivpdhcW9AbWq7tZ0j+m/VLSYS6cmij4nklwbY0eXRR8
tlknYSj4bLVJcF2Nlm4o+GyzTALr6/PgYu9L2m1/YxJuTf3OkPRo0K+G6+iLD8Anvst2rs0YvB9jnWxP
qAX/sqR9U8YWTcJnQR/sb79AQe3XxVcUPNdmDIzF+0wyCa3gM9Ek1Oydop/zbqCPLAefmWUSeLbmR11p
HnymNQnfS3oo7SU1GOzDSev9s3nwmdokEMOoPIEEw52x3qLgMz4J3LYvSrpQ0t4uHgAtfV6yW78WfIax
RXvCxS7sgQwvJxq9A4Bz0sAfl3SyN47glOSLicT3EP4DYMTQk62GkG3VNp+NRhQ8Y29lqU1uCnbnPyRd
4cIGe6Vf80FJb6fn9W/Jvkh/e2DkXcNy/T0I/jYXjmWZSSDwayV9Zf2HjMm5OvVtMXvwmVoicq4LC46S
9FEQYK+xoR3uTgu4dnTb50RscqJJeNVFibMbj7Ne+0nS+e488bppZw0+4xkeO7TDgP8MgmHZPCXpeknH
Sdo/Gf/mb08nTdQvutOeMB1jm5Uzg8GdZhpue3411z0r6UjTRtD/uaD/D8FyOCm4I/PZYRYes4u9YO1s
Wr7myf3vMF0PdwYbL3uCb4zkHKWGA9QoFi1dYxeYj+sCzZjgM3cH/q4yDRmja4asWnJftHTNBlemt/wy
/qjjtl+W580nB5wSxrDoZhuW3F3UMg42JadaOxsX63lZjgg2xhNNwwHKx9eydbigZqxpjrR+zCTDK3Xs
9lPxjPm+z9oPSUdpxubjrdk6moIGpLJlfx5rU3GD+X7DBR0042sKGnxt/anZl7T8D7WTJ5RtnB0WZcj/
Gk1Bg1+t/wHW3vI/1I6vsu0Xa+9hyP8aTUEDBlX2n3ICDrS2n629hyH/azQFDfwReKy1t/wPte+ytg25
BN6y/lNugjea7zdd0EEzPhfUjPT0veAxSDGj1HGwmQoSqtJ39BgkTfbUecjW4YKWeSJEJads5zQ4uhZX
wFLyk+UJppkkEZoiFaaSU2o41S0DPv2w46nwPlOlwhwQFp0EDiIl1wQaTnVjuTfwd6VpLgo0Q0bwl5qP
bvw9H6XqEn6xD03DurzLdC3wc0+wptl7/DjsL0MesfZJodjgM+oFEQ4vPwY6TnU9ewJr3m97LCqIsO94
QeR000yOl8QoSznnBSc4jM2Mgw25/fEpWcJ4zvOoY7f3DQ/DV/RS5EnTzV4Si4qir7gocdaIzSmyDVMU
jYKnJB39MhmWwwdBUL3GmvfbvmRlZfHoy4xFXozwkoP01QOsGY86L33VqL0Yib5UGcUywTtUce9PqSwT
wgkS49/8jQzPqz09zDYJ2/rlKAWNMa/HWZevTfh6HB/4wmf0cqQkmoTRr8en+kCCZ/qYDyTI8PboBxJT
fyJDIsOhxU+RJZzq0KD1/tlqkzD5JzIwx0dSVG9r8NhzfWQ+CbXgl/pIKtOahCh4blvPGLNtqs/kMrVJ
2BYfSmb4vO2T4GKlMcDoywzX1Wjpoi9V3KhJHOodp2JoEmrBg2tr9OiGJmHW4DPRJAwFDz7QGr26aBJW
EnyG9bVt/8NEZiP8lxmuvUf+y8yieGC9tmXwwHpty7BotRkLS9eblUVL7kuVrnfYoZ//AROOTSGrgwV9
AAAAAElFTkSuQmCC
</value>
</data>
<data name="TsBtnDebugStart.Image" type="System.Drawing.Bitmap, System.Drawing" mimetype="application/x-microsoft.net.object.bytearray.base64">
<value>
iVBORw0KGgoAAAANSUhEUgAAADAAAAAwCAYAAABXAvmHAAAAAXNSR0IArs4c6QAAAARnQU1BAACxjwv8
YQUAAAAJcEhZcwAADsMAAA7DAcdvqGQAAAEPSURBVGhD7ZfBCcJAFERzVOzCk81Ygr3Yk0dr8eTBDhRP
+j+ysAwTogayM7APHoQk8GfDZEmGTqfTkecUbj+HnrzCe3gMV3nCjVxA8RLuQyvqBRStasUWkNrUioWv
la8VC82UrRUGPYQ3OFd8hFmrdSgDhkw2YQZ9hng9laoVhqvZhecQ7ylK1ApDMfJpX0O8N22+W2GgMWRr
hUGmkKsVBvgWmVrh8F+QqBUO/YemtcJhc2hSKxw0l8VrhQPmYr0A2wrZvsTW22iTujBw+BS2nxLWH3My
dWFgoBrbHxrZujAwnP1P/ZgSdWGwsLVSdWGw0Gnz3eVbWHjZujDq4PJ1YWRwm7owrOrS6XQ6SzIMb9OV
UfyTpgr5AAAAAElFTkSuQmCC
YQUAAAAJcEhZcwAAFiUAABYlAUlSJPAAAAEXSURBVGhD7ZfBCcJAFETnqNiFJ5uxBHuxJ4/W4smDHSie
lIUshGGWRAPZ+fAfzCW75M+Gl0CAJEkSdy4A9nwxEh8ATwBnABtejEA5QM0NwJE3uDM+QE0orbh8TRit
uDjHXisu3IqtVlz0BOAhrpe8Bq22fJOecMnCbij6FuslVlpxuTEHAFexp8ZCKy6lKE/7LvaWdP9acaEW
tlpxkSnstOICc7HRiof/goVWPPQfumrFw5bQRSsetJTVteIBSwl9gLAKhX2JV9dFwUPn0kUXBQ+foqsu
Ci7QwkIXBRdR2Oii4EJj7HRRcKmCrS4KLhf+p74VC10UXJRjpYuCC9d0/7rMhYuX2OqiCKWLIpQuilC6
JEmSrMsX05VR/EVYTyAAAAAASUVORK5CYII=
</value>
</data>
<data name="TsBtnFailMode.Image" type="System.Drawing.Bitmap, System.Drawing" mimetype="application/x-microsoft.net.object.bytearray.base64">
<value>
iVBORw0KGgoAAAANSUhEUgAAADAAAAAwCAYAAABXAvmHAAAAAXNSR0IArs4c6QAAAARnQU1BAACxjwv8
YQUAAAAJcEhZcwAADsMAAA7DAcdvqGQAAAFpSURBVGhD7ZkxTgMxEEUXGo6QEK6ULiAKaBFU3IILIVoo
Eam4BFwA6IgE/xeRviwnXiUzxiP8pNdEmtn5ir2rXQ+dTmcjB/AaLuEX/Cn4DuewCWbwCeYG3eYb/HMO
4S7D0yYC3MDccCWbWUJc8zrYA5zAMHxCDTCFodDhaTh6gJFww3Pj0wV/sKJWAN5y19f4hufQBB2eeqEB
qFkIbUq94LLh0HotkxDakHpyCtMQK3gJd0abUW/MQ2gjWgPTENqE1sIshDagNTEJocW0NnuH0EJaYv1E
Tes8vINF0qIS6QPJU/4TRdKiEuEDhF9C1pzB3Ca+gKPQQlqTvYcnWkxrYTI80Qa0BmbDE21CvTEdnmgj
6on58ESbUS/Cv9CEf6UM/1If/rOKG+EDfEANEOrLNHmBGuAeHsMw3EINMFZuxiYOOI7gK8wNWZK3xiY4
gY8wN+Q2mwlAeMx6BZ9hemqTs5kl1On8H4bhFxInwHev/ipmAAAAAElFTkSuQmCC
YQUAAAAJcEhZcwAAFiUAABYlAUlSJPAAAAFaSURBVGhD7Zk9TgMxEEYfNByBvyvRAaKAFkHFLbgQok1K
BBWXgAsEOpBAXxEJjbzyJjvrsYWfNFXGu99TxlllDZ1OZ4gd4AZ4AT6Bn0y9Ayf2IlEcActEyFy92QtF
sLtl+GoEbhPBxlQ1I6SZ/xvsEdi3TTXzYQQObEPt2NFoji4wEm14bXzVqf1wCqUE9JO7vscXcGEbtiVC
wFWilIDGRqHdJUoJiLOExDdwZRs3oaSAcJcoLSBcJSIEhJtElIBwkYgUEJMlNhVYP1Htujnq3t48hV2U
wz6Q5ix9E1nsohzNCzQ/Qt6cD2ziS9s4RKTA5PAiSsAlvIgQcAsvSgu4hhclBdzDi1ICzf+hsQ9Al/Ai
QsAtvCgl0PxrldloXmBlBJp6My2ejcADcGibauYuMUZjqpoDjj3gNRFwTFVxxCSOgUUiYK6qERA6Zr0G
nhKnNqmqZoQ6nf/ELxInwHd6df9CAAAAAElFTkSuQmCC
</value>
</data>
<data name="tslBtn_ActionOnly.Image" type="System.Drawing.Bitmap, System.Drawing" mimetype="application/x-microsoft.net.object.bytearray.base64">
<value>
iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAAAXNSR0IArs4c6QAAAARnQU1BAACxjwv8
YQUAAAAJcEhZcwAADsMAAA7DAcdvqGQAAAFcSURBVDhPpZKhbsMwEIb7CH2FsMGFDYcNLqyw8hNMRqWV
UWEVFFjJJDCSSWikkMJIJoUFBoEBBgX/7txmSdeFtCf9shT5+3y+ePFy2daC0xwbNHUDUxroQkMfKLlG
ts+gdgq37Y/FoO88uNzZwXW3nBz8xcP3HvJbzgtMZcZThxO3KkAcsRJIP9N5ASqJZzMKZsoUGcwho3lQ
cgW9V8hoHqCr6Yo6rg1mBQz7sxpzkvCtgC1FkDCs2+x/wQDLVXIH+2MKX9O3KoYqJFQtHgW/8Jo2D5IJ
7MoI9hBB5gKyouFOBVPYtTcJwXLNYAybRzA7gr8iiF0KUU4EDA8QDylIqMUgoZbjtyWS92VYxVoi2SQQ
xZ8O1EYEeAjDtoiRfERAb4GO0jfAif4OXSHdJhPBAGIU4OJC+7wGAcPdVcDc5B1cAX626OkJ80m88Wwo
mgAOQdPcCZ5MELxWi8UPMW+AfDa6oN4AAAAASUVORK5CYII=
YQUAAAAJcEhZcwAAFiUAABYlAUlSJPAAAAFUSURBVDhPpZKhbsMwFEX7Cf2FsMGFDYcNzqyw8hdMRqWV
UWBlFFjJJDCSSWikkMJIJoEBBoEBBgV3em7TJN1CuitdmeSc9xS9zea/sY0Ftb7UqKsapjDQuYY+a+hM
Q50UZCrxzD1CoO89KK5zcP29rYO/evjBQ3yLdYEpzTR1nHiUAaLyHQf7ZOsClAKvdhKsxOQK5qygqZmE
PkmoVAJXD11q6MpgVUCw7+TUVsA3HLbgQUKwbtTfghEWu2QB+wuDrxL4MobMBWTFfwse8J5Nkhnsigj2
HEFkHKJkS8Ecds1d0nCIPYExbBbBpBHEVwSeMvBiJiB4hOgnBUlFMAsrx29bJO/b8PK9QHJIwPOnDeSB
B3gswTaPkXxEwGCB3gJDDbQKJuNgx2QmGEFMAlxdWJ/eICC4vwme7uAG0NlicPA0iT7sDNBpoKWqZReC
F7s46VfzAzFvgHyRmx3AAAAAAElFTkSuQmCC
</value>
</data>
<data name="TsBtn_Record.Image" type="System.Drawing.Bitmap, System.Drawing" mimetype="application/x-microsoft.net.object.bytearray.base64">
<value>
iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAAAXNSR0IArs4c6QAAAARnQU1BAACxjwv8
YQUAAAAJcEhZcwAADsMAAA7DAcdvqGQAAAJWSURBVDhPtZJbSFRRFIYP9GAvRRfqqaeC6CWKCKqHjMIs
TDOMxIysiRiVFJXJ0im1vKGTt0nTxsjLoOatEkWlSITMIbPScIwuEqmR02TNmfGexdc5R0cbMoKgH342
7L3/b6292MJ/UVtDKi23E6krjmV268961NFJbVn2nIszj2GzlDNqucFAbwbn1J5kp2i4ptOiT4n+HSiH
JsQapuzVTNgqMBZoGBsuJflCGC/bY7gY5k2MaiuWthMMN60lIuigK0QGyOEpeyX5qcfpMmUgfshlqFfL
O9Mp6gt9CQ50pzxuDc+yBUKPHnAFVJdmzgDEW+jigkjQBKAN9+d8qB8atS+RKm9CAj3IiVinAAK83F0B
FUU6JsUqJq0GxgbTsL4Ix1y6UnFPyQq6CpbwRO+mhGV77NjsCjAaUhm3FjPen8TYqzOMPj+M2LCUrJIm
0gx1XLpaRYzOSGRiIcGxeoKi0l0BRXmJjAzoGe1VM9LpjePhFj7dXaWEnZqa/o7NPkH/kA3/kMv4nNTO
Qwqz4hFfJ+Ho8MTRuhF782oGSgSlsqyiO22KDZUt9PRZlPD9djP7/FQzkLz0WL50n8XesgGxcTnWGjf6
bgpK29+mf/DVIVX+aKPnrQVT93u8AiPxlMJ79h/CfecuhJzkaKyPQ6TwMj7XLmawbBHmfIEI6c1y284O
rksd5BqbqW81K6vs7ZvWI1xJiFI+iHPKTqulgf1a+YHpjRKuuddFZdPTeYCsrPjT0g/zReW3F5/d25QD
edrym53VFvIcYCEdkaYtX/ibZ6//qwThJ/L08nQkBLtFAAAAAElFTkSuQmCC
YQUAAAAJcEhZcwAAFiUAABYlAUlSJPAAAAJXSURBVDhPtZJfSJNRGMY/6MJuiv5QV10VRDdRRFBdZBS2
wmaLRWKLVouYk5RNlrWt1Jw6dOl0adoWzW2oTWclikrREFqOzEpjW/RHos3Itax9m5tzWTzxHZnyqRBd
9MDDuXjP83vf83Io6n/I2a2B454anU1KLKwt0tPBIXQ018y5qfoUQoEWRAO34fdW4ZKYg5pyOW5qVdCX
FywGMqE4bUci3I54qBXWRjliExaUXcnFmwEFruZyoRDtRMB5BhO9GyEVHmVDGAATToRtaNCcxrCrCvTn
Oox7VfjoOocuIw/ZglS0FG7AyxoKOSePsAHtlupZAH0X2kIhiuVZUOVl4nIOH3IxDzIRFxJBGmqlmwgg
Kz2VDWg1aTFNt2E6aEBsrALB13nwWNYSu81rMNy4As/1KSTMOG3PdjbAatBgKtiEKV8pYm8vIPrqOOju
ldCZe1Fh6MS1G21QaK2QqY3IVuohzK9kA0z1akz69Yh6xZgc4iLyZAe+PlhHwkklZn4hFI7DNx5CpqQE
GWdV8xCjrgj0u1JEBjmI9G9FuG89/GaKdGZkuu8kNtgccI8GSPjRgAeH+KJZSH2lEt9HLiLs2AK6ZzWC
9hSM3qHI2D9nfuNHJA7flxDcHwJwjXxCukAGDl+EA4ePIXXvPlC1ZQUIPpOA7lmFbx3LMda8DJ4GClK1
kYydnOCWzYE6ax+6+j3kZLx722ZQ14vzyQdJbjlpsVLP6vzY9Z6E7Q+HYet9MQ9gpCs6D6mQBxH/IDL2
7yIFZtvMm5PdlvIcYCmdkJSQC3/zwtw/6w/y9PJ0ELb+pAAAAABJRU5ErkJggg==
</value>
</data>
<data name="TsBtn_ExpandNode.Image" type="System.Drawing.Bitmap, System.Drawing" mimetype="application/x-microsoft.net.object.bytearray.base64">
<value>
iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAAAXNSR0IArs4c6QAAAARnQU1BAACxjwv8
YQUAAAAJcEhZcwAADsMAAA7DAcdvqGQAAAEySURBVDhPxVKhbsNADM0v5RfKBtc/qIIGq6DRKqiwCiqs
FFJY6cjopJDASkcKAw4UDhwY8PzO9mQpLZu0Jz3l8uL37LNS/QnCZ6b6paH+kqk95vIMExX2Z9GafaL1
LtHqXblNpHYOmCTATDh7QusQdNIwZv0WlwGeQLxLGMzNIZeuxnrjAsaJBTUBPgiMtyQfvokyM3zEoqsd
OxDBMF7VoCjvas5fRMNlfByQ5lyKcfaMrKEGnWFeBuhInoDtAFdA98TdE2vDeREggsFCjJjAzHF+EGAj
lSvwQtHxl2weJzc+m/tnAQacjatXuYJ05wY3/tGeBXgCtgMsEKPDHK4ccApFV7sElC6z0AeBuAJq0Bnm
RQAEjLretNTueuoOgxQeB+r2AzXbjr+3pcYHq/1fUVU/iEIHnpaEtYoAAAAASUVORK5CYII=
YQUAAAAJcEhZcwAAFiUAABYlAUlSJPAAAAEoSURBVDhPxZAhj4NAEIX7l/gLuJPtP2hQJxvU2QZV2aCQ
TTDIJpizTdYgSTCViBGVFSMqXvN2WbphW3fJTfICDPO+ebur1V9Ue1EkXxnKsyKv1D7bDlZl43rZQbDZ
C9KfSTvBC9A5gDfxPRR7BUGnCVYpku8hBoRiDTcHozk7qt3qlWwDgOlkNrGWsOEq7scD0AfQ/g62/0pw
cQ1fpp8M4fdk1jtQn817gIxqh6MEvYAz3ExzDJgihWL5O+ARuF3ugNyAuokAruFrCWMCbx7GNwAfyR6h
E7txVi8wXRC/MSg/Ad4lSNfuCG67wlz1MyBUeAe8QEanue0V5amNAXbL6LSE8Qic4WaaIwAbjLrZ5sj3
JYpj7QarGsWhRrYrkK5zOxOCZ8C/1hOIQgeeYXTusQAAAABJRU5ErkJggg==
</value>
</data>
<metadata name="StuMain.TrayLocation" type="System.Drawing.Point, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a">
@@ -387,75 +384,73 @@
<data name="MsiGridRowBlockInsert.Image" type="System.Drawing.Bitmap, System.Drawing" mimetype="application/x-microsoft.net.object.bytearray.base64">
<value>
iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAABGdBTUEAALGPC/xhBQAAAAlwSFlzAAAO
vAAADrwBlbxySQAAANNJREFUOE+9UqsOg0AQ5Jf6C3W1/EGDqmxQ2OYUkpxCNjmDJDmDJcFUNsFUViAq
K1ZUTNnjeqmgPALpJKNmZza7GW8xdFFD5RVU1lGeNUSiYeVx4Av06igSNTPAGukJNC3DSE4P+Gxlo+ED
8A9iesBmF6CPVl4PMtVg8n9ELBEchaGVf8INsJnPq+9AdQP0haAKGgxg0ZE3G+MVUCVBZIQgGQ5guIHw
JI1R5oQwJfgxYRs1owEOfG/vs3VZQxdtC20buybOLZLFak0MFjdx/7cmet4bXasamC+04CYAAAAASUVO
RK5CYII=
vAAADrwBlbxySQAAANhJREFUOE+tUi0PwjAU3F/iL+Cw+wekCkmmZknV5FI1SVIzuaRmdskMkmQGiZiY
nHgCceR10JAG9pFxyane3ct7vSBYC1M20EUNnQ9UZwOZGvi6n8AH6DFQpnphwMtIPdD2QBSr+QHvqWy0
7IDwIOcHbHYC3+jrVkNlBky+j0wUxFFa+jofTsBmXq+5A/UNMBeCLmk0gB8debI1XgFdEWROEOl4AMMJ
opOyRlUQoowQJoRt3E4GOPC+/qHtsU3VwJS1a+PQxKVF+ncTxeom7qf/18E/ytImPgFdqxqYZ0UkZwAA
AABJRU5ErkJggg==
</value>
</data>
<data name="MsiGridRowBlockDelete.Image" type="System.Drawing.Bitmap, System.Drawing" mimetype="application/x-microsoft.net.object.bytearray.base64">
<value>
iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAABGdBTUEAALGPC/xhBQAAAAlwSFlzAAAO
vAAADrwBlbxySQAAAN1JREFUOE9joArYdvDC/7U7T/1fvOHQ/5nLdv2fMG/z/97Z6/9DpQmDdbtO/weB
L9///X/89s//S49+/Tf1TCbegPlr9qNoPn7r53+nsHziDZgwbyPYRhAGaZyxcDUcT56z/H/X1IX/m3pm
oRjIwsSC2wKQxsM3/vzfdu7n/6UHv/2ftPkT2HCQJnQM1YIKQDauO/Hjf/uyB/9LZ979n9JzByNMUDSj
x0Jl6xSwV2DegmGockyALRYisptwa0AH2GIBr43oAGQAunNJMoAmCYkkA5ATEjKGSg9qwMAAAIGPAPqv
CFdSAAAAAElFTkSuQmCC
vAAADrwBlbxySQAAAN1JREFUOE9jYKAG2Hbwwv+1O0/9X7zh0P+Zy3b9nzBv8//e2ev/o6vDCdbtOv0f
BL58//f/8ds//y89+vXf1DOZeAPmr9mPovn4rZ//ncLyiTdgwryNYBtBGKRxxsLVcDx5zvL/XVMX/m/q
mYViIAsTC24LQBoP3/jzf9u5n/+XHvz2f9LmT2DDQZrQMbpeMADZuO7Ej//tyx78L515939Kzx2MMEHR
jB4Lla1TwF6BeQuGkQ1AAdhiISK7CbcGdIAtFvDaiA5ABqA7lyQDsHmBJAMo9gJyQiLLCwMKAIGPAPoV
xeALAAAAAElFTkSuQmCC
</value>
</data>
<data name="tsBtn_CheckAction.Image" type="System.Drawing.Bitmap, System.Drawing" mimetype="application/x-microsoft.net.object.bytearray.base64">
<value>
iVBORw0KGgoAAAANSUhEUgAAAA8AAAAPCAYAAAA71pVKAAAABGdBTUEAALGPC/xhBQAAAAlwSFlzAAAO
vAAADrwBlbxySQAAAGRJREFUOE+lzcENgDAIhWFmchbHcRN3YwEW4GblgDGFV9r0T96hCV9K+53Xs7yv
98HMYSISpqo1RrDEGTxuqjGCJfbDDA5xf4ygVWIELYhHP3oQ+zGCVor9+L+sgGehFfDy9iJq1K76qrTi
CkcAAAAASUVORK5CYII=
vAAADrwBlbxySQAAAGNJREFUOE+lzMEJADEIRFFr2lq2nO0kvdmADXjb4EEIY1RCBv7NJ9H13u8/bsXM
HBKRkKr2GJHDFiOynkE9RuSwxX64gyXG4wzaWpzBEuMDhCX24wym2I/XdgsYUQZtAR93uwnUrvqqK2la
WwAAAABJRU5ErkJggg==
</value>
</data>
<data name="tsBtn_UncheckAction.Image" type="System.Drawing.Bitmap, System.Drawing" mimetype="application/x-microsoft.net.object.bytearray.base64">
<value>
iVBORw0KGgoAAAANSUhEUgAAAA8AAAAPCAYAAAA71pVKAAAABGdBTUEAALGPC/xhBQAAAAlwSFlzAAAO
vAAADrwBlbxySQAAAFdJREFUOE+ly7ENACEMQ9EMeeMwaxbIAukANyfdQRIjvuTCxZP7ntaP9zaPqoYz
s89o/IfuzuEdpHAES5zBFFcwxAxEC2YhSnEGUYgriLaYgWjBx7tLZADW/iIHX3Y7QQAAAABJRU5ErkJg
gg==
vAAADrwBlbxySQAAAFNJREFUOE+ly8ENACAIBEGLtBxrpQEa4Kfxp6fAGTfZ55TyXW39+RWLiLuqbtMY
oZlx+AYp7MEURzDEGXQxA2cHZmGKEa0wxIgQuhjRDc4O/PxvA9b+IgeMUL95AAAAAElFTkSuQmCC
</value>
</data>
<data name="TsmiDebugStart.Image" type="System.Drawing.Bitmap, System.Drawing" mimetype="application/x-microsoft.net.object.bytearray.base64">
<value>
iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAABGdBTUEAALGPC/xhBQAAAAlwSFlzAAAO
vAAADrwBlbxySQAAAMdJREFUOE+tk+ENxCAIhdnJndzJBW6Yi8N0A+89ChUbNf44kpdY4HsS2srfI+Xa
UqGaSijmIGuZh0PoUz1wFAqlTowy4IwGB1ewCsXP9+omfNDbDabJCAOi3ABKaDS8j+63tiwY02ADmKsi
g0mhqQYTBrvBY2LNM4O+VB4mBhR3c25ghWhAsXFvgO3FQoSPJtBDkMNcbswtl6iHMMUb9txgEF8j4z3F
Vrisv8IQRya4WfeyCi1yvAmc8K0Pn/AuOOL9f9xagyI/02zCPFZpw6EAAAAASUVORK5CYII=
vAAADrwBlbxySQAAALxJREFUOE+tk4ENxCAIRdmJndiJBW6YC8PcBlw+WkVizTU5kp9Yy38gtkT/DhZz
VshDBGFPzGvuEpdJrGmYs8RcbQMSNZduXioXc4jVX+/PhOAhqnczIKvZmi4AjsM6AfW8LuR6QboBe0a0
QBTQ1j8qzIpIHpADYA71BgBhNr8DUrUsJJ4BvA7ocQex2AAw3LxXAWOIsUhdVPMWkK9x18VRnK/wKYS1
zeUu4iXaq8YYWvmET4EW2//RdDJ+AdNswjzahYpaAAAAAElFTkSuQmCC
</value>
</data>
<data name="TsmiDebugEnd.Image" type="System.Drawing.Bitmap, System.Drawing" mimetype="application/x-microsoft.net.object.bytearray.base64">
<value>
iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAABGdBTUEAALGPC/xhBQAAAAlwSFlzAAAO
vAAADrwBlbxySQAAAH1JREFUOE+9kEEOgCAMBHvi3Vx4N1pkzVKoFQ9O0sTW3TkgHiml+jQ95qOhUsow
LNC9R0dsyJYl530Bdi2/EkitgwS3pQBBnhYmyX3zBChM08OhwI4t820SWFqYyuEbWFBE6H8BYFEgOH+4
cxEIYlig323fAYJPZQXFuSxyANoUGxZ/KYqDAAAAAElFTkSuQmCC
vAAADrwBlbxySQAAAHpJREFUOE+9kTsOwCAMQzNxbhbOnSqoocZ8Ujr0SRmo7JcKRBaklHQ3nB+wUCml
GxTYmTsVDnFZcj4XYPmVQFQ7iX+bCnBj22RhkIQCLwxzh0MBD5e3AqaGoRzeAYNb8RX+EzgoCgSq63lk
G0EMCtofneCCT2WjuwviAtoUGxZ57ZXzAAAAAElFTkSuQmCC
</value>
</data>
<data name="TsmiDebugContinue.Image" type="System.Drawing.Bitmap, System.Drawing" mimetype="application/x-microsoft.net.object.bytearray.base64">
<value>
iVBORw0KGgoAAAANSUhEUgAAABIAAAARCAYAAADQWvz5AAAABGdBTUEAALGPC/xhBQAAAAlwSFlzAAAO
vAAADrwBlbxySQAAALhJREFUOE+t1LsNwyAABFBGyCiZgZ4dUtCzQirWyBBMQZWGPrVFQcOnJL4IJMuy
MIacdI3BT7L5kBhjXuu893cyE0BCiLwsi0spPcrj6wFEKc2c82ytzcNYhSpmjMkhhGcZ7s8WQhljFXuV
KX3ZQxXTWv8w59ytTG3nCKpVSmFF311YC0K7sTMIBbZ+5qe8cpwzSErZt2Fb0F/+0SUE2UNDS49soeHN
iFRo6ngggKYPLAJo+gohhHwB0XQ+lRtjI7IAAAAASUVORK5CYII=
vAAADrwBlbxySQAAALhJREFUOE+l1LsNwyAQgGGPkFEyAz07pHDPCqlYI0MwBVUa+tSIgoZHeclFQiIn
BzD8EpXhkyweW0oJUko+hHDdVkJICAHWWp9zvtHvwyHEGIN938E5B9NYgQpmjIEY453O61ZDODjnBXvQ
uc0oVDCt9Rfz3l/omsOOoDKUUrijzyGsBZ3CelDBYowvuvanHiSlHDuwLWj4t7B/0CkEo9DU1mM1NH0Y
sfquTV8PDKHlC4shtPyEfHoD0XQ+lbNEzJUAAAAASUVORK5CYII=
</value>
</data>
<data name="TsmiDebugStep.Image" type="System.Drawing.Bitmap, System.Drawing" mimetype="application/x-microsoft.net.object.bytearray.base64">
<value>
iVBORw0KGgoAAAANSUhEUgAAABIAAAARCAYAAADQWvz5AAAABGdBTUEAALGPC/xhBQAAAAlwSFlzAAAO
vAAADrwBlbxySQAAAUdJREFUOE+tlK9uhEAQh3mEPkIfoY/Q4EnO4irwnEZVYQme5CSyAk81qo9QLEFg
+CO38013281dybXNTfILczOz38ztLgTruhbBLUxAZlmWk/35fwPUtq2R58s0TXc2/HcDFIahaZoG2Nse
bNu2J5n81Rcxm/4GoaqqFCYF9zatxgLU973WIHyBHb5gPgjleQ5smuf5gTzF1BBjsavDJ0ZOa3F8EAI2
DIPCBHQqy1JjLI6iyMRxrH6WZaaua4DFjyCUJIkZx1G7spAYEF+uTpq974KQmyJNU11wnidGDsbViTgd
psL3YQDcxNTs7hEF7JE8C6ZyEPYFCL7X7HgBOj81jtefpus6lQ/SK+CD7Alc3CPpeOAUuT9sLI3snZuk
9lGLHOjazbZ/k/04ip7x3dRqgH77rjEpNU42/GmApMNN3v4bfI+C4AP3/yDWi5gZ5QAAAABJRU5ErkJg
gg==
vAAADrwBlbxySQAAATxJREFUOE+tlLFugzAQhvMIfYQ+Qh+hYkfKytaBncxMnVgjdqSOjB3Y6czURygr
YvDC2aOrz8KR4wS1kbD0S9bd+buz7+CgtT4f9lhaaysiH7H94QWo73urtf5USj3F/n8vQEmS2K7rgH1v
wYwxbyLyFQrbJcCDUNM0DmaMeY4haBxHF4PYi8jxAgtBqKoqYGpZlhf8BBODjcM+jj02fC42BnnYNE0O
RiPqunY2DqdparMsc/uyLG3btgDPd0Eoz3M7z7PLykFsQEL5OBH52QT5yshcFIU7EPux4YOxCfIV0R2q
Yh/CAPiKibkLCh+c+1OVh/AuQKJkpxtQ3DXaG1YzDINTCHIjEILWDtzMESNAF5kfHpZE68wpY8zr1Rz9
NdnrNXmPk4i8h1W79ci3RqXEeF05Ae319e/yP/oF9/8g1rKWugAAAAAASUVORK5CYII=
</value>
</data>
<metadata name="$this.TrayHeight" type="System.Int32, mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">

View File

@@ -3,6 +3,7 @@ Imports System.Threading
Imports System.Windows.Forms
Imports UTS_Core.DebugLog
Imports UTS_Core.UTSModule.Test
Imports UTS_Core.UTSModule.Test.Command
Imports UTS_Core.UTSModule.Test.StatusMonitor
Namespace UTSModule.Station
@@ -631,6 +632,35 @@ Namespace UTSModule.Station
_debugTest.Start()
End Sub
Private Sub 执行1ToolStripMenuItem_Click(sender As Object, e As EventArgs) Handles 执行1ToolStripMenuItem.Click
If _debugTest IsNot Nothing AndAlso _debugTest.IsAlive Then
MsgBox($"请先退出当前调试后重试")
Return
End If
'_planGrid.ClearDebug()
StartDebugThread(AddressOf _tester.TestNode, _planGrid.ActiveNode)
End Sub
Private Async Sub 执行2ToolStripMenuItem_Click(sender As Object, e As EventArgs) Handles 执行2ToolStripMenuItem.Click
'If _debugTest IsNot Nothing AndAlso _debugTest.IsAlive Then
' MsgBox($"请先退出当前调试后重试")
' Return
'End If
'_planGrid.ClearDebug()
'StartDebugThread(AddressOf _tester.TestNode, _planGrid.ActiveNode)
' _planGrid.ClearDebug()
Dim row As Integer = _planGrid.ActiveNode.RowListIndex
Dim result As TestCommandReturn = Await Task.Run(Function()
Return _tester.TestNode(_planGrid.ActiveNode)
End Function, _testerCancel)
If result IsNot Nothing AndAlso result.ExecuteResult Then _planGrid.SetRowFocus(row + 1)
End Sub
Private Sub TsmiStepDebug_Click(sender As Object, e As EventArgs) Handles TsmiDebugStep.Click
_tester.StepTest()
End Sub
@@ -709,13 +739,24 @@ Namespace UTSModule.Station
_debugTest.Start()
End Sub
Private _testerCancel As New CancellationToken
Private Sub TsmiDebugNode_Click(sender As Object, e As EventArgs) Handles TsmiDebugNode.Click
If _debugTest IsNot Nothing AndAlso _debugTest.IsAlive Then
MsgBox($"请先退出当前调试后重试")
Return
End If
'If _debugTest IsNot Nothing AndAlso _debugTest.IsAlive Then
' MsgBox($"请先退出当前调试后重试")
' Return
'End If
_planGrid.ClearDebug()
'Dim row As Integer = _planGrid.ActiveNode.RowListIndex
'Dim result As TestCommandReturn = Await Task.Run(Function()
' Return _tester.TestNode(_planGrid.ActiveNode)
' End Function, _testerCancel)
'If result IsNot Nothing AndAlso result.ExecuteResult Then _planGrid.SetFocus(row + 1, StationPlanGrid.ColNames.Description)
StartDebugThread(AddressOf _tester.TestNode, _planGrid.ActiveNode)
End Sub
@@ -848,6 +889,8 @@ Namespace UTSModule.Station
_planGrid.JumpCall()
End Sub
#End Region

View File

@@ -13,7 +13,7 @@ Namespace UTSModule.Station
AuthByType(RowType)
Pause = False
Action = False
Action = True
RecordName = String.Empty
Retry = 0
@@ -244,6 +244,12 @@ Namespace UTSModule.Station
''' <returns></returns>
Public Property CanChangeLever() As Boolean
''' <summary>
''' 允许移动节点移动
''' </summary>
''' <returns></returns>
Public Property CanMove() As Boolean
''' <summary>
''' 当前节点是否处于重试状态
''' </summary>
@@ -257,21 +263,27 @@ Namespace UTSModule.Station
CanChangeContent = False
CanDelete = False
CanChangeLever = False
CanMove = False
Case RowTypeEnum.Module
CanAddChildNode = True
CanChangeContent = True
CanDelete = True
CanChangeLever = True
CanMove = True
Case RowTypeEnum.Control
CanAddChildNode = True
CanChangeContent = True
CanDelete = True
CanChangeLever = True
CanMove = True
Case RowTypeEnum.Flow
CanAddChildNode = True
CanChangeContent = True
CanDelete = True
CanChangeLever = True
CanMove = True
End Select
End Sub
#End Region

View File

@@ -1,8 +1,6 @@
Imports System.Diagnostics.Eventing.Reader
Imports System.Drawing
Imports System.Drawing
Imports System.Windows.Forms
Imports FlexCell
Imports FluentFTP
Imports UTS_Core.UTSModule.Production
Imports UTS_Core.UTSModule.Test.Command
Imports UTS_Core.UTSModule.Test.StatusMonitor
@@ -528,24 +526,28 @@ Namespace UTSModule.Station
Select Case node.RowType
Case RowNode.RowTypeEnum.Flow
Select Case node.CommandType
Case "System"
If node.Command = "Call" Then
Return Color.Blue
Else
Return Color.DarkSlateGray
End If
Case "ComPort"
Return Color.Olive
Case "UtsComPort"
Return Color.SeaGreen
Case "Converter"
Return Color.DarkOrange
Case "Process"
Return Color.DarkBlue
Case Else
Return Color.Black
End Select
If String.IsNullOrEmpty(node.CommandType) OrElse String.IsNullOrEmpty(node.Command) Then
Return Color.DarkGray
Else
Select Case node.CommandType
Case "System"
If node.Command = "Call" Then
Return Color.Blue
Else
Return Color.DarkSlateGray
End If
Case "ComPort"
Return Color.Olive
Case "UtsComPort"
Return Color.SeaGreen
Case "Converter"
Return Color.DarkOrange
Case "Process"
Return Color.DarkBlue
Case Else
Return Color.Black
End Select
End If
Case RowNode.RowTypeEnum.Module
Return Color.DeepPink
Case RowNode.RowTypeEnum.FixedModule
@@ -594,7 +596,7 @@ Namespace UTSModule.Station
_grd.Range(row, ColNames.Result, row, ColNames.ErrorMessage).ForeColor = tmpRowColor '着色
If node.SaveToDb = False Then
_grd.Cell(row, ColNames.RecordName).ForeColor = Color.LightGray '着色
_grd.Cell(row, ColNames.RecordName).ForeColor = Color.DarkGray '着色
End If
If node.CommandType = "" And node.Description = "" Then '空白行字体与底色同色,避免对编辑产生干扰
@@ -624,7 +626,7 @@ Namespace UTSModule.Station
_grd.Range(row, ColNames.Result, row, ColNames.ErrorMessage).ForeColor = tmpRowColor '着色
If node.SaveToDb = False Then
_grd.Cell(row, ColNames.RecordName).ForeColor = Color.LightGray '着色
_grd.Cell(row, ColNames.RecordName).ForeColor = Color.DarkGray '着色
End If
If node.CommandType = "" And node.Description = "" Then '空白行字体与底色同色,避免对编辑产生干扰
@@ -685,10 +687,10 @@ Namespace UTSModule.Station
gMouseOldCol = tmpMouseCol
Else
If gRowType <> RowNode.RowTypeEnum.FixedModule Then '光标移动到flow节点
_grd.Range(tmpMouseRow, ColNames.Result, tmpMouseRow, ColNames.ErrorMessage).BackColor = Color.LemonChiffon
_grd.Range(tmpMouseRow, ColNames.Result, tmpMouseRow, ColNames.ErrorMessage).BackColor = Color.FromArgb(40, Color.LemonChiffon)
_grd.Cell(tmpMouseRow, tmpMouseCol).FontBold = True
If gRowType = RowNode.RowTypeEnum.Module Then '光标移动到module节点
Mouse_MoveOnNode_BackColorRepain(_grd, gRowType, tmpMouseRow, Color.LemonChiffon)
Mouse_MoveOnNode_BackColorRepain(_grd, gRowType, tmpMouseRow, Color.FromArgb(40, Color.LemonChiffon))
End If
End If
End If
@@ -806,6 +808,7 @@ Namespace UTSModule.Station
.FrozenCols = ColNames.Description '冻结列
.BorderStyle = BorderStyleEnum.None
.DefaultRowHeight = 22 '默认行高
.DefaultFont = New Font("微软雅黑", 8)
'.DefaultFont = New Font("Consolas", 8)
.Range(0, 0, 0, .Cols - 1).Font = New Font($"幼圆", 8) '首行样式
@@ -878,6 +881,9 @@ Namespace UTSModule.Station
UnLockGridAutoRedraw()
End With
Dim s As Integer = _grd.DefaultRowHeight
Console.WriteLine(s)
End Sub
@@ -950,11 +956,18 @@ Namespace UTSModule.Station
.Cell(row, ColNames.Parameters).Text = $"{ParamsToString(node.Parameters)}"
.Cell(row, ColNames.SaveToDb).Text = $"{node.SaveToDb}"
.Cell(row, ColNames.RecordName).Text = $"{node.RecordName}"
.Cell(row, ColNames.Retry).Text = $"{node.Retry}"
.Cell(row, ColNames.RetryInterval).Text = $"{node.RetryInterval}"
.Cell(row, ColNames.ErrorCode).Text = $"{node.ErrorCode}"
.Cell(row, ColNames.ErrorMessage).Text = $"{node.ErrorMessage}"
If node.RowType <> RowNode.RowTypeEnum.FixedModule Then
.Cell(row, ColNames.Retry).Text = $"{node.Retry}"
.Cell(row, ColNames.RetryInterval).Text = $"{node.RetryInterval}"
Else
.Cell(row, ColNames.Retry).Text = String.Empty
.Cell(row, ColNames.RetryInterval).Text = String.Empty
End If
rowCmdType = .Cell(row, ColNames.CommandType).Text
tmpIsAction = .Cell(row, ColNames.Action).BooleanValue
'tmpColor = setRowTextForeColor(rowCmdType, tmpIsAction, node.RowType)
@@ -971,7 +984,7 @@ Namespace UTSModule.Station
If .Cell(row, ColNames.Action).BooleanValue = True Then
.Range(row, ColNames.Result, row, ColNames.ErrorMessage).ForeColor = Color.DeepPink
Else
.Range(row, ColNames.Result, row, ColNames.ErrorMessage).ForeColor = Color.LightGray
.Range(row, ColNames.Result, row, ColNames.ErrorMessage).ForeColor = Color.DarkGray
End If
.Range(row, ColNames.Result, row, ColNames.ErrorMessage).FontSize = 8
.Range(row, ColNames.Result, row, ColNames.ErrorMessage).FontBold = False
@@ -1123,7 +1136,7 @@ Namespace UTSModule.Station
changeType = RowNodeChangedEventArgs.RowNodeChangeType.None
Dim beforeNode As RowNode = node.Clone()
OnUserAction(beforeNode)
If e.Col = ColNames.Action OrElse e.Col >= ColNames.Label Then OnUserAction(beforeNode)
Select Case e.Col
Case ColNames.[Pause]
@@ -1163,6 +1176,7 @@ Namespace UTSModule.Station
Else
node.RowType = RowNode.RowTypeEnum.Module
AddLabelName(node.Label, e.Row) '记录新的标签名称
NodeActionChanged(node)
End If
changeType = RowNodeChangedEventArgs.RowNodeChangeType.Label
@@ -1182,7 +1196,7 @@ Namespace UTSModule.Station
node.CommandType = _grd.Cell(e.Row, e.Col).Text
node.Command = ""
node.Parameters.Clear()
node.Action = Not String.IsNullOrWhiteSpace(node.Command)
'node.Action = Not String.IsNullOrWhiteSpace(node.Command)
CommandTypeChanged(node)
changeType = RowNodeChangedEventArgs.RowNodeChangeType.CommandType
@@ -1193,7 +1207,7 @@ Namespace UTSModule.Station
If node.Command <> _grd.Cell(e.Row, e.Col).Text Then
node.Command = _grd.Cell(e.Row, e.Col).Text
node.Parameters.Clear()
node.Action = Not String.IsNullOrWhiteSpace(node.Command)
'node.Action = Not String.IsNullOrWhiteSpace(node.Command)
'拷贝所有参数到当前节点信息中
Dim planCommand As TestCmd = _testCmdManager.GetCommand(node.CommandType, node.Command)
@@ -1205,6 +1219,8 @@ Namespace UTSModule.Station
CommandChanged(node)
changeType = RowNodeChangedEventArgs.RowNodeChangeType.Command
End If
NodeActionChanged(node)
Case ColNames.Parameters
Dim str() As String = _grd.Cell(e.Row, e.Col).Text.Split(New Char() {_paramChar})
@@ -1257,7 +1273,6 @@ Namespace UTSModule.Station
changeType = RowNodeChangedEventArgs.RowNodeChangeType.ErrorMessage
End Select
OnUserActionEnd(node)
'触发事件
@@ -1265,6 +1280,8 @@ Namespace UTSModule.Station
Select Case changeType
Case RowNodeChangedEventArgs.RowNodeChangeType.None
Return
Case Else
OnUserActionEnd(node)
End Select
StationEditStatusMonitor.StationEditStatus = StationEditStatusMonitor.StationEditStatusEnum.Changed
@@ -1284,7 +1301,8 @@ Namespace UTSModule.Station
Private Sub Grid_SelChange(sender As Object, e As Grid.SelChangeEventArgs)
'todo:更新详情表格
If _headNode Is Nothing Then Return
Dim node As RowNode = _headNode.RowList(_grd.ActiveCell.Row - _drawStartRow + 1)
Dim node As RowNode = _headNode.RowList(e.FirstRow - _drawStartRow + 1)
'Dim node As RowNode = _headNode.RowList(_grd.ActiveCell.Row - _drawStartRow + 1)
If node Is Nothing Then Return
Console.WriteLine($"Grid_SelChange: row:{e.FirstRow} col:{e.FirstCol} end row{e.LastRow} {e.LastCol}")
If Not GridNavigationManager.IsRunning Then
@@ -1315,6 +1333,7 @@ Namespace UTSModule.Station
ActiveNode = node
Dim LineNumber As Integer = e.FirstRow
Dim LineActionEn As Boolean = node.Action
@@ -1390,19 +1409,22 @@ Namespace UTSModule.Station
For i As Integer = 0 To _headNode.RowList.Count - 1
If _headNode.RowList(i).RowType = RowNode.RowTypeEnum.FixedModule Then
_grd.Row(i).Visible = True
'_grd.Row(i).Visible = True
SetRowVisible(i, True)
ElseIf _headNode.RowList(i).RowType = RowNode.RowTypeEnum.Module Then
If action = False Then
_grd.Row(i).Visible = True
'_grd.Row(i).Visible = True
SetRowVisible(i, True)
Else
If _headNode.RowList(i).Action Then
_grd.Row(i).Visible = True
' _grd.Row(i).Visible = True
SetRowVisible(i, True)
Else
_grd.Row(i).Visible = False
' _grd.Row(i).Visible = False
SetRowVisible(i, False)
For j As Integer = 1 To _headNode.RowList(i).AllChildCount
_grd.Row(i + j).Visible = False
'_grd.Row(i + j).Visible = False
SetRowVisible(i + j, False)
Next
i += _headNode.RowList(i).AllChildCount
@@ -1411,12 +1433,15 @@ Namespace UTSModule.Station
Else
If action Then
If _headNode.RowList(i).Action Then
_grd.Row(i).Visible = True
'_grd.Row(i).Visible = True
SetRowVisible(i, True)
Else
_grd.Row(i).Visible = False
'_grd.Row(i).Visible = False
SetRowVisible(i, False)
End If
Else
_grd.Row(i).Visible = True
'_grd.Row(i).Visible = True
SetRowVisible(i, True)
End If
End If
Next
@@ -1424,6 +1449,14 @@ Namespace UTSModule.Station
UnLockGridAutoRedraw()
End Sub
Public Sub SetRowVisible(row As Integer, visible As Boolean)
If visible Then
_grd.Row(row).Height = _grd.Row(0).Height
Else
_grd.Row(row).Height = 0
End If
End Sub
Public Sub SetNodeRecordShowMode(recode As Boolean)
If _headNode Is Nothing Then Return
@@ -1432,18 +1465,23 @@ Namespace UTSModule.Station
For i As Integer = 0 To _headNode.RowList.Count - 1
If _headNode.RowList(i).RowType = RowNode.RowTypeEnum.FixedModule Then
_grd.Row(i).Visible = True
' _grd.Row(i).Visible = True
SetRowVisible(i, True)
ElseIf _headNode.RowList(i).RowType = RowNode.RowTypeEnum.Module Then
_grd.Row(i).Visible = Not recode
'_grd.Row(i).Visible = Not recode
SetRowVisible(i, Not recode)
Else
If recode Then
If _headNode.RowList(i).SaveToDb Then
_grd.Row(i).Visible = True
'_grd.Row(i).Visible = True
SetRowVisible(i, True)
Else
_grd.Row(i).Visible = False
'_grd.Row(i).Visible = False
SetRowVisible(i, False)
End If
Else
_grd.Row(i).Visible = True
'_grd.Row(i).Visible = True
SetRowVisible(i, True)
End If
End If
Next
@@ -1459,20 +1497,24 @@ Namespace UTSModule.Station
For i As Integer = 1 To _headNode.RowList.Count - 1
If _headNode.RowList(i).RowType = RowNode.RowTypeEnum.FixedModule Then
_grd.Row(i).Visible = True
' _grd.Row(i).Visible = True
SetRowVisible(i, True)
ElseIf _headNode.RowList(i).RowType = RowNode.RowTypeEnum.Module Then
_headNode.RowList(i).Expanded = expand
For Each node As RowNode In _headNode.RowList(i).Children
_grd.Row(node.RowListIndex).Visible = expand
'_grd.Row(node.RowListIndex).Visible = expand
SetRowVisible(node.RowListIndex, expand)
Next
Else
If expand Then
_grd.Row(i).Visible = True
'_grd.Row(i).Visible = True
SetRowVisible(i, True)
Else
If String.IsNullOrEmpty(_headNode.RowList(i).Description) Then
_grd.Row(i).Visible = expand
'_grd.Row(i).Visible = expand
SetRowVisible(i, expand)
End If
End If
End If
@@ -1569,6 +1611,11 @@ Namespace UTSModule.Station
Dim startNode As RowNode = _headNode.RowList(startMoveRow - _drawStartRow + 1)
For i As Integer = 1 To rows
node = _headNode.RowList(startMoveRow - _drawStartRow + i)
If Not node.CanDelete Then
MsgBox("当前级别节点不允许删除") '过滤非删除节点
Return
End If
If startNode.RowLever <> node.RowLever Then
MsgBox("请选择同一级别节点再尝试此操作") '非同级别节点不移动
Return
@@ -1610,6 +1657,19 @@ Namespace UTSModule.Station
UnLockGridAutoRedraw()
End Sub
Public Sub SetFocus(row As Integer, col As Integer)
If row >= _grd.Rows Then row = 0
If col >= _grd.Cols Then col = 0
_grd.Cell(row, col).SetFocus()
End Sub
Public Sub SetRowFocus(row As Integer)
If row >= _grd.Rows Then row = 0
_grd.Range(row, 0, row, _grd.Cols - 1).SelectCells()
End Sub
Public Sub NodeClear()
If _grd.ActiveCell Is Nothing OrElse _grd.Tree.SelectedNode Is Nothing Then Return
@@ -1638,6 +1698,7 @@ Namespace UTSModule.Station
Dim startNode As RowNode = _headNode.RowList(startMoveRow - _drawStartRow + 1)
Dim prevNode As RowNode = startNode.PrevNode
If prevNode Is Nothing Then Return
If Not startNode.CanMove Then Return
Dim node As RowNode
For i As Integer = 2 To moveRows
@@ -1646,6 +1707,11 @@ Namespace UTSModule.Station
MsgBox("请选择同一级别节点再尝试此操作") '非同级别节点不移动
Return
End If
If Not node.CanMove Then
MsgBox("当前选择节点不允许移动")
Return
End If
Next
@@ -1663,6 +1729,7 @@ Namespace UTSModule.Station
Dim endNode As RowNode = _headNode.RowList(startMoveRow + moveRows - _drawStartRow)
Dim nextNode As RowNode = endNode.NextNode
If nextNode Is Nothing Then Return
If Not startNode.CanMove Then Return
Dim node As RowNode
For i As Integer = 2 To moveRows
@@ -1671,6 +1738,11 @@ Namespace UTSModule.Station
MsgBox("请选择同一级别节点再尝试此操作") '非同级别节点不移动
Return
End If
If Not node.CanMove Then
MsgBox("当前选择节点不允许移动")
Return
End If
Next
Dim moveEndRow As Integer = startMoveRow + nextNode.AllChildCount + 1
@@ -1775,6 +1847,7 @@ Namespace UTSModule.Station
preNode = node
Next
_grd.Range(downNode(0).RowListIndex, 0, downNode(0).RowListIndex + downNode.Count - 1, _grd.Cols - 1).SelectCells() '设置焦点
'节点修改
StationEditStatusMonitor.StationEditStatus = StationEditStatusMonitor.StationEditStatusEnum.Changed
@@ -1808,6 +1881,8 @@ Namespace UTSModule.Station
nextNode = node
Next
_grd.Range(upNode(0).RowListIndex, 0, upNode(0).RowListIndex + upNode.Count - 1, _grd.Cols - 1).SelectCells() '设置焦点
'节点修改
StationEditStatusMonitor.StationEditStatus = StationEditStatusMonitor.StationEditStatusEnum.Changed
@@ -1844,6 +1919,11 @@ Namespace UTSModule.Station
Return
End If
If Not node.CanChangeLever Then
MsgBox("当前选择节点不允许修改级别")
Return
End If
moveEndRow -= (node.AllChildCount + 1)
Next
@@ -1906,6 +1986,11 @@ Namespace UTSModule.Station
MsgBox("请选择同一级别节点再尝试此操作") '非同级别节点不移动
Return
End If
If Not node.CanChangeLever Then
MsgBox("当前选择节点不允许修改级别")
Return
End If
Next
Dim moveRightNodeIndex As Integer = startNode.PrevNode.Children.Count
@@ -1962,7 +2047,6 @@ Namespace UTSModule.Station
Public Sub Grid_RowNodeTextChanged(sender As Object, e As RowNodeChangedEventArgs)
Dim row As Integer = e.Node.RowListIndex
Dim node As RowNode = e.Node
Dim cmd As ICommand
_uploading = True
With _grd
@@ -2015,15 +2099,6 @@ Namespace UTSModule.Station
End With
OnUserAction(e.BeforeNode)
OnUserActionEnd(e.Node)
'If CommandManager.IsRuning = False Then
' Dim dic As New Dictionary(Of Integer, TextChangedRowNode) From {
' {row, New TextChangedRowNode With {.BeforeRowNode = e.BeforeNode.Clone, .AfterRowNode = e.Node.Clone}}
' }
' CommandManager.AddUndoCommand(New GridNodeTextChangedCommand(Me, dic))
' RaiseEvent PlanGridCommandChanged(Nothing, Nothing)
'End If
StationEditStatusMonitor.StationEditStatus = StationEditStatusMonitor.StationEditStatusEnum.Changed

View File

@@ -72,7 +72,7 @@ Namespace UTSModule.Station
''' <param name="desc"></param>
''' <returns></returns>
Private Function CreateFixedRowNode(text As String, desc As String) As RowNode
Dim node As New RowNode With {.RowType = RowNode.RowTypeEnum.FixedModule, .Label = text, .Description = desc}
Dim node As New RowNode With {.RowType = RowNode.RowTypeEnum.FixedModule, .Action = True, .Label = text, .Description = desc}
node.AddNode(New RowNode()) '添加一个空的子节点
Return node
End Function
@@ -155,7 +155,7 @@ Namespace UTSModule.Station
Throw New Exception($"LoadXml Unknown LocalName:{xe.LocalName}")
End Select
Next
End Sub
''' <summary>

View File

@@ -1,279 +0,0 @@
Namespace UTSModule.Test.Command
''' <summary>
''' UTS串口通讯返回值比较函数静态类
''' </summary>
Public Class CompareFunction
#Region "String"
''' <summary>
''' 仅一个参数字符串比较,忽略大小写
''' </summary>
''' <param name="testReturn">测试命令返回集合</param>
''' <returns></returns>
Public Shared Function StringCompare(testReturn As TestCommandReturn) As Boolean
Return StringCompare(testReturn.RecordValue, testReturn.LowerLimit, testReturn.UpperLimit)
End Function
''' <summary>
''' 仅一个参数字符串是否包含关系,忽略大小写,下限则为目标字符串包含下限,上限则为上限字符串包含目标字符串
''' </summary>
''' <returns></returns>
Public Shared Function StringContain(value As String, lowerLimit As String, upperLimit As String) As Boolean
Dim result As Boolean = True
If String.IsNullOrWhiteSpace(lowerLimit) = False Then '需要比较下限
If value.Contains(lowerLimit) = False Then '不符合条件
result = False
Return result '失败则不用比较上限
End If
End If
If String.IsNullOrWhiteSpace(upperLimit) = False Then '需要比较上限
If upperLimit.Contains(value) = False Then '不符合条件
result = False
End If
End If
Return result
End Function
''' <summary>
''' 仅一个参数字符串比较,忽略大小写
''' </summary>
''' <param name="value">当前值</param>
''' <param name="lowerLimit">下限</param>
''' <param name="upperLimit">上限</param>
''' <returns></returns>
Public Shared Function StringCompare(value As String, lowerLimit As String, upperLimit As String) As Boolean
Dim result As Boolean = True
If String.IsNullOrWhiteSpace(lowerLimit) = False Then '需要比较下限
If String.Compare(value, lowerLimit, True) < 0 Then '不符合条件
result = False
Return result '失败则不用比较上限
End If
End If
If String.IsNullOrWhiteSpace(upperLimit) = False Then '需要比较上限
If String.Compare(value, upperLimit, True) > 0 Then '不符合条件
result = False
End If
End If
Return result
End Function
''' <summary>
''' 多参数字符串列表比较上下限
''' </summary>
''' <param name="param">参数列表</param>
''' <param name="lowerLimit">下限字符串,切割时按冒号切割,位数不足则默认不比较</param>
''' <param name="upperLimit">上限字符串,切割时按冒号切割,位数不足则默认不比较</param>
''' <returns></returns>
Public Shared Function ParamStringListCompare(param As List(Of String), lowerLimit As String, upperLimit As String) As Boolean
Dim lowerList As String() = lowerLimit.Split(":"c)
Dim upperList As String() = upperLimit.Split(":"c)
Dim lower As String
Dim upper As String
If param.Count() = 0 Then
If StringCompare("", lowerList(0), upperList(0)) = False Then Return False
End If
For i As Integer = 0 To param.Count - 1
If i = lowerList.Count() Then
lower = String.Empty
Else
lower = lowerList(i)
End If
If i = upperList.Count() Then
upper = String.Empty
Else
upper = upperList(i)
End If
If StringCompare(param(i), lower, upper) = False Then Return False
Next
Return True
End Function
#End Region
#Region "Double"
''' <summary>
''' 浮点型比较方式
''' </summary>
''' <param name="testReturn"></param>
''' <returns></returns>
Public Shared Function DoubleCompare(testReturn As TestCommandReturn) As Boolean
Return DoubleCompare(testReturn.RecordValue, testReturn.LowerLimit, testReturn.UpperLimit)
End Function
''' <summary>
''' 仅一个参数浮点型比较
''' </summary>
''' <param name="value">当前值</param>
''' <param name="lowerLimit">下限</param>
''' <param name="upperLimit">上限</param>
''' <returns></returns>
Public Shared Function DoubleCompare(value As String, lowerLimit As String, upperLimit As String) As Boolean
Dim result As Boolean = True
Dim compareLower As Boolean = IsNumeric(lowerLimit)
Dim compareUpper As Boolean = IsNumeric(upperLimit)
If IsNumeric(value) = False Then
If compareLower OrElse compareUpper Then result = False
Else
Dim val As Double = CDbl(value)
If compareLower Then
If val < CDbl(lowerLimit) Then
result = False
Return result '失败则不用比较上限
End If
End If
If compareUpper Then
If val > CDbl(upperLimit) Then result = False
End If
End If
Return result
End Function
''' <summary>
''' 多参数浮点型列表比较上下限
''' </summary>
''' <param name="param">参数列表</param>
''' <param name="lowerLimit">下限字符串,切割时按冒号切割,位数不足则默认不比较</param>
''' <param name="upperLimit">上限字符串,切割时按冒号切割,位数不足则默认不比较</param>
''' <returns></returns>
Public Shared Function ParamDoubleListCompare(param As List(Of String), lowerLimit As String, upperLimit As String) As Boolean
Dim lowerList As String() = lowerLimit.Split(":"c)
Dim upperList As String() = upperLimit.Split(":"c)
Dim lower As String
Dim upper As String
If param.Count = 0 Then
If DoubleCompare("", lowerList(0), upperList(0)) = False Then Return False
End If
For i As Integer = 0 To param.Count - 1
If i = lowerList.Count() Then
lower = String.Empty
Else
lower = lowerList(i)
End If
If i = upperList.Count() Then
upper = String.Empty
Else
upper = upperList(i)
End If
If DoubleCompare(param(i), lower, upper) = False Then Return False
Next
Return True
End Function
#End Region
#Region "Integer"
''' <summary>
''' 整数型比较方式
''' </summary>
''' <param name="testReturn"></param>
''' <returns></returns>
Public Shared Function IntegerCompare(testReturn As TestCommandReturn) As Boolean
Return IntegerCompare(testReturn.RecordValue, testReturn.LowerLimit, testReturn.UpperLimit)
End Function
''' <summary>
''' 仅一个参数整数比较,忽略大小写
''' </summary>
''' <param name="value">当前值</param>
''' <param name="lowerLimit">下限</param>
''' <param name="upperLimit">上限</param>
''' <returns></returns>
Public Shared Function IntegerCompare(value As String, lowerLimit As String, upperLimit As String) As Boolean
Dim result As Boolean = True
Dim compareLower As Boolean = IsNumeric(lowerLimit)
Dim compareUpper As Boolean = IsNumeric(upperLimit)
If IsNumeric(value) = False Then
If compareLower OrElse compareUpper Then result = False
Else
Dim val As Double = CInt(value)
If compareLower Then
If val < CInt(lowerLimit) Then
result = False
Return result '失败则不用比较上限
End If
End If
If compareUpper Then
If val > CInt(upperLimit) Then result = False
End If
End If
Return result
End Function
''' <summary>
''' 多参数整数型列表比较上下限
''' </summary>
''' <param name="param">参数列表</param>
''' <param name="lowerLimit">下限字符串,切割时按冒号切割,位数不足则默认不比较</param>
''' <param name="upperLimit">上限字符串,切割时按冒号切割,位数不足则默认不比较</param>
''' <returns></returns>
Public Shared Function ParamIntegerListCompare(param As List(Of String), lowerLimit As String, upperLimit As String) As Boolean
Dim lowerList As String() = lowerLimit.Split(":"c)
Dim upperList As String() = upperLimit.Split(":"c)
Dim lower As String
Dim upper As String
If param.Count = 0 Then
If IntegerCompare("", lowerList(0), upperList(0)) = False Then Return False
End If
For i As Integer = 0 To param.Count - 1
If i = lowerList.Count() Then
lower = String.Empty
Else
lower = lowerList(i)
End If
If i = upperList.Count() Then
upper = String.Empty
Else
upper = upperList(i)
End If
If IntegerCompare(param(i), lower, upper) = False Then Return False
Next
Return True
End Function
#End Region
End Class
End Namespace

View File

@@ -0,0 +1,20 @@
Imports UTS_Core.UTSModule.Test.Command
Public Class CombindRecordCommand
Inherits TestCommandExecutor
Sub New(command As TestCommand)
MyBase.New(command)
End Sub
Public Overrides Function Execute() As TestCommandReturn
'链接本地库
'获取本地库数据
'链接云端库
'获取云端库数据
'失败则写入同步表格
End Function
End Class

View File

@@ -3,10 +3,14 @@
Public Shared Function CreateExecutor(command As TestCommand) As TestCommandExecutor
Dim executor As TestCommandExecutor
Select Case command.Name
Case "Get_DB_Data"
executor = New CheckUtsPlatformExecutor(command)
Case "GetRecord"
Return New GetRecordCommand(command)
Case "SetRecord"
Return New SetRecordCommand(command)
Case "CombindRecord"
Return New CombindRecordCommand(command)
Case Else
Throw New Exception($"System集,未知命令 {command.Name}")
Throw New Exception($"Database集,未知命令 {command.Name}")
End Select
Return executor
End Function

View File

@@ -0,0 +1,25 @@
Imports UTS_Core.UTSModule.Test.Command
Public Class GetRecordCommand
Inherits TestCommandExecutor
Private _sn As String
Private dbFiledName As String
Sub New(command As TestCommand)
MyBase.New(command)
End Sub
Public Overrides Function Execute() As TestCommandReturn
'链接云端库
'获取云端库数据
'链接本地库
'获取本地库数据
End Function
End Class

View File

@@ -0,0 +1,19 @@
Imports UTS_Core.UTSModule.Test.Command
Public Class SetRecordCommand
Inherits TestCommandExecutor
Sub New(command As TestCommand)
MyBase.New(command)
End Sub
Public Overrides Function Execute() As TestCommandReturn
'链接本地库
'获取本地库数据
'链接云端库
'获取云端库数据
'失败则写入同步表格
End Function
End Class

View File

@@ -22,13 +22,14 @@ Namespace UTSModule.Test.Command.SystemCommand
Public Overrides Function Execute() As TestCommandReturn
Dim tester As UtsTester = UtsTester.CreateTester()
Dim rowNode As RowNode = tester.GetModule(_moduleName)
rowNode.IsRetry = IsRetry
If rowNode Is Nothing Then
CommandReturn.ExecuteResult = False
CommandReturn.RecordValue = String.Empty
CommandReturn.ExecuteResultTipString = $"未查询到[{_moduleName}]模块存在"
Else
rowNode.IsRetry = IsRetry
Dim moduleResult As TestCommandReturn = tester.ExecutePlan(rowNode, _localVariable)
CommandReturn.ExecuteResult = moduleResult.ExecuteResult

View File

@@ -0,0 +1,97 @@
Imports UTS_Core.Database
Imports UTS_Core.UTSModule
Imports UTS_Core.UTSModule.DbConnect
Imports UTS_Core.UTSModule.DbTableModel.Customer
Imports UTS_Core.UTSModule.Test.Command
Imports System.Linq
Public Class CombindRecordCommand
Inherits TestCommandExecutor
Private _filedNames As New List(Of String)
Private _dutSn As String
Private _dutSn2 As String
Sub New(command As TestCommand)
MyBase.New(command)
'合并逻辑将源SN指定字段的值复制到目标SN如果目标SN已经有值则进行覆盖操作
'如果合并字段名为 S1~S12则对应的Result1~Result12 也进行合并即Sx与Resultx配对进行操作
'覆盖方向源SN -》 目标SN
_dutSn = command.Parameter(0) '目标SN
_dutSn2 = command.Parameter(1) '源SN
'_filedNames.Add(command.Parameter(2)) '字段名,多个字段名之间用“:”分割,大小写不敏感,去掉前后空格
'Dim upperArr = arr.Select(Function(x) x.ToUpper()).ToArray()
' upperArr = {"A", "B", "C"}
_filedNames.AddRange(command.Parameter(2).Split(":"c).Select(Function(x) x.Trim()))
End Sub
Public Overrides Function Execute() As TestCommandReturn
CommandReturn.ExecuteResult = True
CommandReturn.RecordValue = "True"
Dim filedName As String = _filedNames(0)
Dim updateString As String = $"t1.`{filedName}` = t2.`{filedName}`"
For i As Integer = 1 To _filedNames.Count - 1
filedName = _filedNames(i)
updateString += $",t1.`{filedName}` = t2.`{filedName}` "
Next
Dim saveDbCmdText As String = String.Empty
Using db As New DbExecutor(UtsDb.RemoteDbType, UtsDb.RemoteConnString)
Dim cmdText As String = $"UPDATE `{UtsDb.RemotePrivateDb}`.`{SnListTable.TableName}` t1 JOIN `{UtsDb.RemotePrivateDb}`.`{SnListTable.TableName}` t2 On t2.`{SnListTable.ColNames.BarCode}` = '{_dutSn2}' SET {updateString} WHERE t1.`{SnListTable.ColNames.BarCode}` = '{_dutSn}';"
Try
db.Open()
db.ExecuteNonQuery(cmdText)
db.Close()
Catch ex As Exception
CommandReturn.ExecuteResult = False
CommandReturn.RecordValue = "False"
CommandReturn.ExecuteResultTipString = $"数据库更新失败,{ex.Message}"
End Try
End Using
''本地存储
'Using db As New DbExecutor(UtsDb.LocalDbType, UtsDb.LocalConnString)
' Try
' db.Open()
' Catch ex As Exception
' CommandReturn.ExecuteResult = False
' CommandReturn.RecordValue = "False"
' CommandReturn.ExecuteResultTipString = $"本地数据库连接失败,{ex.Message}"
' End Try
' Try
' Dim cmdText As String = $"UPDATE `{SnListTable.TableName}` t1 JOIN `{UtsDb.RemotePrivateDb}`.`{SnListTable.TableName}` t2 ON t2.`{SnListTable.ColNames.BarCode}` = '{_dutSn2}' SET {updateString} WHERE t1.`{SnListTable.ColNames.BarCode}` = '{_dutSn}';"
' db.ExecuteNonQuery(cmdText)
' Catch ex As Exception
' CommandReturn.ExecuteResult = False
' CommandReturn.RecordValue = "False"
' CommandReturn.ExecuteResultTipString = $"本地数据库保存失败,{ex.Message}"
' End Try
' '本地缓存
' Try
' If Not String.IsNullOrEmpty(saveDbCmdText) Then
' DbConnector.SaveCmdStringToCacheTable(db, saveDbCmdText)
' CommandReturn.ExecuteResultTipString = "本地缓存成功"
' End If
' Catch ex As Exception
' CommandReturn.ExecuteResult = False
' CommandReturn.RecordValue = "False"
' CommandReturn.ExecuteResultTipString = $"本地数据库缓存失败,{ex.Message}"
' End Try
' db.Close()
'End Using
Return CommandReturn
End Function
End Class

View File

@@ -0,0 +1,145 @@
Imports UTS_Core.Database
Imports UTS_Core.UTSModule
Imports UTS_Core.UTSModule.DbTableModel.Customer
Imports UTS_Core.UTSModule.Test.Command
Public Class GetRecordCommand
Inherits TestCommandExecutor
Private _filedName As String
Private _dutSn As String
Private _mode As String
Private _LowerLimit As String = ""
Private _UpperLimit As String = ""
Private _stringLen_LowwerLimit As String = ""
Private _stringLen_UpperLimit As String = ""
Private _Char_VerfiyMode As String = ""
Sub New(command As TestCommand)
MyBase.New(command)
_dutSn = command.Parameter(0)
_filedName = command.Parameter(1)
_mode = command.Parameter(2) 'Local:只查询本地 Remote只查询云端 Both:查询本地和云端(云端优先)
End Sub
Private Sub GetByLocal()
Using db As New DbExecutor(UtsDb.LocalDbType, UtsDb.LocalConnString)
Try
db.Open()
Catch ex As Exception
CommandReturn.ExecuteResult = False
CommandReturn.RecordValue = ""
CommandReturn.ExecuteResultTipString = $"本地数据库连接失败,{ex.Message}"
End Try
Try
' Dim condition As String = $"`{SnListTable.ColNames.ProductID}` = '{Station.ParentProject.Index}' and `{SnListTable.ColNames.BarCode}` = '{_dutSn}'"
Dim condition As String = $"`{SnListTable.ColNames.BarCode}` = '{_dutSn}'"
Dim cmdText As String = db.CmdHelper.Search(_filedName, SnListTable.TableName, condition)
CommandReturn.RecordValue = db.ExecuteScalar(cmdText).ToString()
CommandReturn.ExecuteResult = True
CommandReturn.ExecuteResultTipString = $"本地数据库查询成功"
Catch ex As Exception
CommandReturn.ExecuteResult = False
CommandReturn.RecordValue = ""
CommandReturn.ExecuteResultTipString = $"本地数据库查询失败,{ex.Message}"
End Try
db.Close()
End Using
End Sub
Private Function GetByRemote() As Boolean
Dim useLocalSearch As Boolean = False
Using db As New DbExecutor(UtsDb.RemoteDbType, UtsDb.RemoteConnString)
Dim condition As String = $"`{SnListTable.ColNames.BarCode}` = '{_dutSn}'"
Dim cmdText As String = db.CmdHelper.DbSearch(UtsDb.RemotePrivateDb, _filedName, SnListTable.TableName, condition)
Try
db.Open()
CommandReturn.RecordValue = db.ExecuteScalar(cmdText).ToString()
CommandReturn.ExecuteResult = True
db.Close()
Catch ex As Exception
useLocalSearch = True '云端查询失败,使用本地查询
End Try
End Using
Return useLocalSearch
End Function
Public Overrides Function Execute() As TestCommandReturn
Select Case _mode
Case "Local", "0"
GetByLocal()
Case "Both", "2"
If GetByRemote() = False Then GetByLocal()
Case "Remote", "1"
GetByRemote()
Case Else
GetByRemote()
End Select
'todo:数据验证
''优先查询云端
'Dim useLocalSearch As Boolean = False
'Using db As New DbExecutor(UtsDb.RemoteDbType, UtsDb.RemoteConnString)
' Dim condition As String = $"`{SnListTable.ColNames.BarCode}` = '{_dutSn}'"
' Dim cmdText As String = db.CmdHelper.DbSearch(UtsDb.RemotePrivateDb, _filedName, SnListTable.TableName, condition)
' Try
' db.Open()
' CommandReturn.RecordValue = db.ExecuteScalar(cmdText).ToString()
' CommandReturn.ExecuteResult = True
' db.Close()
' Catch ex As Exception
' useLocalSearch = True '云端查询失败,使用本地查询
' End Try
'End Using
''本地存储
'If useLocalSearch Then
' Using db As New DbExecutor(UtsDb.LocalDbType, UtsDb.LocalConnString)
' Try
' db.Open()
' Catch ex As Exception
' CommandReturn.ExecuteResult = False
' CommandReturn.RecordValue = ""
' CommandReturn.ExecuteResultTipString = $"本地数据库连接失败,{ex.Message}"
' End Try
' Try
' ' Dim condition As String = $"`{SnListTable.ColNames.ProductID}` = '{Station.ParentProject.Index}' and `{SnListTable.ColNames.BarCode}` = '{_dutSn}'"
' Dim condition As String = $"`{SnListTable.ColNames.BarCode}` = '{_dutSn}'"
' Dim cmdText As String = db.CmdHelper.Search(_filedName, SnListTable.TableName, condition)
' CommandReturn.RecordValue = db.ExecuteScalar(cmdText).ToString()
' CommandReturn.ExecuteResult = True
' CommandReturn.ExecuteResultTipString = $"本地数据库查询成功"
' Catch ex As Exception
' CommandReturn.ExecuteResult = False
' CommandReturn.RecordValue = ""
' CommandReturn.ExecuteResultTipString = $"本地数据库查询失败,{ex.Message}"
' End Try
' db.Close()
' End Using
'End If
Return CommandReturn
End Function
End Class

View File

@@ -0,0 +1,86 @@
Imports UTS_Core.Database
Imports UTS_Core.UTSModule
Imports UTS_Core.UTSModule.DbConnect
Imports UTS_Core.UTSModule.DbTableModel.Customer
Imports UTS_Core.UTSModule.Test.Command
Public Class SetRecordCommand
Inherits TestCommandExecutor
Private _filedName As String
Private _filedValue As String
Private _dutSn As String
Sub New(command As TestCommand)
MyBase.New(command)
_dutSn = command.Parameter(0)
_filedName = command.Parameter(1)
_filedValue = command.Parameter(2)
'todoSetRecord 只能对自定义字段进行写入,保护字段不执行’
End Sub
Public Overrides Function Execute() As TestCommandReturn
CommandReturn.ExecuteResult = True
CommandReturn.RecordValue = "True"
'优先储存云端
Dim saveDbCmdText As String = String.Empty
Using db As New DbExecutor(UtsDb.RemoteDbType, UtsDb.RemoteConnString)
Dim updateString As String = $"`{_filedName}` = {_filedValue}"
Dim condition As String = $"`{SnListTable.ColNames.BarCode}` = '{_dutSn}'"
Dim cmdText As String = db.CmdHelper.DbUpdate(UtsDb.RemotePrivateDb, SnListTable.TableName, updateString, condition)
Try
db.Open()
db.ExecuteNonQuery(cmdText)
db.Close()
Catch ex As Exception
saveDbCmdText = cmdText '云端存储失败,转存本地
End Try
End Using
'本地存储
Using db As New DbExecutor(UtsDb.LocalDbType, UtsDb.LocalConnString)
Try
db.Open()
Catch ex As Exception
CommandReturn.ExecuteResult = False
CommandReturn.RecordValue = "False"
CommandReturn.ExecuteResultTipString = $"本地数据库连接失败,{ex.Message}"
End Try
Try
Dim updateString As String = $"`{_filedName}` = {_filedValue}"
' Dim condition As String = $"`{SnListTable.ColNames.ProductID}` = '{Station.ParentProject.Index}' and `{SnListTable.ColNames.BarCode}` = '{_dutSn}'"
Dim condition As String = $"`{SnListTable.ColNames.BarCode}` = '{_dutSn}'"
Dim cmdText As String = db.CmdHelper.Update(SnListTable.TableName, updateString, condition)
db.ExecuteNonQuery(cmdText)
Catch ex As Exception
CommandReturn.ExecuteResult = False
CommandReturn.RecordValue = "False"
CommandReturn.ExecuteResultTipString = $"本地数据库保存失败,{ex.Message}"
End Try
'本地缓存
Try
If Not String.IsNullOrEmpty(saveDbCmdText) Then
DbConnector.SaveCmdStringToCacheTable(db, saveDbCmdText)
CommandReturn.ExecuteResultTipString = "本地缓存成功"
End If
Catch ex As Exception
CommandReturn.ExecuteResult = False
CommandReturn.RecordValue = "False"
CommandReturn.ExecuteResultTipString = $"本地数据库缓存失败,{ex.Message}"
End Try
db.Close()
End Using
Return CommandReturn
End Function
End Class

View File

@@ -21,6 +21,12 @@
executor = New GetDBDataExecutor(command)
Case "Call"
executor = New CallExecutor(command)
Case "GetRecord"
Return New GetRecordCommand(command)
Case "SetRecord"
Return New SetRecordCommand(command)
Case "CombindRecord"
Return New CombindRecordCommand(command)
Case Else
Throw New Exception($"System集,未知命令 {command.Name}")
End Select

View File

@@ -1,8 +1,8 @@
Imports UTS_Core.UTSModule.Test.Command.ComPortCommand
Imports UTS_Core.UTSModule.Test.Command.ConverterCommand
Imports UTS_Core.UTSModule.Test.Command.ProcessCommand
Imports UTS_Core.UTSModule.Test.Command.SystemCommand
Imports UTS_Core.UTSModule.Test.Command.UtsComPortCommand
Imports UTS_Core.UTSModule.Test.Command.ConverterCommand
Namespace UTSModule.Test.Command
Public Class TestCommandManger

View File

@@ -52,6 +52,7 @@ Namespace UTSModule.Test.Controls
Public Overloads Shared Function ShowDialog(tip As String, Optional title As String = "", Optional text As String = "", Optional isPwd As Boolean = False) As String
Using box As New UtsInputBox
box.TopLevel = True
box.TipText = tip
box.Title = title
box.DefaultText = text

View File

@@ -16,6 +16,7 @@ Namespace UTSModule.Test.Controls
Public Overloads Shared Function ShowDialog(text As String, Optional type As UtsMsgBoxTypeEnum = UtsMsgBoxTypeEnum.OkOnly, Optional title As String = "") As System.Windows.Forms.DialogResult
Using msg As New UtsMsgBox
msg.TopLevel = True
msg.MsgText = text
msg.MsgType = type
msg.MsgTitle = title

View File

@@ -226,6 +226,10 @@ Namespace UTSModule.Test
Next
Dim moduleNode As RowNode = GetModule(moduleName)
If moduleNode Is Nothing Then
MsgBox($"行号:{node.RowListIndex} 未找到可调用模块:{moduleName}")
Continue For
End If
SearchRecordName(moduleNode.RowNodes, True, variable)
End If
Next

View File

@@ -546,6 +546,9 @@ Namespace UTSModule.Test
If _exitTest Then Return GetExitTestReturn()
If node.Action = False Then Return GetNotActionNodeResult()
If node.RowType = RowNode.RowTypeEnum.Flow Then
If String.IsNullOrEmpty(node.CommandType) OrElse String.IsNullOrEmpty(node.Command) Then Return GetNotActionNodeResult()
End If
If TestStatus = TestStatusEnum.Testing Then _testNode = node
@@ -1025,7 +1028,7 @@ Namespace UTSModule.Test
''' 调试测试当前节点及其子节点
''' </summary>
''' <param name="obj">节点对象</param>
Public Sub TestNode(obj As Object)
Public Function TestNode(obj As Object) As TestCommandReturn
Dim node As RowNode = CType(obj, RowNode)
DebugMode = True
@@ -1071,8 +1074,8 @@ Namespace UTSModule.Test
RaiseEvent TestEnd(Me, New TestEndEventArgs(_testResult))
End Sub
Return result
End Function
''' <summary>
''' 从当前节点调试测试,直到测试完当前顶级模块

View File

@@ -10,7 +10,7 @@ Namespace UTSModule
Public Shared Sub InitConnectParams(license As License.License)
RemoteDbType = DbExecutor.DbTypeEnum.Mysql
_remoteConn.Add("Server", UtsRegistry.DbHost) '从注册表中获取
_remoteConn.Add("Server", license.MysqlServer) '从注册表中获取
_remoteConn.Add("Port", license.MysqlPort)
_remoteConn.Add("User id", license.MysqlUserID)
_remoteConn.Add("Password", license.MysqlPassword)

View File

@@ -1,4 +1,5 @@
Imports System.Threading
Imports System.Text
Imports System.Threading
Imports FluentFTP
Namespace UTSModule
@@ -76,7 +77,9 @@ Namespace UTSModule
Dim result As Boolean
Using ftpClient As FtpClient = New FtpClient(_ftpHost, _ftpPort, _ftpUser, _ftpPwd)
AddHandler ftpClient.ValidateCertificate, AddressOf OnValidateCertificate
ftpClient.EncryptionMode = FtpEncryptionMode.Auto
ftpClient.EncryptionMode = FtpEncryptionMode.None
ftpClient.DataConnectionType = FtpDataConnectionType.PASV
ftpClient.Encoding = Encoding.UTF8
ftpClient.Connect()
result = ftpClient.FileExists(path)
@@ -95,7 +98,9 @@ Namespace UTSModule
Public Sub CreateDir(remoteDir As String, Optional force As Boolean = False)
Using ftpClient As FtpClient = New FtpClient(_ftpHost, _ftpPort, _ftpUser, _ftpPwd)
AddHandler ftpClient.ValidateCertificate, AddressOf OnValidateCertificate
ftpClient.EncryptionMode = FtpEncryptionMode.Auto
ftpClient.EncryptionMode = FtpEncryptionMode.None
ftpClient.DataConnectionType = FtpDataConnectionType.PASV
ftpClient.Encoding = Encoding.UTF8
ftpClient.Connect()
ftpClient.CreateDirectory(remoteDir, force)
ftpClient.Disconnect()
@@ -110,7 +115,9 @@ Namespace UTSModule
Public Sub FtpUpload(remotePath As String, loadPath As String)
Using ftpClient As FtpClient = New FtpClient(_ftpHost, _ftpPort, _ftpUser, _ftpPwd)
AddHandler ftpClient.ValidateCertificate, AddressOf OnValidateCertificate
ftpClient.EncryptionMode = FtpEncryptionMode.Auto
ftpClient.EncryptionMode = FtpEncryptionMode.None
ftpClient.DataConnectionType = FtpDataConnectionType.PASV
ftpClient.Encoding = Encoding.UTF8
ftpClient.Connect()
ftpClient.UploadFile(loadPath, remotePath, FtpRemoteExists.Overwrite, True)
ftpClient.Disconnect()
@@ -125,7 +132,10 @@ Namespace UTSModule
Public Sub FtpDownload(remotePath As String, loadPath As String)
Using ftpClient As FtpClient = New FtpClient(_ftpHost, _ftpPort, _ftpUser, _ftpPwd)
AddHandler ftpClient.ValidateCertificate, AddressOf OnValidateCertificate
ftpClient.EncryptionMode = FtpEncryptionMode.Auto
ftpClient.EncryptionMode = FtpEncryptionMode.None
ftpClient.DataConnectionType = FtpDataConnectionType.PASV
ftpClient.Encoding = Encoding.UTF8
ftpClient.Connect()
ftpClient.DownloadFile(loadPath, remotePath)
ftpClient.Disconnect()

View File

@@ -100,8 +100,7 @@
<Reference Include="System.Configuration" />
<Reference Include="System.Configuration.Install" />
<Reference Include="System.Data" />
<Reference Include="System.Data.SQLite, Version=1.0.112.1, Culture=neutral, PublicKeyToken=db937bc2d44ff139, processorArchitecture=MSIL">
<SpecificVersion>False</SpecificVersion>
<Reference Include="System.Data.SQLite">
<HintPath>..\DLL\System.Data.SQLite.dll</HintPath>
</Reference>
<Reference Include="System.Design" />
@@ -343,6 +342,9 @@
<Compile Include="UTSModule\Test\Command\ConverterCommand\GetValueExecutor.vb" />
<Compile Include="UTSModule\Test\Command\ConverterCommand\CompareExecutor.vb" />
<Compile Include="UTSModule\Test\Command\ConverterCommand\SubStringExecutor.vb" />
<Compile Include="UTSModule\Test\Command\SystemCommand\CombindRecordCommand.vb" />
<Compile Include="UTSModule\Test\Command\SystemCommand\GetRecordCommand.vb" />
<Compile Include="UTSModule\Test\Command\SystemCommand\SetRecordCommand.vb" />
<Compile Include="UTSModule\Test\Command\ProcessCommand\ProcessCommandManager.vb" />
<Compile Include="UTSModule\Test\Command\ProcessCommand\ProcessExecuteExecutor.vb" />
<Compile Include="UTSModule\Test\Command\SystemCommand\CallExecutor.vb" />

Binary file not shown.

Binary file not shown.

Some files were not shown because too many files have changed in this diff Show More