批量粘贴与批量撤销功能上线

This commit is contained in:
2025-05-15 11:12:31 +08:00
parent 88c4699a48
commit 841c866cd8
7 changed files with 401 additions and 219 deletions

View File

@@ -140,15 +140,20 @@ Namespace UTSModule.Station
#Region "表格事件处理"
Private _isUpload As Boolean
Private _beforeNode As RowNode
Private Sub Grid_CellChange(sender As Object, e As CellChangeEventArgs)
If ActiveRowNode Is Nothing Then Return
If _cellChanged = GridCellChangedEnum.None Then _cellChanged = GridCellChangedEnum.RowNodeInfo
If _cellChanged <> GridCellChangedEnum.RowNodeInfo Then Return
If Not _isUpload Then _beforeNode = ActiveRowNode.Clone
_isUpload = True
If e.Col = ColNames.ColValue Then
Dim value As String = _grd.Cell(e.Row, e.Col).Text
Dim changeType As RowNodeChangedEventArgs.RowNodeChangeType
changeType = RowNodeChangedEventArgs.RowNodeChangeType.None
Dim changeType As RowNodeChangedEventArgs.RowNodeChangeType = RowNodeChangedEventArgs.RowNodeChangeType.None
Select Case e.Row
Case RowNames.Action
ActiveRowNode.Action = _grd.Cell(e.Row, e.Col).BooleanValue
@@ -157,8 +162,55 @@ Namespace UTSModule.Station
ActiveRowNode.Label = value
changeType = RowNodeChangedEventArgs.RowNodeChangeType.Label
Case RowNames.CommandType
Dim cmdType As String = _grd.Cell(RowNames.CommandType, ColNames.ColValue).Text
If String.Compare(ActiveRowNode.CommandType, cmdType) <> 0 Then
ActiveRowNode.CommandType = cmdType
ActiveRowNode.Command = ""
ActiveRowNode.Parameters.Clear()
ActiveRowNode.Action = Not String.IsNullOrWhiteSpace(ActiveRowNode.Command)
CommandTypeChanged(ActiveRowNode)
End If
ActiveRowNode.CommandType = value
changeType = RowNodeChangedEventArgs.RowNodeChangeType.CommandType
Case RowNames.ControlType
ActiveRowNode.ControlType = _grd.Cell(RowNames.ControlType, ColNames.ColValue).Text
Case RowNames.Command
Dim cmdName As String = _grd.Cell(RowNames.Command, ColNames.ColValue).Text
If String.Compare(ActiveRowNode.Command, cmdName) <> 0 Then
ActiveRowNode.Command = cmdName
ActiveRowNode.Parameters.Clear()
ActiveRowNode.Action = Not String.IsNullOrWhiteSpace(ActiveRowNode.Command)
'拷贝所有参数到当前节点信息中
Dim planCommand As TestCmd = _testCmdManager.GetCommand(ActiveRowNode.CommandType, ActiveRowNode.Command)
If planCommand Is Nothing Then Return
For Each cmdParam As TestCmdParam In planCommand.Params
ActiveRowNode.Parameters.Add(cmdParam.Clone())
Next
'更新行节点信息表格内容
CommandChanged(ActiveRowNode)
End If
ActiveRowNode.Command = value
changeType = RowNodeChangedEventArgs.RowNodeChangeType.Command
Case RowNames.ErrorCode
Dim codeMsg As String = _grd.Cell(RowNames.ErrorCode, ColNames.ColValue).Text
Dim errCode As String = ErrCodeManager.CodeMsgToCode(codeMsg)
If String.Compare(ActiveRowNode.ErrorCode, errCode) <> 0 Then
ActiveRowNode.ErrorCode = errCode
ActiveRowNode.ErrorMessage = _errCodeManager(ActiveRowNode.ErrorCode).Msg
_grd.Cell(RowNames.ErrorCode, ColNames.ColValue).Text = errCode
_grd.Cell(RowNames.ErrorCode, ColNames.ColValue).BackColor = _errCodeManager(ActiveRowNode.ErrorCode).Color
_grd.Cell(RowNames.ErrorMessage, ColNames.ColValue).BackColor = _grd.Cell(RowNames.ErrorCode, ColNames.ColValue).BackColor
ErrCodeChanged(ActiveRowNode)
End If
ActiveRowNode.ErrorCode = value
changeType = RowNodeChangedEventArgs.RowNodeChangeType.ErrorCode
Case RowNames.ErrorMessage
ActiveRowNode.ErrorMessage = value
changeType = RowNodeChangedEventArgs.RowNodeChangeType.ErrorMessage
Case RowNames.RowType
ActiveRowNode.RowType = CType([Enum].Parse(GetType(RowNode.RowTypeEnum), value), RowNode.RowTypeEnum)
changeType = RowNodeChangedEventArgs.RowNodeChangeType.RowType
@@ -177,18 +229,7 @@ Namespace UTSModule.Station
Case RowNames.RetryInterval
ActiveRowNode.RetryInterval = CInt(value)
changeType = RowNodeChangedEventArgs.RowNodeChangeType.RetryInterval
Case RowNames.ErrorCode
ActiveRowNode.ErrorCode = value
changeType = RowNodeChangedEventArgs.RowNodeChangeType.ErrorCode
Case RowNames.ErrorMessage
ActiveRowNode.ErrorMessage = value
changeType = RowNodeChangedEventArgs.RowNodeChangeType.ErrorMessage
Case RowNames.CommandType
ActiveRowNode.CommandType = value
changeType = RowNodeChangedEventArgs.RowNodeChangeType.CommandType
Case RowNames.Command
ActiveRowNode.Command = value
changeType = RowNodeChangedEventArgs.RowNodeChangeType.Command
Case >= RowNames.Parameters
If e.Row - RowNames.Parameters > ActiveRowNode.Parameters.Count - 1 Then Return
ActiveRowNode.Parameters(e.Row - RowNames.Parameters).Value = value
@@ -197,13 +238,16 @@ Namespace UTSModule.Station
If changeType = RowNodeChangedEventArgs.RowNodeChangeType.None Then Return
Dim args As New RowNodeChangedEventArgs With {
.Node = ActiveRowNode,
.ChangeType = changeType
}
RaiseEvent RowNodeTextChanged(sender, args)
If _beforeNode IsNot Nothing Then
Dim args As New RowNodeChangedEventArgs With {
.Node = ActiveRowNode,
.BeforeNode = _beforeNode,
.ChangeType = changeType
}
RaiseEvent RowNodeTextChanged(sender, args)
End If
End If
_isUpload = False
_cellChanged = GridCellChangedEnum.None
End Sub
@@ -218,6 +262,9 @@ Namespace UTSModule.Station
_grd.Cell(row, ColNames.ColName).Text = node.Parameters(idx).Desc
_grd.Cell(row, ColNames.ColValue).Text = node.Parameters(idx).Value
Next
_grd.Range(RowNames.LineNumber, ColNames.ColName, _grd.Rows - 1, ColNames.ColName).BackColor = Color.LightGray
_grd.Range(RowNames.LineNumber, ColNames.ColName, _grd.Rows - 1, ColNames.ColName).Alignment = AlignmentEnum.RightCenter
End Sub
@@ -227,6 +274,9 @@ Namespace UTSModule.Station
_grd.Cell(RowNames.Command, ColNames.ColValue).Text = node.Command
_grd.Cell(RowNames.Parameters, ColNames.ColName).Text = RowNames.Parameters.ToString()
_grd.Cell(RowNames.Parameters, ColNames.ColValue).Text = ""
_grd.Range(RowNames.LineNumber, ColNames.ColName, _grd.Rows - 1, ColNames.ColName).BackColor = Color.LightGray
_grd.Range(RowNames.LineNumber, ColNames.ColName, _grd.Rows - 1, ColNames.ColName).Alignment = AlignmentEnum.RightCenter
End Sub
Private Sub ErrCodeChanged(node As RowNode)
@@ -239,47 +289,62 @@ Namespace UTSModule.Station
''' <param name="sender"></param>
''' <param name="e"></param>
Private Sub Grid_ComboClick(sender As Object, e As ComboClickEventArgs)
If ActiveRowNode Is Nothing Then Return
Select Case _grdSingleRowDropRow
Case RowNames.ControlType
ActiveRowNode.ControlType = _grd.Cell(RowNames.ControlType, ColNames.ColValue).Text
Case RowNames.CommandType
'如果命令类型变化则,清空命令
Dim cmdType As String = _grd.Cell(RowNames.CommandType, ColNames.ColValue).Text
If String.Compare(ActiveRowNode.CommandType, cmdType) <> 0 Then
ActiveRowNode.CommandType = cmdType
ActiveRowNode.Command = ""
ActiveRowNode.Parameters.Clear()
CommandTypeChanged(ActiveRowNode)
End If
Case RowNames.Command
Dim cmdName As String = _grd.Cell(RowNames.Command, ColNames.ColValue).Text
If String.Compare(ActiveRowNode.Command, cmdName) <> 0 Then
ActiveRowNode.Command = cmdName
ActiveRowNode.Parameters.Clear()
'If ActiveRowNode Is Nothing Then Return
'Dim changeType As RowNodeChangedEventArgs.RowNodeChangeType = RowNodeChangedEventArgs.RowNodeChangeType.None
'Dim beforeNode As RowNode = ActiveRowNode.Clone
'Select Case _grdSingleRowDropRow
' Case RowNames.ControlType
' ActiveRowNode.ControlType = _grd.Cell(RowNames.ControlType, ColNames.ColValue).Text
' changeType = RowNodeChangedEventArgs.RowNodeChangeType.ControlType
' Case RowNames.CommandType
' '如果命令类型变化则,清空命令
' Dim cmdType As String = _grd.Cell(RowNames.CommandType, ColNames.ColValue).Text
' If String.Compare(ActiveRowNode.CommandType, cmdType) <> 0 Then
' ActiveRowNode.CommandType = cmdType
' ActiveRowNode.Command = ""
' ActiveRowNode.Parameters.Clear()
' CommandTypeChanged(ActiveRowNode)
' changeType = RowNodeChangedEventArgs.RowNodeChangeType.CommandType
' End If
' Case RowNames.Command
' Dim cmdName As String = _grd.Cell(RowNames.Command, ColNames.ColValue).Text
' If String.Compare(ActiveRowNode.Command, cmdName) <> 0 Then
' ActiveRowNode.Command = cmdName
' ActiveRowNode.Parameters.Clear()
'拷贝所有参数到当前节点信息中
Dim planCommand As TestCmd = _testCmdManager.GetCommand(ActiveRowNode.CommandType, ActiveRowNode.Command)
If planCommand Is Nothing Then Return
For Each cmdParam As TestCmdParam In planCommand.Params
ActiveRowNode.Parameters.Add(cmdParam.Clone())
Next
' '拷贝所有参数到当前节点信息中
' Dim planCommand As TestCmd = _testCmdManager.GetCommand(ActiveRowNode.CommandType, ActiveRowNode.Command)
' If planCommand Is Nothing Then Return
' For Each cmdParam As TestCmdParam In planCommand.Params
' ActiveRowNode.Parameters.Add(cmdParam.Clone())
' Next
'更新行节点信息表格内容
CommandChanged(ActiveRowNode)
End If
Case RowNames.ErrorCode
Dim codeMsg As String = _grd.Cell(RowNames.ErrorCode, ColNames.ColValue).Text
Dim errCode As String = ErrCodeManager.CodeMsgToCode(codeMsg)
If String.Compare(ActiveRowNode.ErrorCode, errCode) <> 0 Then
ActiveRowNode.ErrorCode = errCode
ActiveRowNode.ErrorMessage = _errCodeManager(ActiveRowNode.ErrorCode).Msg
_grd.Cell(RowNames.ErrorCode, ColNames.ColValue).Text = errCode
_grd.Cell(RowNames.ErrorCode, ColNames.ColValue).BackColor = _errCodeManager(ActiveRowNode.ErrorCode).Color
_grd.Cell(RowNames.ErrorMessage, ColNames.ColValue).BackColor = _grd.Cell(RowNames.ErrorCode, ColNames.ColValue).BackColor
ErrCodeChanged(ActiveRowNode)
End If
End Select
' '更新行节点信息表格内容
' CommandChanged(ActiveRowNode)
' changeType = RowNodeChangedEventArgs.RowNodeChangeType.Command
' End If
' Case RowNames.ErrorCode
' Dim codeMsg As String = _grd.Cell(RowNames.ErrorCode, ColNames.ColValue).Text
' Dim errCode As String = ErrCodeManager.CodeMsgToCode(codeMsg)
' If String.Compare(ActiveRowNode.ErrorCode, errCode) <> 0 Then
' ActiveRowNode.ErrorCode = errCode
' ActiveRowNode.ErrorMessage = _errCodeManager(ActiveRowNode.ErrorCode).Msg
' _grd.Cell(RowNames.ErrorCode, ColNames.ColValue).Text = errCode
' _grd.Cell(RowNames.ErrorCode, ColNames.ColValue).BackColor = _errCodeManager(ActiveRowNode.ErrorCode).Color
' _grd.Cell(RowNames.ErrorMessage, ColNames.ColValue).BackColor = _grd.Cell(RowNames.ErrorCode, ColNames.ColValue).BackColor
' ErrCodeChanged(ActiveRowNode)
' changeType = RowNodeChangedEventArgs.RowNodeChangeType.ErrorCode
' End If
'End Select
'If changeType = RowNodeChangedEventArgs.RowNodeChangeType.None Then Return
'Dim args As New RowNodeChangedEventArgs With {
' .Node = ActiveRowNode,
' .BeforeNode = beforeNode,
' .ChangeType = changeType
'}
'RaiseEvent RowNodeTextChanged(sender, args)
End Sub
''' <summary>
@@ -316,9 +381,9 @@ Namespace UTSModule.Station
_grd.ComboBox(0).Items.Add(RowNode.RowTypeEnum.Control)
_grd.ComboBox(0).Items.Add(RowNode.RowTypeEnum.Flow)
_grd.ComboBox(0).Items.Add(RowNode.RowTypeEnum.Module)
Case RowNames.Parameters'特殊处理Call命令
_grd.ComboBox(0).Items.Clear()
_grd.ComboBox(0).Items.Addrange(UTS_Core.UTSModule.Test.UtsTester.CreateTester.GetCustomModuleName())
Case RowNames.Parameters '特殊处理Call命令
_grd.ComboBox(0).Items.Clear()
_grd.ComboBox(0).Items.AddRange(UTS_Core.UTSModule.Test.UtsTester.CreateTester.GetCustomModuleName())
End Select
End Sub
@@ -446,7 +511,7 @@ Namespace UTSModule.Station
Else
.Rows = RowNames.Parameters + 1
.Cell(RowNames.Parameters, ColNames.ColName).Text = RowNames.Parameters.ToString()
.Cell(RowNames.Parameters, col).CellType = CellTypeEnum.TextBox
.Cell(RowNames.Parameters, col).Text = ""