verifica di campo DATA

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

Moderatore: Moderatori

Idila
Messaggi: 45
Iscritto il: sabato 14 maggio 2005, 2:00

verifica di campo DATA

Messaggio da Idila » lunedì 3 ottobre 2005, 8:51

ciao a tutti :P

ho un problema con la verifica di un campo data:
devo richiedere che la data sia scritta così: 2005/09/29 (aaaa/mm/gg)
il menu per l'opzioni di verifica mi offre tale controllo (data dell'anno a 4 cifre) ma solo secondo la impostazione del mio computer che è 29/09/2005 (gg/mm/aaaa)

Come posso fare senza dover allestire campi separati per giorno, mese e anno?

Grazie a tutti per un aiuto :D

P.S. Pensavo a una verifica mediante formula, tipo:
Sinistra (CAMPO DATA;4) = numerico, ma non so come posso esprimere in formula la parola "numerico", forse con le funzioni
Intero (numero) e Lunghezza (testo) = 4 ??? 8O
abbiate pazienza con i miei errori ... l'italiano e FM non sono la mia madrelingua

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

Messaggio da raybaudi » lunedì 3 ottobre 2005, 12:13

Ciao, Idila

quando dici:
devo richiedere che la data sia scritta così: 2005/09/29 (aaaa/mm/gg)
intendi dire che l'utente deve inserire in quel modo la data ?
( in questo caso deve essere inserita in un campo testo)

oppure vuoi che comunque venga inserita la data, alla fine ti ritrovi la data scritta in quel modo ?
(in questo caso avrai bisogno di un campo calcolato con risultato testo)

Fammi sapere
Raybaudi FMP 12 Adv. Windows XP SP3

Superp
Messaggi: 243
Iscritto il: martedì 23 settembre 2003, 2:00
Località: Buggiano (Pt)
Contatta:

Messaggio da Superp » lunedì 3 ottobre 2005, 13:21

Effettivamente se vuoi creare una verifica per il campo data in modo che sia formattato in quel modo dovresti usare una cosa del genere nelle opzioni di verifica del campo (che come ti ha detto il mitico Raybaudi deve essere un campo testo):

Posizione( data; "/" ; 1; 1) = "5" and
Posizione( data; "/" ; 1; 2) = "8" and
Sinistra( TestoANumero(data) ; 4) > 1000 and
Mezzo( TestoANumero(data) ; 5; 2) >= 1 and
Mezzo( TestoANumero(data) ; 5; 2) <= 12 and
Destra( TestoANumero(data) ; 2) >= 1 and
Destra( TestoANumero(data) ; 2) <= 31 and
Lunghezza (data) = 10

Comunque rimarrebbero dei problemi per verificare che quaòcuno non inserisca che so' ... il 31 febbraio e allora dovresti farti un altro campo calcolato con risultato data tipo:

TestoAData(Destra( data; 2) &"/" & Mezzo( data; 6; 2) &"/" & Sinistra( TestoANumero(data); 4))

dopodiche' devi trovare una "scusa" per controllarlo (non credo che i campi calcolati abbiano opzioni di verifica) o usare un plug in che ti verifica la data calcolata all' uscita dal campo data che viene inserito manualmente (ce ne dovrebbe essere anche uno free)
- PMP 8.5 Adv Win -

Idila
Messaggi: 45
Iscritto il: sabato 14 maggio 2005, 2:00

Messaggio da Idila » giovedì 6 ottobre 2005, 17:41

raybaudi ha scritto:intendi dire che l'utente deve inserire in quel modo la data ?
sì ...
Superb ha scritto:dovresti usare una cosa del genere ...
sì 8O wauuu, capisco, penso sempre che in un software come FM ci debbano essere opzioni con vie più "brevi", ma vedo che alla fine ci vogliono sempre le "solite" formule da liceo

faccio così ...

siete tutti e due mitici :P grazie!!!!

no, i campi calcolati non si possono far verificare (purtroppo), almeno non attraverso il menu
per un plug in mi informerò, so dove ... grazie
abbiate pazienza con i miei errori ... l'italiano e FM non sono la mia madrelingua

Superp
Messaggi: 243
Iscritto il: martedì 23 settembre 2003, 2:00
Località: Buggiano (Pt)
Contatta:

Messaggio da Superp » venerdì 7 ottobre 2005, 0:53

Mai al livello del gentilissimo Daniele che in piu' di una occasione mi ha levato dagli impacci.

Facci sapere se trovi una soluzione migliore.

Ciao
- PMP 8.5 Adv Win -

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

Messaggio da raybaudi » venerdì 7 ottobre 2005, 10:44

Ciao, Idila

lascia perdere i plugin !
FM7/8 consente di fare cose che il vecchio, caro FM6 non poteva fare !

