Realazione interno Stessa Tabella

FileMaker è un database relazionale. Vediamo come...

Moderatore: Moderatori

Rispondi
Ricotti199
Messaggi: 8
Iscritto il: domenica 13 novembre 2016, 20:07
Versione FileMaker: 14
Sistema operativo: osx

Realazione interno Stessa Tabella

Messaggio da Ricotti199 » sabato 7 gennaio 2017, 13:14

Buongiorno a tutti, lo sviluppo della mia soluzione sta andando avanti e devo ringraziare molto le informazioni all'interno di questo forum.
Visto che sto iniziando a utilizzare FM da poco vi descrivo il problema :
ho creato una relazione all'interno della stessa tabella per ogni record il campo relazionato è [settimana > settimana].
Record1, settimana1, valori
Record2, settimana1, valori
Record3, settimana1, valori
Record1, settimana2, valori=(settimana 2 - settimana 1)
Record2, settimana2, valori=(settimana 2 - settimana 1)
Record3, settimana2, valori=(settimana 2 - settimana 1)
Record1, settimana3, valori=(settimana 3 - settimana 2)
Record2, settimana3, valori=(settimana 3 - settimana 2)
Record3, settimana3, valori=(settimana 3 - settimana 2)
in modo tale che riesco sempre a fare la differenza tra i valori con il cambiare delle settimane.
adesso però duplicando un gruppo di record e sostituendo il solo campo settimana la relazione non funziona più, mi domando se è dovuto al fatto della duplicazione dei record, ma non capisco. la mia condizione (settimana > settimana) deve essere sempre valida man mano che duplico record con settimana crescente al quale vado a modificare i valori, in modo tale da avere sempre la mia differenza nella settimana.
Spero di essere stato chiaro.

grazie a tutti per il contributo, ciao.

Avatar utente
PaoloMar189
Messaggi: 77
Iscritto il: sabato 4 ottobre 2014, 18:31

Re: Realazione interno Stessa Tabella

Messaggio da PaoloMar189 » sabato 7 gennaio 2017, 18:35

Buonasera. Spero mi scuserai, ma non ho capito niente o almeno non ho capito il senso di tutto il post.

Comunque, due concetti sono basilari:

1. la duplicazione non fa altro che creare un record prendendo tutti i dati da un record da cui parte la duplicazione.
2. Verifica la relazione perché sicuramente non è corretta e in grado di individuare i records su cui fai il calcolo

Siccome non ho percepito il fine ma anche il metodo, non so dirti di più.
Spiacente.
Paolo Marinelli
Moderatore FMPro.it
Sviluppatore OmniaGest 5 e FileMaker 14-15

Omnia Studio

-----------------------------------------
http://www.omniagest.it

Ricotti199
Messaggi: 8
Iscritto il: domenica 13 novembre 2016, 20:07
Versione FileMaker: 14
Sistema operativo: osx

Re: Realazione interno Stessa Tabella

Messaggio da Ricotti199 » sabato 7 gennaio 2017, 19:20

Paolo, hai ragione ho scritto in maniera pessima, mi scuso con tutti.
nel frattempo ho fatto una prova in un altro file.....Procedo in questo modo:
1. Creo una tabella (Test Relazione) con i seguenti campi : [ID, Week, Progress, Weekly Progress]
2. Creo una relazione tra i campi ID=ID, Week>Week quindi FM crea una tabella duplicata (Test Relazione 2)
2. Creo (duplico oppure nuovo) 4 record con i seguenti dati
[ID, Week, Progress, Weekly Progress]
A, 07/01/2017, 50, Weekly Progress è un calcolo = Progress-Test Relazione 2::Progress
A, 15/01/2017, 70, Weekly Progress è un calcolo = Progress-Test Relazione 2::Progress
A, 25/01/2017, 80, Weekly Progress è un calcolo = Progress-Test Relazione 2::Progress
A, 30/01/2017, 90, Weekly Progress è un calcolo = Progress-Test Relazione 2::Progress
3. Quindi FM calcola questi valori
A, 07/01/2017, 50, Weekly Progress è un calcolo = 50 (50-0=0)
A, 15/01/2017, 70, Weekly Progress è un calcolo = 20 (70-50=20)
A, 25/01/2017, 80, Weekly Progress è un calcolo = 30 (80-50=30)
A, 30/01/2017, 90, Weekly Progress è un calcolo = 40 (90-50=40)
Questo è il problema!

4. Perché deve calcolare la giusta differenza tra le settimane e non quella del 07/01 contro le restanti 3
A, 07/01/2017, 50, Weekly Progress è un calcolo = 50 (50-0=50)
A, 15/01/2017, 70, Weekly Progress è un calcolo = 20 (70-50=20)
A, 25/01/2017, 80, Weekly Progress è un calcolo = 10 (80-70=10)
A, 30/01/2017, 90, Weekly Progress è un calcolo = 10 (90-80=10)
Questo è quello che vorrei.

