Public Sub LoadRDCResult(Columns As Map, Rows As List, AutomaticWidths As Boolean)
cAutomaticWidths = AutomaticWidths
mNumberOfColumns = Columns.Size
innerClearAll(mNumberOfColumns)
Dim Headers(mNumberOfColumns) As String
Dim ColumnWidths(mNumberOfColumns) As Int
Dim HeaderWidths(mNumberOfColumns) As Int
Dim DataWidths(mNumberOfColumns) As Int
Dim col, row As Int
Dim str As String
For col = 0 To mNumberOfColumns - 1
Headers(col) = Columns.GetKeyAt(col)
If AutomaticWidths = False Then
ColumnWidths(col) = 130dip
HeaderWidths(col) = 130dip
DataWidths(col) = 130dip
Else
HeaderWidths(col) = cvs.MeasureStringWidth(Headers(col), Typeface.DEFAULT, cTextSize) + 8dip + cLineWidth
DataWidths(col) = 0
Dim FieldValue As Object
For row = 0 To Rows.Size - 1
Dim Record() As Object = Rows.Get(row)
FieldValue = Record(col)
If GetType(FieldValue) = "java.lang.String" Then
DataWidths(col) = Max(DataWidths(col), cvs.MeasureStringWidth(str, Typeface.DEFAULT, cTextSize) + 8dip + cLineWidth)
End If
Next
ColumnWidths(col) = Max(HeaderWidths(col), DataWidths(col))
End If
Next
SetHeader(Headers)
SetColumnsWidths(ColumnWidths)
For Each Record() As Object In Rows
Dim R(mNumberOfColumns) As String
Dim FieldV As String
For col = 0 To mNumberOfColumns - 1
FieldV = Record(col)
R(col) = FieldV
Next
AddRow(R)
Next