Script per creare calendario

Come utilizzare gli script. Automatizzare gli archivi. Utilizzo dei pulsanti

Moderatore: Moderatori

cappello
Messaggi: 137
Iscritto il: giovedì 30 marzo 2006, 2:00
Località: Atina (FR)
Contatta:

Script per creare calendario

Messaggio da cappello » mercoledì 4 aprile 2007, 10:25

Ho un database CALENDARIO con 3 campi

data (campo data)
giorno (campo testo)=giorni della settimana (lunedi, martedi, ecc)
tipo_giorno (campo testo)=che puo' essere festivo o lavorativo

All'inizio dell'anno mi genero il calendario di tutto l'anno con excel con i vari giorni indicando quelli festivi e quelli lavorativi (oltre al sabato e alla domenica metto anche le altre feste tipo pasquetta, ecc e i giorni in cui siamo chiusi per ferie) e importo tutto in filemaker.

Ora vorrei provare a fare il tutto in automatico con uno script in filemaker.
L'idea sarebbe questa:
Inserisco il n. dei giorni in un campo (globale forse?) che voglio creare, parte dall'ultimo giorno inserito e crea n. (es. 365) nuovi record inserendo la data, giorno e tipo_giorno.
In un secondo momento andrei a modificare i giorni festivi oltre il sabato e la domenica.

Qualcuno ha un suggerimento da dover partire?
_________________
FM8.03 Adv. MacOSX 10.4.9

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

Messaggio da raybaudi » mercoledì 4 aprile 2007, 10:34

FileMaker è tanto intelligente da riuscire a fare tutto da solo, basta che tu gli dica quale è il giorno di pasquetta... ma anche questo ( con qualche difficoltà ) si può far calcolare a lui stesso !

E per lo script NON dovrai scrivere o dare alcun parametro. :wink:
Raybaudi FMP 12 Adv. Windows XP SP3

cappello
Messaggi: 137
Iscritto il: giovedì 30 marzo 2006, 2:00
Località: Atina (FR)
Contatta:

Messaggio da cappello » mercoledì 4 aprile 2007, 10:52

Grazie della sempre rapida risposta.
Lui (filemaker) è tanto intelligente ma io no.
Sapresti darmi uno spunto da cui partire?
Non voglio la soluzione ma da dove poter iniziare a ragionare.
GRAZIE
_________________
FM8.03 Adv. MacOSX 10.4.9

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

Messaggio da raybaudi » mercoledì 4 aprile 2007, 11:44

Questo script ti creerà sempre il calendario dell'anno in corso

Mostra tutti i record
Elimina tutti i record [ Senza finestra ]
Imposta variabile [ $anno ; Valore: Anno ( Get ( DataCorrente ) )]
Imposta variabile [ $start ; Valore: Data ( 1 ; 1 ; $anno )]
Imposta variabile [ $end ; Valore: Data ( 12 ; 31 ; $anno )]
Loop
Nuovo record/richiesta
Definisci il campo [ Calendario::data ; $start]
Imposta variabile [ $start ; Valore: $start + 1]
Exit Loop If [ Calendario::data = $end]
End Loop

Il campo: giorno lo imposti come AutoInserimento di valore calcolato e calcolo:
NomeGiorno ( data )

Per il campo: tipo_giorno ne riparliamo dopo.
Raybaudi FMP 12 Adv. Windows XP SP3

cappello
Messaggi: 137
Iscritto il: giovedì 30 marzo 2006, 2:00
Località: Atina (FR)
Contatta:

Messaggio da cappello » mercoledì 4 aprile 2007, 14:29

Stavo provando anchio con le variabili e sono riuscito a fare uno script che ne fa uno la volta, con il loop non so dove farlo iniziare e dove farlo finire.

Ho provato con la tua soluzione ma non va, mi crea nuovi record ma il loop non si arresta e la data mi da in tutti i record un "?"

Per quanto riguarda il tipo_giorno gli ho dato come risultato calcolato
Casi(giorno="sabato" or giorno="domenica";"Festivo";
"Lavorativo")

Mi correggo mentre scrivo, riguardando il tuo script e integrandolo con il mio ho trovato una soluzione

Lo script che ho fatto io funziona così:
Loop
Imposta variabile [$campo; Valore:Calendario::data]
Nuovo/Record/richiesta
Definisci il campo [Calendario::data;$campo+1]
Exit Loop If [Calendario::data;Data(12;31;2007)]
End Loop

Lo script si ferma al 31/12/2007
_________________
FM8.03 Adv. MacOSX 10.4.9

cappello
Messaggi: 137
Iscritto il: giovedì 30 marzo 2006, 2:00
Località: Atina (FR)
Contatta:

Messaggio da cappello » mercoledì 4 aprile 2007, 14:35

Volendo si puo' creare un campo "globale" dove inserisci la data in cui vuoi far fermare il calendario e nello script

Loop
Imposta variabile [$campo; Valore:Calendario::data]
Nuovo/Record/richiesta
Definisci il campo [Calendario::data;$campo+1]
Exit Loop If [Calendario::data=Calendario::globale)]
End Loop

si ferma il giorno della data del globale.
Grazie per lo spunto.
Nunzio

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

Messaggio da raybaudi » mercoledì 4 aprile 2007, 16:13

cappello ha scritto: Ho provato con la tua soluzione ma non va...
Da sempre, prima di postare uno script od un calcolo, lo provo...

Se vuoi posso anche mandarti il file che ho creato.
Raybaudi FMP 12 Adv. Windows XP SP3

cappello
Messaggi: 137
Iscritto il: giovedì 30 marzo 2006, 2:00
Località: Atina (FR)
Contatta:

Messaggio da cappello » mercoledì 4 aprile 2007, 16:26

raybaudi ha scritto:
cappello ha scritto: Ho provato con la tua soluzione ma non va...
Da sempre, prima di postare uno script od un calcolo, lo provo...

Se vuoi posso anche mandarti il file che ho creato.
Ci credo, volevo solo dire che io non ero riuscito a farlo funzionare.
Se me lo invii ti ringrazio così riesco a capire dove sbagliavo nel ricopiare il tuo script.
Comunque con il tuo aiuto sono riusctito a trovare un'altra soluzione.
L'importante è il risultato. Ciao e grazie aancora.
Nunzio
_________________
FM8.03 Adv. MacOSX 10.4.9

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

Messaggio da raybaudi » mercoledì 4 aprile 2007, 17:06

... nel tuo profilo NON hai inserito la tua e-mail
Raybaudi FMP 12 Adv. Windows XP SP3

cappello
Messaggi: 137
Iscritto il: giovedì 30 marzo 2006, 2:00
Località: Atina (FR)
Contatta:

Messaggio da cappello » mercoledì 4 aprile 2007, 17:24

Pensavo fosse attivato. Ho provveduto ad aggiornare il profilo.
_________________
FM8.03 Adv. MacOSX 10.4.9

Rispondi