Grid_DoCheckCellMoveInでスキップ条件を満たすか判定し、条件を満たす場合はセル行とセル列に移動先を設定する。
そうすれば、Grid_DoCheckCellMoveOutで設定したセル行とセル列に移動してくれる…はず。
■例 フジクラ様 プロジェクト発注処理(A50050_00 EntryForm.vb)■
Private Function Grid_DoCheckCellMoveIn_数量() As Boolean
Dim colIndex As Integer = detail.GetColumnIndex(退避情報型.明細項目型.数量.ToString)
If _myコントロール情報.数量・単価入力区分 = プロジェクト入力処理定義型.数量・単価入力区分型.行わない Then
GoTo Grid_DoCheckCellMoveIn_数量_Err
End If
If Is要素コード以降入力可否() = False Then
GoTo Grid_DoCheckCellMoveIn_数量_Err
End If
'作業工程コードがタイトル用工種コードの場合
If CStr(_退避情報.明細部項目(_toCell.RowIndex, 退避情報型.明細項目型.作業工程コード)) = CStr(_退避情報.フジクラコントロール項目("ZAICA01045")).TrimEnd Then
GoTo Grid_DoCheckCellMoveIn_数量_Err
End If
Return True
Grid_DoCheckCellMoveIn_数量_Err:
If Isグリッド内他行移動(_toCell, _toCell) = True Then
Return False
End If
If Isグリッド内移動方向(_fromCell, _toCell) = CheckMethodArgs.移動方向型.後へ Then
'作業工程コードがタイトル用工種コードの場合
If CStr(_退避情報.明細部項目(_toCell.RowIndex, 退避情報型.明細項目型.作業工程コード)) = CStr(_退避情報.フジクラコントロール項目("ZAICA01045")).TrimEnd Then
SetNextCellFocus次行項目()
Else
_toCell.colIndex = detail.GetColumnIndex(退避情報型.明細項目型.金額.ToString)
_fromCell.colIndex = colIndex
End If
Else
_toCell.colIndex = detail.GetColumnIndex(退避情報型.明細項目型.作業工程コード.ToString)
_fromCell.colIndex = colIndex
End If
Return False
End Function
''' <summary>
''' 次行先頭項目へカーソルを移動する(
''' </summary>
''' <remarks>「Grid_DoCheckCellMoveIn~」メソッドからの使用を想定</remarks>
Private Sub SetNextCellFocus次行項目()
If _toCell.RowIndex + 1 < _limitMaxRow Then
'次行先頭セルへ
_toCell.RowIndex += 1
_toCell.colIndex = detail.GetColumnIndex(GetDetailTopColumnName())
Else
'フッター部へ
_zeroEnd = True
End If
'現在行から抜ける為、行チェックを行う
If Grid_DoCheckLineMoveOut() = False Then
_zeroEnd = False
_toCell.RowIndex = _changeCell.RowIndex
_toCell.colIndex = _changeCell.colIndex
Exit Sub
End If
End Sub
コメント
最新を表示する
NG表示方式
NGID一覧