Allora, l'utente deve inserire la data in quel modo (barbaro) e gliela lasciamo inserire in un normale campo testo: dataIdila

Poi definiamo un nuovo campo data: ControlloDataIdila (non calcolato), ma con calcolo proposto sostituisce valore esistente:
Destra( dataIdila; 2) &"/" & Mezzo( dataIdila; 6; 2) &"/" & Sinistra( dataIdila; 4)
Nelle opzioni di verifica di questo campo spuntiamo:
1) solo durante immissione dei dati
2) togliamo il flag al consenso all'utente di ignorare gli avvisi
3) tipo di dati restrittivo: data dell'anno a quattro cifre
4) verificato mediante calcolo e calcolo: EValido ( ControlloDataIdila )
5) visualizza messaggio personalizzato se la verifica fallisce:
"La data non è stata inserita correttamente !
Deve essere una data valida nel formato: AAAA/MM/GG"

Nota: quest'ultimo campo può (te lo consiglio) non essere presente nel formato !

Alla prossima :wink:
Raybaudi FMP 12 Adv. Windows XP SP3

Idila
Messaggi: 45
Iscritto il: sabato 14 maggio 2005, 2:00

Messaggio da Idila » martedì 11 ottobre 2005, 11:35

... letto solo adesso :D avevo pensato a una soluzione come la tua, ma mi viene sempre il dubbio di non sfruttare possibilità più opportune e mi forzo di trovare formule e opzioni più complicate :D
grazie per l'ottima spiegazione, mi pare la soluzione migliore, cosi l'utente non deve correggere o leggere messaggi personalizzati e altre cose complicate.
abbiate pazienza con i miei errori ... l'italiano e FM non sono la mia madrelingua

Idila
Messaggi: 45
Iscritto il: sabato 14 maggio 2005, 2:00

Messaggio da Idila » martedì 25 ottobre 2005, 16:17

ripesco il mio vecchio topic perchè ho nuovi dubbi relativi al controllo di una data ed altre cose ...
spero che trovate la pazienza per rispondermi ancora

Superp aveva proposto (sopra) questa funzione: TestoANumero(data)
da me (FM7) non esiste TestoANumero e non viene accettata
e non trovo niente di simile, a che cosa potrebbe corrispondere?

lo chiedo perché suppongo che si tratti della possibilità di controllo di caratteri numerici
non mi serve per il problema esposto sopra, funziona anche con la funzione RicavaComeNumero in sostituzione di TestoANumero
ma forse sarebbe opportuno per un campo di data storica come per
esempio: 4 d.C.

le sigle obbligatorie d.C. oppure a.C. riesco già a controllare
per il controllo delle cifre uso per adesso Sinistra (Posizione) e
Filtro (data; "abcd ... ecc.") = ""
faccio bene o c'è un modo più coretto come per esempio con una funzione che controlla caratteri numerici (e che non trovo)?



P.S. alla fine ho applicato la formula proposta da Superp semplicemente per evitare la creazione di "sottocampi" visto che ne ho già oltre 250 nella stessa tabella (burocrazia italiana) ... funziona perfettamente

la soluzione proposta da raybaudi invece mi riservo ai casi irrisolvibili altrimenti, una soluzione davvero galante, p.e. per poter realizzare un doppio controllo che OPZIONI CAMPO mi pare non permetta (calcolo + lista valori se un certo risultato), ma lo devo ancora fare ...
abbiate pazienza con i miei errori ... l'italiano e FM non sono la mia madrelingua

gmaritano
Messaggi: 5
Iscritto il: lunedì 22 agosto 2005, 2:00

RicavaComeNumero in sostituzione di TestoANumero...

Messaggio da gmaritano » mercoledì 26 ottobre 2005, 12:44

Ciao Idila!
Credo che tu abbia ragione! Ma utilizzo FM in inglese ed, in questo caso sarebbe GetAsNumber(text).
Per il resto... non so! Sono molto "junior" con 'sto coso!
ciao ciao
gianca

Idila
Messaggi: 45
Iscritto il: sabato 14 maggio 2005, 2:00

Messaggio da Idila » mercoledì 26 ottobre 2005, 13:25

grazie gmaritano,

sapendo che una capacità utilissima di FM è tradurre i comandi "stranieri" nella lingua del Software FM installato, ho inserito GetasNumber nel calcolo:
FM lo ha accettato e trasformato automaticamente in: RicavaComeNumero
perciò alla fine ho fatto istintivamente bene
(ops, non è che sto diventando un genio FM :roll: ........ :lol: nono, purtroppo non c'è nessun pericolo)

se qualcuno sappia un'altra funzione tipo: "Controlla che siano tutti numeri"
sarei sempre contenta di un consiglio ...
abbiate pazienza con i miei errori ... l'italiano e FM non sono la mia madrelingua

Rispondi