Via het freeform-filter kun je zelf filtercriteria definiëren. Het freeform wordt vaak gebruikt als de standaard filters in een browser geen aanknopingspunt bieden voor de gewenste zoekactie. Een voorbeeld van een situatie waarin de Freeform gebruikt kan worden is als een projectleider wil achterhalen aan welke debiteuren BTW wordt berekend.
In de freeform wordt gebruik gemaakt van veldnamen en zogenaamde operators. Enige kennis van Progress komt daarbij van pas.
Veldnamen
Bij het zoeken via de freeform wordt gebruik gemaakt van één of meerdere veldnamen; een voorbeeld in de functie Debiteuren (MDEBST) is db01.debnr (het debiteurnummer). De veldnamen kun je snel vinden door te klikken op het item Veldnamen tonen onder het kopje Applicatiebeheer rechts in je scherm.
Operators
Om te zoeken via de Freeform kunnen zogenaamde operators worden toegepast. Hieronder een overzicht van mogelijke operators:
OPERATOR | BETEKENIS |
= | Veldwaarde moet exact overeenkomen met ingegeven waarde.Voorbeeld 1: db01.debnr = “1023” Ofwel: toon de debiteur met debiteurnummer 1023 Voorbeeld 2: db01.btw-berek = yes |
<> | Veldwaarde mag niet overeenkomen met ingegeven waarde.Voorbeeld: db01.debnr <> “1023” Ofwel: toon alle debiteuren, maar negeer de debiteur met debiteurnummer 1023 |
> | Veldwaarde moet groter zijn dan ingegeven waarde. Voorbeeld: db01.debnr > “1023” Ofwel: toon alle debiteuren waarvan het debiteurnummer hoger is dan 1023 |
>= | Veldwaarde moet groter zijn dan of gelijk zijn aan ingegeven waarde. Voorbeeld: db01.debnr >= “1023” Ofwel: toon alle debiteuren waarvan het debiteurnummer 1023 of hoger is |
Notaties
De notatie van te gebruiken waardes is afhankelijk van het soort veld (het datatype). Zo geldt voor characters (velden waarin alfanumerieke waarden kunnen worden ingegeven) dat er quotes moeten worden gebruikt. Voorbeeld: db01.debnr <= “1023”
- integer – geen quotes vereist
- date – geen quotes vereist. De notatie van een date is overigens dd/mm/jjjj . Voorbeeld: ma01.rel-sinds > 31/01/2000
- checkbox – geen quotes vereist. In het zoekcriterium kan hier overigens alleen met een yes of no worden vergeleken. Voorbeeld: db01.btw-berek = no
- decimals – quotes vereist, tussen haakjes en met dec ervoor. Voorbeeld: dec(“6,75”)
- characters – quotes vereist. Voorbeeld: db01.debnr <= “1023”
Een geval apart vormt de combobox. Voor dit datatype geldt dat het in de freeform helaas niet kan worden gebruikt.
Performance
Intensief gebruik van de freeform kan een nadelige invloed hebben op de performance. De mate van ‘vertraging’ hangt voornamelijk samen met de complexiteit van zoekcriteria.