PC SOFT

ONLINE HELP
FOR WINDEV, WEBDEV AND WINDEV MOBILE

Home | Sign in | English US

  • Automatic management of composite keys
  • Filter and filtered browse
  • Enabling/Disabling a filter
  • Data files not in HFSQL format
WINDEV
WindowsLinuxUniversal Windows 10 AppJavaReports and QueriesUser code (UMC)
WEBDEV
WindowsLinuxPHPWEBDEV - Browser code
WINDEV Mobile
AndroidAndroid Widget iPhone/iPadApple WatchUniversal Windows 10 AppWindows Mobile
Others
Stored procedures
Defines and enables an "Included between" filter on a data file, view or query. The "Included Between" filter is used to select all the records included between two values.
After its execution, the most common cases are as follows:
  • the filter cannot be created: HFilterIncludedBetween returns an empty string (""). HError returns the error identifier.
  • the filter is created: HFilterIncludedBetween returns the optimized search key that will be used to browse the data file, view or query.
Versions 17 and later
iPhone/iPad This function is now available for the iPhone/iPad applications.
New in version 17
iPhone/iPad This function is now available for the iPhone/iPad applications.
iPhone/iPad This function is now available for the iPhone/iPad applications.
Versions 18 and later
Universal Windows 10 App This function is now available in Windows Store apps mode.
New in version 18
Universal Windows 10 App This function is now available in Windows Store apps mode.
Universal Windows 10 App This function is now available in Windows Store apps mode.
Versions 21 and later
Universal Windows 10 App This function is now available in Universal Windows 10 App mode.
New in version 21
Universal Windows 10 App This function is now available in Universal Windows 10 App mode.
Universal Windows 10 App This function is now available in Universal Windows 10 App mode.
Note: From version 19, HFSQL is the new name of HyperFileSQL.
Versions 22 and later
Android Widget This function is now available in Android Widget mode.
Android This function is now available for the Android applications.
WINDEVJava This function is now available for the Java applications.
New in version 22
Android Widget This function is now available in Android Widget mode.
Android This function is now available for the Android applications.
WINDEVJava This function is now available for the Java applications.
Android Widget This function is now available in Android Widget mode.
Android This function is now available for the Android applications.
WINDEVJava This function is now available for the Java applications.
Example
MySearchKey is string
MySearchKey = HFilterIncludedBetween(Customer, LastNameFirstName, ...
"A", "B" + hMaxVal, hBoundSeparator, "C", "D" + hMaxVal)
// Select all the customers whose last name is included between A and C
// and whose first name is included between C and D

HReadFirst(Customer, MySearchKey)
WHILE NOT HOut()
Trace(Customer.CustomerName, Customer.City)
HReadNext(Customer, MySearchKey)
END
...
// Disables the filter
HDeactivateFilter(Customer)
Syntax
<Result> = HFilterIncludedBetween(<File Name>, <Name of Key Item>, <Lower Bound for 1st Key Component> [, <Lower Bound for 2nd Key Component> [, ...]], hBoundSeparator, <Upper Bound for 1st Key Component> [, <Upper Bound for 2nd Key Component> [, ...]])
<Result>: Character string
Search item. Corresponds to:
  • the search key of data file if the filter is enabled.
  • an empty string ("") if the filter cannot be implemented.
<File Name>: Character string (with or without quotes)
Name of data file, view or query used.
<Name of Key Item>: Character string (with or without quotes)
Name of key item onto which the filter will be applied. This item can be a simple key (string) or a composite key.
Caution: this parameter must only contain letters, underlined characters or digits. Otherwise, the name must be enclosed in quotes.
<Lower Bound of Component 1 of Key>: Type of first component of search key
Lower bound for the components (first, second, ...) of the composite key. The records corresponding to this value will be included in the filter.
The type of this parameter must correspond to the type of key item component on which the filter is defined.
<Lower Bound of Component 2 of Key>: Type of second component of search key
Lower bound for the second component of the composite key. The records corresponding to this value will be included in the filter.
The type of this parameter must correspond to the type of key item component on which the filter is defined.
<hBoundSeparator>: Integer constant
The hBoundSeparator constant is used to separate the values of lower and upper bounds for the components of composite key.
<Upper Bound of Component 1 of Key>: Type of first component of search key
Upper bound for the components (first, second, ...) of composite key. The records corresponding to this value will be included in the filter.
The type of this parameter must correspond to the type of key item component on which the filter is defined.
<Upper Bound of Component 2 of Key>: Type of second component of search key
Upper bound for the second component of the composite key. The records corresponding to this value will be included in the filter.
The type of this parameter must correspond to the type of key item component on which the filter is defined.
Remarks

Automatic management of composite keys

HFilterIncludedBetween automatically manages the filters on the simple keys and on the composite keys.
Example: Using HFilterIncludedBetween with a simple key:
ResultFilter = HFilterIncludedBetween(Customer, LastName, "A", hBoundSeparator, "B" + hMaxVal)
// Select all the customers whose last name is included between A and C
Example: Using HFilterIncludedBetween with a composite key
ResultFilter = HFilterIncludedBetween(Customer, LastNameFirstName, "A", "B" + hMaxVal, ...
hBoundSeparator, "C", "D" + hMaxVal)
// Select all the customers whose last name is included between A and C
// and whose first name is included between C and D
This code line is equivalent to:
HFilter(Customer, LastNameFirstName, ...
HBuildKeyValue(Customer, LastNameFirstName, "A", "B" + hMinVal), ...
HBuildKeyValue(Customer, LastNameFirstName, "C", "D" + hMaxVal))

Filter and filtered browse

After the call to HFilterIncludedBetween, the data file must necessarily be browsed on the item returned by HFilterIncludedBetween. The filter will be ignored if another item is used to browse the data file.
When a filter is defined and enabled on a data file (view or query), all records read correspond to the filter. If no other record corresponds to the filter during the browse:
  • HOut returns True.
  • the current record corresponds to the last record read with the filter.
For example:
On a filtered data file, after the function:the current record is:
HReadFirstthe first file record corresponding to the filter
HReadLastthe last file record corresponding to the filter
HReadNext (or HForward)the next record (or the next nth record) corresponding to the filter
HReadPrevious (or HBackward)the previous record (or the previous nth record) corresponding to the filter

Enabling/Disabling a filter

  • HDeactivateFilter is used to disable a filter.
  • HActivateFilter is used to re-enable a filter.
  • The filter is deleted when the data file (query or view) is closed (HClose for example).
  • A single filter can exist at a given time on a data file (query or view). If HFilterIncludedBetween is used several times, only the last filter will be taken into account: the previous filters will be deleted. Similarly, if several filters are used (HFilter* functions), only the last filter will be taken into account.
WINDEVWEBDEV - Server codeReports and QueriesWindows MobileAjaxUser code (UMC)Stored proceduresOLE DBNative Accesses

Data files not in HFSQL format

Components
WINDEVWEBDEV - Server codeReports and Queries wd230hf.dll
Windows Mobile wp230hf.dll
Java wd230java.jar
Linux wd230hf.so
Android wd230android.jar
Minimum required version
  • Version 9
This page is also available for…
Comments
Click [Add] to post a comment