API Reference🔗
Complete reference for the TInteractiveFilterClass and related components based on the actual implementation.
🔧 TInteractiveFilterClass🔗
The main class implementing interactive filtering functionality.
🚀 Core Methods🔗
🏗️ Lifecycle Methods🔗
CONSTRUCT() ! Constructor
DESTRUCT() ! Destructor
Kill() ! Cleanup method
InitComponents() ! Initialize components (virtual)
InitPopup() ! Initialize popup menus
InitComponents Implementation:
TIF2.InitComponents PROCEDURE
ReturnValue BYTE,AUTO
CODE
ReturnValue = PARENT.InitComponents()
SELF.myWindow &= QuickWindow ! Window reference
SELF.CollectionName = 'BrowseName' ! Filter collection identifier
SELF.BrowseControl = ?Browse:1 ! Browse control reference
SELF.BrowseView &= BrowseView ! View reference
SELF.BrowseQueueRef &= BrowseQueue ! Queue reference
RETURN ReturnValue
📊 Field Management🔗
UpdateQuery(BYTE CaseSensitivity) ! Auto-populate from browse
AddItem(STRING pFieldName, STRING pTitle, <STRING pPicture>, BYTE pCaseSensitivity)
AddItemOverride(STRING pFieldName, STRING pTitleOverride, BYTE pSkipAlways=0)
Usage Examples:
! Auto-populate all browse fields
TIF2.UpdateQuery(0) ! 0=insensitive, 1=sensitive, 2=auto
! Add individual fields
TIF2.AddItem('CUS:Company','Company Name','@s20',e_tint_CaseInsensitive)
TIF2.AddItem('CUS:State','State','@s2',e_tint_CaseSensitive)
! Override or skip fields (call before UpdateQuery)
TIF2.AddItemOverride('CUS:CustNumber','',TRUE) ! Skip field
TIF2.AddItemOverride('CUS:Company','Company Name',FALSE) ! Override title
🎯 Filter Operations🔗
⚡ Quick Filtering🔗
FilterBySelection() ! Filter equals current value
FilterExcludingSelection() ! Filter not equals current value
FilterOnOperator(LONG pOperator) ! Filter with specific operator
FilterFor() ! Show advanced filter dialog
Operator Constants:
! String operators
e_tint_Equals EQUATE(1) ! Exact match
e_tint_NotEquals EQUATE(2) ! Not equal
e_tint_BeginsWith EQUATE(11) ! Starts with
e_tint_EndsWith EQUATE(13) ! Ends with
e_tint_Contains EQUATE(15) ! Contains text
e_tint_NotContains EQUATE(16) ! Does not contain
e_tint_Soundex EQUATE(19) ! Soundex match
! Numeric operators
e_tint_LessOrEqualThan EQUATE(3) ! Less than or equal
e_tint_LessThan EQUATE(4) ! Less than
e_tint_LargerThan EQUATE(5) ! Greater than
e_tint_LargerOrEqualThan EQUATE(6) ! Greater than or equal
e_tint_Between EQUATE(7) ! Between values
e_tint_NotBetween EQUATE(8) ! Not between values
! Date operators
e_tint_CurrentMonth EQUATE(31) ! Current month (any year)
e_tint_CurrentDay EQUATE(32) ! Current day (any year)
e_tint_CurrentYear EQUATE(33) ! Current year
e_tint_CurrentWeek EQUATE(34) ! Current week (any year)
e_tint_CurrentWeekDay EQUATE(35) ! Current weekday (any year)
e_tint_CurrentQuarter EQUATE(36) ! Current quarter (any year)
! Time operators
e_tint_CurrentHour EQUATE(91) ! Current hour
e_tint_CurrentMinute EQUATE(92) ! Current minute
e_tint_AM EQUATE(93) ! Morning (12:00 AM - 12:00 PM)
e_tint_PM EQUATE(94) ! Afternoon (12:01 PM - 11:59 PM)
🔧 Filter Management🔗
FilterRemove() ! Remove all filters
FilterRemoveLast() ! Remove last filter component
GetFilter() ! Get complete filter string
ApplyFilter() ! Apply current filter
DisableFilter() ! Temporarily disable filter
isFilterAvailable() ! Check if filters exist
📋 Advanced Filter Management🔗
AppendFilterEntry(*CSTRING pQueryEntry, *CSTRING pFieldName, LONG pOperator,
*CSTRING pConditionLow, <*CSTRING pConditionHigh>,
*CSTRING pPicture, BYTE pCaseSensitivity, STRING pJoinOp,
BYTE pNewGroup, STRING pNewGroupJoinOp)
ClearFilter() ! Clear all filter entries
ClearLastFilterEntry() ! Clear last filter entry
SetCurrentInfo(STRING pField, LONG pQueueFieldNo) ! Set current field context
🔄 Browse Integration🔗
BrowseSetFilter(STRING Filter, STRING Id) ! Set browse filter (virtual)
BrowseResetSort(BYTE Force) ! Reset browse sort (virtual)
TakeNewSelection() ! Handle selection change (virtual)
🎨 UI Utilities🔗
ReplaceMacro(*CSTRING pMacro, <*CSTRING pBlankMacro>) ! Replace text macros
FreeFormQuery() ! Free-form query dialog
⚙️ Properties🔗
🎨 Core Configuration🔗
myWindow &WINDOW ! Window reference
CollectionName STRING ! Filter collection name
BrowseControl UNSIGNED ! Browse control FEQ
BrowseView &VIEW ! Browse view reference
BrowseQueueRef &QUEUE ! Browse queue reference
🔧 Behavior Settings🔗
AllowFreeFormQuery BYTE ! Enable free-form queries
AllowQueryPersistance BYTE ! Enable save/load filters
CaseSensitivity BYTE ! Case handling mode
OperatorInterface BYTE ! 0=buttons, 1=list interface
📊 State Properties🔗
isInteractiveFilterOn BYTE ! Filter active status
CurrentSortOrder BYTE ! Current sort order
CurrentType BYTE ! Current field type
isCurrentDataBlank BYTE ! Current data is blank
FromButton BYTE ! Event from button
ExtraPopupItemsAdded BYTE ! Dynamic items state
🎛️ Control References🔗
InteractiveFilterToggleControl UNSIGNED ! Toggle control FEQ
InteractiveFilterResultFEQ UNSIGNED ! Result display control
📋 Event Configuration🔗
LoadFilterEvent LONG ! Load filter event number
SaveFilterEvent LONG ! Save filter event number
📝 Text Properties🔗
FilterBySelectionText STRING ! Menu text
FilterExcludingSelectionText STRING ! Menu text
FilterByContainsText STRING ! Menu text
FilterByNotContainsText STRING ! Menu text
FilterForText STRING ! Menu text
FilterRemoveText STRING ! Menu text
🔗 Macro Properties🔗
EqualsMacro STRING ! Equals text macro
EqualsBlank STRING ! Blank equals text
NotEqualsMacro STRING ! Not equals macro
NotEqualsBlank STRING ! Blank not equals text
ContainsMacro STRING ! Contains macro
NotContainsMacro STRING ! Not contains macro
LessOrEqualMacro STRING ! Less/equal macro
MoreOrEqualMacro STRING ! More/equal macro
OnOrBeforeMacro STRING ! Date before macro
OnOrAfterMacro STRING ! Date after macro
📊 Queue Structures🔗
TFilterQueue (FilterRows)🔗
ID LONG ! Filter entry ID
Filter STRING ! Generated filter expression
IsManual BYTE ! Manual/free-form flag
FieldName STRING ! Field name
Operator LONG ! Filter operator
ConditionLow STRING ! Low condition value
ConditionHigh STRING ! High condition value
Picture STRING ! Field picture
CaseSensitivity BYTE ! Case sensitivity
JoinOp STRING ! Join operator (AND/OR)
NewGroup BYTE ! New group flag
NewGroupJoinOp STRING ! New group join operator
TFieldQueue (FieldQ)🔗
Name STRING ! Field name
Title STRING ! Display title
Picture STRING ! Field picture
Low STRING ! Low value
Middle STRING ! Middle value
High STRING ! High value
CaseSensitivity BYTE ! Case sensitivity
Justification BYTE ! Text justification
FieldOverrideQueue🔗
FieldName STRING ! Field to override
TitleOverride STRING ! Override title
SkipAlways BYTE ! Skip field flag
🔧 Case Sensitivity Constants🔗
e_tint_CaseInsensitive EQUATE(0) ! Case insensitive
e_tint_CaseSensitive EQUATE(1) ! Case sensitive
e_tint_Configurable EQUATE(2) ! User configurable
📋 Template Events🔗
Default Event Numbers🔗
! Filter events (from template)
4064 ! Filter by selection
4065 ! Filter excluding selection
4066 ! Filter for dialog
4067 ! Remove filter
4068 ! Contains/Less than or equal
4069 ! Not contains/Greater than or equal
4070 ! Load saved filter
4071 ! Save current filter
Template Symbols🔗
! Hex values used in template
0FE0h ! Selection event (4064)
0FE1h ! Excluding selection (4065)
0FE2h ! Filter for event (4066)
0FE3h ! Remove query (4067)
0FE4h ! Contains query (4068)
0FE5h ! Not contains query (4069)
0FE6h ! Load query (4070)
0FE7h ! Save query (4071)
🎨 Popup Class Integration🔗
The library integrates with ABC PopupClass:
Popup &PopupClass ! Main popup reference
PopupFBS &PopupClass ! Filter by selection popup
PopupQBF &PopupClass ! Query by form popup
Popup Methods Used🔗
! Popup management
SELF.Popup.AddItem(TEXT, ID)
SELF.Popup.AddItemEvent(ID, EVENT, CONTROL)
SELF.Popup.SetIcon(ID, ICONFILE)
SELF.Popup.SetText(ID, TEXT)
SELF.Popup.SetItemEnable(ID, ENABLED)
SELF.Popup.DeleteItem(ID)
SELF.Popup.AddItemMimic(ID, CONTROL, TEXT)
🔄 Legacy Clarion Support🔗
For Legacy Clarion applications:
BrowseQueuePrefix STRING ! Queue prefix for legacy
ForceRefresh BYTE ! Force refresh flag
Legacy Popup Handling🔗
! Legacy popup variables (template generated)
ItemName CSTRING(101) ! Current item name
IconName CSTRING(255) ! Current icon name
ItemText CSTRING(101) ! Current item text
TPopupText CSTRING(1000) ! Complete popup text
📁 File Integration🔗
For filter persistence:
! Persistence files (created by save/load procedures)
_TFilters FILE ! Filter definitions
_TFilterRows FILE ! Filter components
This API reference provides complete coverage of the TInteractiveFilterClass and its integration with Clarion browse procedures.