come faccio a dirgli che deve confrontare sempre l'ultima settima con la precedente?
grazie mille.

Avatar utente
PaoloMar189
Messaggi: 77
Iscritto il: sabato 4 ottobre 2014, 18:31

Re: Realazione interno Stessa Tabella

Messaggio da PaoloMar189 » domenica 8 gennaio 2017, 13:03

Credo che un primo passo che farei è aggiungere l'anno in un nuovo campo, o ricavarlo con la funzione anno (TABELLA::data), e poi il numero della settimana con la funzione SETTIMANA

Dopodiché aggiusterei la relazione sostituendo week (che si chiamerà data) con il campo settimana e aggiungerei nella relazione il campo anno.

A questo punto, nel record, ricavare il valore del campo Progress del record subito precedente è facile perché nella formula del calcolo si metterà PROGRESS - TABELLA_RELAZIONATA::PROGRESS
Paolo Marinelli
Moderatore FMPro.it
Sviluppatore OmniaGest 5 e FileMaker 14-15

Omnia Studio

-----------------------------------------
http://www.omniagest.it

Ricotti199
Messaggi: 8
Iscritto il: domenica 13 novembre 2016, 20:07
Versione FileMaker: 14
Sistema operativo: osx

Re: Realazione interno Stessa Tabella

Messaggio da Ricotti199 » domenica 8 gennaio 2017, 15:27

Grazie mille Paolo per la risposta,
ho inserito i due campi: SETTIMANA e ANNO, ho relazionato SETTIMANA > SETTIMANA e ANNO=ANNO.
purtroppo però FM calcola nello stesso modo cioè quello errato di prima, considerando il numero della settimana più lontana e non quella del record precedente.
Sbaglio qualcosa ?
grazie ancora.

Ricotti199
Messaggi: 8
Iscritto il: domenica 13 novembre 2016, 20:07
Versione FileMaker: 14
Sistema operativo: osx

Re: Realazione interno Stessa Tabella

Messaggio da Ricotti199 » domenica 8 gennaio 2017, 17:09

Paolo, ho proceduto in questa maniera:
1. aggiunto campo week 2 (calcolo = week - 7)
2. relazionato ID=ID, ANNO=ANNO, Week2=week, il primo tabella master e il secondo tabella relazionata
3. FM ora calcola PROGRESS sempre con l'ultima settimana
4. ora faccio alcuni test di verifica

concordi?

Avatar utente
PaoloMar189
Messaggi: 77
Iscritto il: sabato 4 ottobre 2014, 18:31

Re: Realazione interno Stessa Tabella

Messaggio da PaoloMar189 » domenica 8 gennaio 2017, 17:23

No, non concordo, per nessuno dei tuoi due ultimi messaggi. Spiego perché. Io ho scritto:
aggiungere l'anno in un nuovo campo.
E' qui ok

Poi ho scritto:
e poi il numero della settimana con la funzione SETTIMANA
E qui non l'hai fatto. Con questa funzione si ricava il numero della settimana in cui cade la data. Il 3 gennaio è la settimana n. 1 mentre il 10 gennaio entra nella settimana n. 2 quindi il campo assume il valore di un numero intero, anziché di una data
Paolo Marinelli
Moderatore FMPro.it
Sviluppatore OmniaGest 5 e FileMaker 14-15

Omnia Studio

-----------------------------------------
http://www.omniagest.it

Ricotti199
Messaggi: 8
Iscritto il: domenica 13 novembre 2016, 20:07
Versione FileMaker: 14
Sistema operativo: osx

Re: Realazione interno Stessa Tabella

Messaggio da Ricotti199 » lunedì 9 gennaio 2017, 12:17

purtroppo ho provato con il numero della settimana ma non funziona, rimane il calcolo errato in quanto confronta tutti i record con la settimana più lontana e non la predente

Avatar utente
PaoloMar189
Messaggi: 77
Iscritto il: sabato 4 ottobre 2014, 18:31

Re: Realazione interno Stessa Tabella

Messaggio da PaoloMar189 » lunedì 9 gennaio 2017, 12:24

Quando devi capire il perché di un errore di calcolo con records relazionati, inserisci un portale nel formato per vedere con quali records si sta relazionando il record master.
Paolo Marinelli
Moderatore FMPro.it
Sviluppatore OmniaGest 5 e FileMaker 14-15

Omnia Studio

-----------------------------------------
http://www.omniagest.it

Rispondi