For added flexibility, it's good to add these two features (The creator Erel):
Like:
AddUniqeRow(NewRow() As Object,UniqColIndx As Object) As Boolean
InsertUniqeRow(NewRow() As Object,UniqColIndx As Object, RowIndx as int) As Boolean
if Success return True
I wrote down the routines AddUniqeRow/Insert UniqeRow routine and tested it.
Like:
AddUniqeRow(NewRow() As Object,UniqColIndx As Object) As Boolean
InsertUniqeRow(NewRow() As Object,UniqColIndx As Object, RowIndx as int) As Boolean
if Success return True
I wrote down the routines AddUniqeRow/Insert UniqeRow routine and tested it.
b4A Routines:
Sub AddUniqeRow(table1 As ListOfArrays,NewRow_Array() As Object,UniqColIndx As Object) As Boolean
Return AddInsUniqeRow(table1,NewRow_Array,UniqColIndx, -1)
End Sub
Sub InsertUniqeRow(table1 As ListOfArrays,NewRow_Array() As Object,UniqColIndx As Object, InsertRowIndx As Int) As Boolean
Return AddInsUniqeRow(table1,NewRow_Array,UniqColIndx, InsertRowIndx)
End Sub
Sub AddInsUniqeRow(table1 As ListOfArrays,NewRow_Array() As Object,UniqColIndx As Object, InsertRowIndx As Object) As Boolean
If IsNumber(InsertRowIndx) Then
If InsertRowIndx > table1.Size Then InsertRowIndx=-1
Else
InsertRowIndx=-1
End If
Dim ColValue As Object =-1
If UniqColIndx Is String And table1.Header.Length>0 Then
For i=0 To table1.Header.As(List).Size-1
If table1.Header(i).As(String).ToUpperCase=UniqColIndx.As(String).ToUpperCase Then
UniqColIndx=i
Exit
End If
Next
Else If IsNumber(UniqColIndx)=False Then
Log("ColIndx is Wrong")
Return False
End If
ColValue=NewRow_Array(UniqColIndx)
If table1.GetRowsByValue(UniqColIndx,ColValue).Size=0 Then
If InsertRowIndx>=0 Then
table1.InsertRow(InsertRowIndx,NewRow_Array)
Else
table1.AddRow(NewRow_Array)
End If
Return True
Else
Dim res As String'="[" & IIf(table1.Header.Length>0, table1.Header(UniqColIndx),"ColNo (" &UniqColIndx) & ") = " & ColValue & "] is Found"
If table1.Header.Length>0 Then
res = table1.Header(UniqColIndx)
Else
res="ColNo (" & UniqColIndx & ")"
End If
res= res & "[" & ColValue & "] is Found" & Chr(13)& Chr(10) & "Row Was Not " & IIf (InsertRowIndx>=0,"Inserted! at Index " & InsertRowIndx,"Added!")
Log(res)
ToastMessageShow(res,True)
Return False
End If
End Sub