Relationer med flera villkor
I en relation med flera villkor ökar du antalet matchande fält, vilket gör att FileMaker Pro måste utvärdera flera villkor innan relaterade poster kan kopplas samman. I FileMaker Pro jämförs värdena från varje matchande fält på båda sidorna i relationen i den ordning som fälten förekommer. Det här kallas för en OCH-jämförelse – för att matchningen ska stämma måste varje matchande fält hitta ett motsvarande värde i samma post i den andra tabellen.
Den här relationen definieras med följande villkor:
Tabell |
Fältnamn |
Kommentar |
TabellA |
TextfältA |
Matchande fält till TextfältB och NumerisktFältB |
|
NumerisktFältA |
Matchande fält till TextfältB och NumerisktFältB |
TabellB |
TextfältB |
Matchande fält till TextfältA och NumerisktFältA |
|
NumerisktFältB |
Matchande fält till TextfältA och NumerisktFältA |
Enligt villkoren i den här relationen matchar en post i TabellA med värdet blå i TextfältA och värdet 123 i NumerisktFältA endast de poster i TabellB där TextfältB innehåller värdet blå och NumerisktFältB innehåller värdet 123. Om TextfältA och TextfältB innehåller matchande värden men NumerisktFältA och NumerisktFältB inte gör det, returneras inga relaterade poster av den här relationen.
Tabell |
Postnummer |
Fältnamn |
Värde |
Relaterad post? |
TabellA |
1 |
TextfältA |
Blå |
Ja |
|
2 |
TextfältA |
Blå |
Nej |
|
3 |
TextfältA |
Röd |
Nej |
TabellB |
1 |
TextfältB |
Blå |
Ja |
|
2 |
TextfältB |
Röd |
Nej |
|
3 |
TextfältB |
Blå |
Ja |
Skapa en relation med flera villkor
I det här exemplet skapas en relation med flera villkor med en databas med dessa tre tabeller:
- Utrustning, som lagrar inventarier för uthyrning av utrustning
- Kunder, som innehåller kundernas namn och adresser.
- Catering-produkter, med en post för respektive artikel, det vill säga utrustnings-ID, kundnr och uthyrningsdatum.
Den här databasen spårar uthyrning av utrustning och visar en önskad kunds alla uthyrningar ett visst datum.
- Relationen med flera villkor finns mellan tabellerna Kunder och Catering-produkter. Skapa de här tabellerna med följande fält:
- Definiera KundID och Eventdatum som de matchande fälten i relationen mellan tabellerna Kunder och Catering-produkter i dialogrutan Ändra relation.
- Ange att ett löpnummer ska anges automatiskt i fältet KundID i tabellen Kunder, så att varje post i tabellen Kunder får ett unikt ID-nummer.
- Markera Tillåt att poster skapas i den här tabellen via den här relationen i tabellen Catering-produkter.
Tabellerna i relationsdiagrammet ser ut så här:
- Lägg till en portal på layouten Kunder, och lägg till fältet Kunder::Utrustnings-ID på portalen.
Tabell |
Fältnamn |
Kommentar |
Kunder |
KundID |
Numeriskt fält, automatisk inmatning av löpnummer – ett av de matchande fälten till tabellen Catering-produkter |
|
Eventdatum |
Datumfält – det andra matchande fältet till tabellen Catering-produkter |
Catering-produkter |
KundID |
Numeriskt fält – ett av de matchande fälten till tabellen Kunder |
|
Eventdatum |
Datumfält – det andra matchande fältet till tabellen Kunder |
|
Utrustnings-ID |
Numeriskt fält |
Om du vill skapa en ny relaterad post anger du aktuellt datum i fältet Kunder::Eventdatum och sedan ett ID-nummer för utrustning i portalen i layouten Kunder.
Eftersom Eventdatum är ett matchande fält och relationen tillåter att relaterade poster skapas i tabellen Catering-produkter anges värdet från Kunder::Eventdatum automatiskt i fältet Catering-produkter::Eventdatum.
Du kan visa uthyrningar från tidigare datum genom att ändra värdet i Kunder::Eventdatum. Alla relaterade poster med samma KundID och händelsedatum visas.