Traendo spunto da una discussione comparsa su questo forum, ho pensato di
usare tre auto relazioni per verificare se nella tabella delle prenotazioni
di un residence ve ne siano alcune che si sovrappongono.
Ecco lo schema.
La Tabella “Prenotazioni” è così composta:
n. 4 campi che individuano la prenotazione:
DataArrivo (data), DataPartenza (data),
idAppartamento (testo ), iDPrenotazione (testo univoco)
n. 4 campi calcolati (usati nelle auto relazioni)
dArrivo=DataArrivo; dPartenza=DataPartenza; iD=iDPrenotazione; nApp=idAppartamento
n. 4 campi calcolati per il conteggio dei record trovati dalle 3 relazioni
conteggioR1=Conteggio(R1::nFile)
conteggioR2=Conteggio(R2::nFile)
conteggioR3=Conteggio(R3::nFile)
conteggioR=conteggioR1+conteggioR2+conteggioR3
Le 3 autorelazioni sono le seguenti:
R1
dA > dArrivo
dA < dPartenza
nApp = idAppartamento
iD idPrenotazione
R2
dP > dArrivo
dP <= dPartenza
nApp = idAppartamento
iD idPrenotazione
R3
da <= dArrivo
dP <= dPartenza
nApp = idAppartamento
iD idPrenotazione
———————————————————————
Avevo dei forti sull’uso dei campi calcolati che entrano a far parte delle
relazioni ma il metodo sembra funzionare correttamente.
Però c’è una anomalia.
Per verificare a vista la presenza di una sovrapposizione ho messo in un formato
della tabella “Prenotazioni” 3 portali, uno per ogni relazione.
Quando in un portale compare almeno un record, ovvero quando
una delle 3 relazioni trova almeno una corrispondenza, vi è una sovrapposizione
di prenotazioni.
Ho anche usato un campo con una formattazione condizionale calcolata come segue:
se Prenotazioni::conteggioR>0 (allora scrivi in rosso su fondo bianco)
Sia i portali che la formattazione condizionale funzionano come mi aspetto.
Ciò che non sembrano funzionare sono i campi calcolati:
conteggioR1
conteggioR2
conteggioR3
conteggioR4
conteggioR
Mentre in presenza di una sovrapposizione i portali riportano i record che si
sovrappongono (a quello corrente) i campi appena indicati, che dovrebbero
contare questi record, restano vuoti.
Anche la formattazione condizionata, che valuta questi campi
che appaiono vuoti, funziona correttamente.
Da una parte FileMaker mi mostra dei campi che sembrano vuoti, e che non
dovrebbero esserlo, e dall’altra li calcola non come sembrano ma come
dovrebbero essere.
Le damande che mi pongo sono queste:
Anche se il tutto sembra funzionare correttamente,
è lecito l’uso che ho fatto dei campi calcolati nelle relazioni?
Se non è lecito, in quale altro modo si potrebbe fare?
E’ possibile che il comportamento anomalo dei campi “conteggio” sia dovuto
al cattivo uso delle relazioni?
Grazie.