Dokumentation
Dokumentationen nedan ingår i BeeBase-distributionen och finns även tillgänglig i PDF.
| [ << ] | [ >> ] | [Top] | [Contents] | [Index] | [ ? ] |
10. Filter
Filter kan användas för att dölja poster. Detta kapitel beskriver vilka typer av filter som finns tillgängliga och hur man använder dem.
BeeBase känner till två typer av filter, postfilter och referensfilter.
| 10.1 Record filter | Använda ett boolskt uttryck som filter. | |
| 10.2 Reference filter | Använda en postreferens som filter. |
10.1 Postfilter
Ett postfilter kan installeras i en tabell för att filtrera bort poster som inte är av intresse för dig. Poster som filtreras bort exkluderas i tabellmasken och användaren kan därför inte se eller bläddra till dem.
| 10.1.1 Filter expression | Hur ett filter ser ut. | |
| 10.1.2 Changing filters | Hur man anger filteruttryck. | |
| 10.1.3 Filter examples | Några exempel. |
10.1.1 Filteruttryck
Ett filter definieras genom att ange ett boolskt uttryck som kan innehålla anrop till BeeBase-programmeringsfunktioner. För varje post i tabellen som filtret är specificerat för, utvärderas detta uttryck. Om det returnerar NIL filtreras posten bort, annars inkluderas den i tabellmasken.
Varje tabell kan ha sitt eget filteruttryck.
10.1.2 Ändra Filter
För att ändra filtret för den aktuella tabellen, välj menyalternativet `Tabell - Ändra filter'. Detta öppnar ett fönster som innehåller
- namnet på tabellen du installerar filtret för i fönsterrubriken.
- en lista över alla fält i tabellen som kan användas i filter-
uttrycket. Denna lista placeras i vänstra delen av fönstret.
Om du dubbelklickar på ett namn kommer namnet att infogas
i filteruttrycket vid den aktuella markörpositionen.
- en tabell med knappar som visar BeeBase-programmeringsfunktioner
och operatorer placerade i den högra delen av fönstret.
Klicka på en av knapparna för att mata in motsvarande
funktion i filteruttrycket. Observera att den presenterade
listan över funktioner och operatorer inte är komplett. Andra BeeBase-funktioner
som inte visas på någon av knapparna måste anges manuellt.
Endast de BeeBase-funktioner kan användas
som inte har sidoeffekter, t.ex. är det inte möjligt att skriva data
till en fil inom ett filteruttryck.
- ett stränginmatningsfält för att ange filteruttrycket.
Fält- och funktions-/operatornamnen infogas här.
Du kan också direkt mata in ditt filteruttryck.
- två knappar `Ok' och `Avbryt' för att lämna fönstret.
När du är klar med specifikationen av filteruttrycket klicka på knappen `Ok' för att lämna fönstret. Det angivna uttrycket kompileras nu och vid lyckad kompilering utvärderas uttrycket för alla poster. De poster för vilka det boolska uttrycket inte gäller tas sedan bort i tabellmasken.
Om uttrycket inte kompilerar får du ett felmeddelande visat i fönstrets titelrad.
Ett filter kan slås på och av genom att klicka på knappen `F' i tabellens panel (om den är installerad). Efter att du har angett ett filteruttryck för en tabell aktiveras filtret för denna tabell automatiskt.
Om du (åter)aktiverar ett filter kontrolleras alla poster i tabellen om de matchar filtret eller inte.
Om ett filter är aktivt för närvarande och du ändrar ett (filterrelevant) fält i en post i denna tabell, beräknas inte matchningsfilterstatus för denna post om och förblir oförändrad.
Om du allokerar en ny post i en tabell med ett aktiverat filter kontrolleras inte om den nya posten matchar filtret och den nya posten får sin matchningsfilterstatus satt till TRUE.
10.1.3 Filterexempel
Här är några exempel på giltiga filteruttryck:
- `NIL' filtrerar bort alla poster.
- `TRUE' filtrerar inte bort någon post.
- `0' har samma effekt som `TRUE' eftersom
för BeeBase betraktas alla uttryck som inte är lika med NIL som TRUE.
- `(> Belopp 100.0)' visar endast poster där
fältet `Belopp' är större än 100.0
(vi antar här att tabellen har ett fält `Belopp'
av typen reellt tal).
- `(NOT (LIKE Namn "*x*"))' filtrerar bort alla poster som
har bokstaven `x' i fältet `Namn' (ett sträng-
fält).
Observera att BeeBase programmeringsspråk använder en lisp-liknande syntax. För mer information om programmeringsspråket, se Programming BeeBase.
10.2 Referensfilter
Referensfält kan också ha ett filterbeteende. Detta är användbart t.ex. för att bygga en hierarki av tabeller. Som exempel se projektet `Albums'.
Om filtret för ett referensfält är påslaget aktiveras följande funktioner:
- Användaren kan endast komma åt poster i fältets tabell
som har referensen inställd på den aktuella posten i den
refererade tabellen.
- Om den refererade tabellen ändrar sin aktuella post söks också en ny
aktuell post och ställs in för fältets tabell.
- Vid allokering av en ny post ställs referensen automatiskt in
till den aktuella posten i den refererade tabellen.
Obs: Kaskaderad borttagning måste implementeras manuellt (genom att använda en utlösarfunktion för borttagning).
Använd inte referensfiltret på cykliska grafer, t.ex. självrefererande tabeller, eftersom det inte är särskilt meningsfullt.
| [ << ] | [ >> ] | [Top] | [Contents] | [Index] | [ ? ] |
This document was generated on September, 6 2025 using texi2html



