TTMSFNCFilterBuilder.ValidateFilterRow Method
Validates a single input row against the current filter.
API unit family: TMS.TMSFNCFilterBuilder
Declaring type: TTMSFNCFilterBuilder
Inherited from: TTMSFNCCustomFilterBuilder
Syntax
function ValidateFilterRow(AInputData: TArray<TTMSFNCValue>): Boolean;
bool __fastcall ValidateFilterRow(System::DynamicArray<System::Rtti::TValue> AInputData);
Parameters
| Name | Description |
|---|---|
AInputData |
Array of values ordered to match the data columns. |
Returns
True when the row satisfies the filter.
Usage examples
Build and apply a typed filter
Combines batched column setup, expression parsing, and row validation.
uses
System.SysUtils,
TMS.TMSFNCFilterBuilder,
TMS.TMSFNCValue;
var
LRow: TArray<TTMSFNCValue>;
begin
TMSFNCFilterBuilder.BeginUpdate;
try
TMSFNCFilterBuilder.ClearFilter;
TMSFNCFilterBuilder.DataColumns.Clear;
TMSFNCFilterBuilder.AddDataColumn('Status', fdtText);
TMSFNCFilterBuilder.AddDataColumn('Progress', fdtNumber);
if not TMSFNCFilterBuilder.ParseExpression(
'[Status] LIKE ' + QuotedStr('Abroad') + ' AND [Progress] > 50') then
raise Exception.Create('Invalid filter expression');
finally
TMSFNCFilterBuilder.EndUpdate;
end;
LRow := ['Abroad', 75];
if TMSFNCFilterBuilder.ValidateFilterRow(LRow) then
ShowMessage('The row matches the filter');
end;
TMSFNCFilterBuilder()->BeginUpdate();
try
{
TMSFNCFilterBuilder()->ClearFilter();
TMSFNCFilterBuilder()->DataColumns->Clear();
TMSFNCFilterBuilder()->AddDataColumn("Status", TTMSFNCFilterBuilderDataType::fdtText);
TMSFNCFilterBuilder()->AddDataColumn("Progress", TTMSFNCFilterBuilderDataType::fdtNumber);
if (!TMSFNCFilterBuilder()->ParseExpression(
"[Status] LIKE " + QuotedStr("Abroad") + " AND [Progress] > 50"))
throw Exception("Invalid filter expression");
}
__finally
{
TMSFNCFilterBuilder()->EndUpdate();
}
DynamicArray<TValue> LRow;
LRow.Length = 2;
LRow[0] = TValue::From<String>("Abroad");
LRow[1] = TValue::From<int>(75);
if (TMSFNCFilterBuilder()->ValidateFilterRow(LRow))
ShowMessage("The row matches the filter");