Estrapolare informazioni da un campo data

Come utilizzare i campi. Differenze tra campi calcolati, testo, numero, multipli, contenitori.

Moderatore: Moderatori

Rispondi
sethos
Messaggi: 94
Iscritto il: mercoledì 28 gennaio 2004, 1:00
Località: Cesena

Estrapolare informazioni da un campo data

Messaggio da sethos » martedì 13 settembre 2005, 21:25

Salve,
Mi ripresento al cospetto del forum per cercare di risolvere due problemi. Sono quasi riuscito ad automatizzare la campilazione di calendario annuale perpetuo con FM6, dove successivamente verranno impostati i turni di lavoro del pesonale in un reparto di dialisi. Per completarlo dovrei estrapolare due dati: il primo e la data che corrisponde al primo lunedì dell'anno. Il secondo e il numero delle settimane che compongono un anno (considerando i bisestili). Il tutto partendo da un campo dove specifico l'anno di compilazione(ad esempio il 2006). Pensate che sia possibile? O servono più variabili?
Grazie

sethos
Messaggi: 94
Iscritto il: mercoledì 28 gennaio 2004, 1:00
Località: Cesena

Messaggio da sethos » mercoledì 14 settembre 2005, 21:32

Salve a tutti,
Intervengo, in quanto il primo problema lo risolto poco fà. Si cercava di capire in quale data cadesse il primo lunedì dell'anno. Per fare ciò ho creato due campi: il primo, di tipo data, l'ho chiamato "inserimento data". In questo campo per semplicità e convenzione immetto sempre il primo giorno ,del primo mese, dell'anno che mi interessa verificare (ad es. 01/01/2005).
Il secondo, è un campo calcolato,sempre di tipo data, con una serie di istruzioni If annidate, e più precisamente:
If(NomeGiorno(Data(Mese(inserimento data);1;Anno(inserimento data)))="Domenica";inserimento data+1;If(NomeGiorno(Data(Mese(inserimento data);1;Anno(inserimento data)))="Lunedì";inserimento data;If(NomeGiorno(Data(Mese(inserimento data);1;Anno(inserimento data)))="Martedì";inserimento data+6;If(NomeGiorno(Data(Mese(inserimento data);1;Anno(inserimento data)))="Mercoledì";inserimento data+5;If(NomeGiorno(Data(Mese(inserimento data);1;Anno(inserimento data)))="Giovedì";inserimento data+4;If(NomeGiorno(Data(Mese(inserimento data);1;Anno(inserimento data)))="Venerdì";inserimento data+3;If(NomeGiorno(Data(Mese(inserimento data);1;Anno(inserimento data)))="Sabato";inserimento data+2;""))))))).
Ripeto, ciò che condiziona il risultato, non è tanto il giorno e il mese, ma è l'anno.
Per quanto riguarda il calcolo di quante settimane e costituito un determinato anno, beh, sono ancora all'asciutto. Ho provato due soluzioni che per il momento non mi soddisfano: una è l'utilizzo della funzione "GiorniDellAnno". Utilizzando sempre il campo sopra citato "inserimento data"come riferimento, dove scrivo la data che conclude ogni anno solare (ad es 31/12/2005); ricavo il numero dei giorni che compongono l'anno e li divido per 7. Ovviamente, e non so per quale motivo, il risultato restituito non è sempre coretto. La stessa cosa succede se utilizzo al posto della funzione "GiorniDellAnno"la sua compagna "SettimaneDellAnno". Qualcuno può darmi una mano a proposito?
Grazie infinite[/code]

raybaudi
Messaggi: 3616
Iscritto il: sabato 7 febbraio 2004, 1:00
Località: Roma
Contatta:

Messaggio da raybaudi » giovedì 15 settembre 2005, 18:55

ciao,

puoi notevolmente semplificare il tutto...

Per prima cosa, non c'è bisogno di definire un nuovo campo per la data, basta quello che già hai, contenente solo l'anno ! :wink:

Nell'esempio che segue lo chiameremo ANNO (campo testo).

1) quesito: crei un campo calcolato (PrimoLunediAnno) di tipo data e calcolo:

Codice: Seleziona tutto

Data ( 1 ; Modulo ( 2 - GiornodiSettimana ( Data ( 1; 1 ; Anno ) ) + 7 ; 7 ) + 1 ; Anno )
2) quesito: crei un campo calcolato (SettimaneAnno) di tipo numero e calcolo:

Codice: Seleziona tutto

SettimanedellAnno( Data( 12 ; 31; Anno ))
:wink:
Raybaudi FMP 12 Adv. Windows XP SP3

sethos
Messaggi: 94
Iscritto il: mercoledì 28 gennaio 2004, 1:00
Località: Cesena

Messaggio da sethos » giovedì 15 settembre 2005, 21:54

Grazie DoctorRay!

Rispondi