'load data from a RDC Request
'Result = DBResult object got from a RDC request
'AutomaticWidths True > set the column widths automaticaly
Public Sub LoadRDCResult(Result As DBResult, AutomaticWidths As Boolean)
cAutomaticWidths = AutomaticWidths
NumberOfColumns = Result.Columns.Size
innerClearAll(NumberOfColumns)
Dim Headers(NumberOfColumns) As String
Dim ColumnWidths(NumberOfColumns) As Int
Dim HeaderWidths(NumberOfColumns) As Int
Dim DataWidths(NumberOfColumns) As Int
Dim col, row As Int
Dim str As String
For col = 0 To NumberOfColumns - 1
Headers(col) = Result.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 Result.Rows.Size - 1
Dim Record() As Object = Result.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 Result.Rows
Dim R(NumberOfColumns) As String
Dim FieldV As String
For col = 0 To NumberOfColumns - 1
FieldV = Record(col)
R(col) = FieldV
Next
AddRow(R)
Next
End Sub