|
Tip 9 - Conditional Value lists aanmaken in FileMaker
4
Enkel voor de gevorderden die de stap
naar versie 5 niet gezet hebben en die niet bevreesd zijn
voor een wat ingewikkeldere werkwijze...
De truc is gebaseerd op het feit dat
FileMaker indexeert op unieke
items. Nemen we als voorbeeld een databank met vijftig
records, elk met één veld voor de
voornaam. Stel dat we 10 van de 50 records invullen met
John, 20 met Pete en 20 met Carl. Dan zal de index van
dat veld geen vijftig items bevatten, maar slechts drie,
nl. John, Pete en Carl.
Nu naar de conditional value
list trick. Stel dat we een databank hebben die we
Groenten en fruit noemen met daarin het veld
Naam. Daarin vullen we talrijke namen in:
tomaat, prei, appel, citroen, peer, ananas, aardappel,
enz. Op elke record geven we aan via een radio button
of we met een groente of met fruit te doen hebben; dit veld
noemen we Soort. Daarnaast hebben we ook nog een
hoofddatabank voor onze menu's. Daar kunnen we op een
bepaald moment aanduiden of we een groente of fruit nodig
hebben. Dat geven we aan door te selecteren via radio
buttons: één voor groente, één
voor fruit. We willen na die keuze een popup menu
krijgen dat dan enkel ofwel de groenten, ofwel het fruit
toont.
Hoe kunnen we dit bereiken?
Eerst en vooral dit: beide databanken
moeten aan elkaar gelinkt zijn via een "trigger", een
gemeenschappelijk calculatieveld met als formule "1".
Elke record van de ene databank is op die manier gelinkt aan
elke record van de andere. We doen dit zoals gewoonlijk via
Define
Relationships.
Laten we nu terugkeren naar de
databank Groenten en fruit. We maken daar een
derde veld dat we Zoekcriterium noemen en dat van het
type "global" is. Dat veld zullen we later via
Set Field
vullen vanuit de menu databank (dat kunnen we dank zij de
trigger-relatie).
Dan maken we nog een vierde veld, van
het type calculatie, en dat we Waarden voor value
list noemen. De formule is hier de volgende:
If(Zoekcriterium =
Soort;Naam;"")
Wanneer we dus in het veld
Zoekcriterium de waarde "Groente" zetten, dan zal in
het veld Waarden voor value list de naam verschijnen
die in het veld Naam staat, anders niets. Het veld
Waarden voor value list zal dus enkel de groenten
tonen. Zetten we in het veld Zoekcriterium de
waarde "Fruit", dan zal het veld Waarden voor value
list enkel de fruitsoorten tonen.
Het enige wat nu nog te doen staat is
in de Menudatabank een value list Groenten of fruit
te definiëren en die te baseren op de veldinhoud van
het veld Waarden voor value list van de databank met
de tomaten enz. (de laatste van de twee opties wanneer we
een value list definiëren).
Willen we nu enkel fruit in de value
list, dan volstaat het de waarde "Fruit" in te vullen in het
veld Zoekcriterium ; willen we groenten, dan vullen
we daar "groente" in. En dat kan vanuit de
Menudatabank via het Set
Field commando.
|