Hi team
I have created this method with field variables declared and initialized
I have created this method with field variables declared and initialized
Code:
METHOD PROTECTED DataTable ProTTDataTable(queryHandle as HANDLE, fieldNames as CHARACTER):
DEFINE VARIABLE listRecord AS System.Array NO-UNDO.
DEFINE VARIABLE fieldHandle AS HANDLE NO-UNDO EXTENT.
DEFINE VARIABLE fieldName AS HANDLE NO-UNDO.
DEFINE VARIABLE bufferHandle AS HANDLE NO-UNDO.
DEFINE VARIABLE i AS INTEGER NO-UNDO.
DEFINE VARIABLE numFields AS INTEGER NO-UNDO.
DEFINE VARIABLE dataColumn AS DataColumn NO-UNDO.
DEFINE VARIABLE dataTable AS DataTable NO-UNDO.
assign(incompatible data type expression)
bufferHandle = queryHandle:GET-BUFFER-HANDLE (1)
dataTable = NEW DataTable(bufferHandle:NAME)
numFields = (IF fieldName <> " " THEN NUM-ENTRIES (fieldName)ELSE bufferHandle:numFields)
EXTENT(fieldHandle) = numFields
listRecord = System.Array:CreateInstance(Progress.Util.TypeHelper:GetType("System.Object"), numFields).
// condition for checking all entries in the table.
do i = 1 to extent( fieldHandle ):
assign
fieldHandle[i] = ( if fieldnames <> "" then bufferHandle:buffer-field( entry( i, fieldNames )) else bufferHandle:buffer-field( i ))
dataColumn = dataTable:Columns:Add( fieldHandle[i]:Name, DotNetType( fieldHandle[i]:Data-type ))
dataColumn:Caption = fieldHandle[i]:label.
END.
queryHandle:REPOSITION-TO-ROW (1).
DO WHILE queryHandle:GET-NEXT:
DO i = 1 to EXTENT(fieldHandle):
listRecord:SetValue(fieldHandle[i]:BUFFER-VALUE, i - 1).
END.
dataTable:Rows:Add(listRecord).
END.
RETURN dataTable.
END METHOD.