' Class variable
Public dsMch As New DataSet
Private Sub ChangeValue(ByVal blnUp As Boolean)
Dim aRow As DataRow
Dim dv As DataView
Dim iMax As Integer
Dim i As Integer
Dim aShow() As Boolean
Dim blnCurrentDisplay As Boolean
dv = New DataView(Me.dsMch.Tables(0))
dv.AllowEdit = True
dv.AllowDelete = False
dv.AllowNew = False
dv.RowFilter = "Display = True OR Source = 'Schedule'"
dv.Sort = "ActualDisplayOrder ASC"
ReDim aShow(dv.Count - 1)
If blnUp Then
' Increment ActualDispalyOrder
' Set all DisplayOrders to 999
For i = 0 To dv.Count - 1
'dv(i).BeginEdit()
dv(i)("DisplayOrder") = 999
Console.WriteLine(dv(i)("Machine") & ": " & dv(i)("Display"))
'**** Incorrect values when called more than once *****
aShow(i) = dv(i)("Display")
If i = dv.Count - 1 Then
' Set last value to zero
dv(i)("ActualDisplayOrder") = 0
Else
' Increment Actual display
dv(i)("ActualDisplayOrder") = i + 1
End If
'dv(i).EndEdit()
Next
Else
End If
' Sort by ActualDisplayOrder & set flag to show as
' per array
'dv.Sort = vbNullString
dv.Sort = "ActualDisplayOrder ASC"
For i = 0 To dv.Count - 1
dv(i).BeginEdit()
dv(i)("Display") = aShow(i)
dv(i).EndEdit()
Next
' Update display order used to show machines
dv.RowFilter = vbNullString
dv.RowFilter = "Display = True AND Source = 'Schedule'"
dv.Sort = "ActualDisplayOrder ASC"
For i = 0 To dv.Count - 1
dv(i).BeginEdit()
dv(i)("DisplayOrder") = i
dv(i).EndEdit()
Next
End Sub