-
Notifications
You must be signed in to change notification settings - Fork 43
datacursor
Yeray edited this page Jun 28, 2017
·
4 revisions
Any TDataItem
can be sorted and filtered without altering its data arrays. TDataCursor
creates a "view" of a data table or column. A "view" is essentially an index (an array of row integer positions).
TBIDataSet
component includes a TDataCursor property to perform these operations, which in turn are used in TBIGrid
and TBIChart
.
A TDataCursor
can also be used when exporting data (to JSON, XML, CSV, Excel, TDataSet, HTML, etc).
The TDataCursor
"Loop" method sorts and filters data and traverses the resulting view, calling a user-defined procedure:
uses BI.DataSource, BI.Arrays;
var MyCursor : TDataCursor;
MyCursor:= TDataCursor.Create;
MyCursor.Data:= Orders;
// .... we can set here the SortBy, Filter, etc properties...
MyCursor.Loop( procedure( const AIndex: TInteger)
begin
WriteLn( Orders['ProductID'].DataToString( AIndex ) );
end);
This is equivalent to calculating the cursor "Index" and doing a "for" loop on the index:
var t : Integer;
MyCursor.PrepareIndex;
for t:=0 to High(MyCursor.Index) do
WriteLn( Orders['ProductID'].DataToString( MyCursor.Index[t] ) );