Sviluppo4d.it
Sito indipendente di informazioni tecniche per sviluppatori 4th Dimension italiani  

Sviluppatori 4D

Utility 4D

Risorse 4D



4d logo
Naviga: Prev Next

Titolo: Chiedere la data all'utente

Categoria: Codice Ultimo Aggiornamento: 21/05/05


Solitamente l'utente che si vede davanti una finestra di Request che gli chieda l'inserimento di una data è costretto ad inserire 6,8,10 caratteri (con i separatori), con conseguente perdita di tempo, soprattutto se la data da inserire è (relativamente alla data attuale) sempre la stessa: se, ad esempio, l'utente inserisce solitamente la data di inizio del mese corrente o della settimana corrente, possiamo generare delle scorciatoie per avere un vantaggio dalla possibilità di inserire una stringa.
Ecco allora un metodo che gestisce una serie di scorciatoie da tastiera per le date. Le scorciatoie sono:

1) M : la prima data del mese
2) U : l'ultima data del mese
3) A : il primo giorno dell'anno
4) F : l'ultimo giorno dell'anno
5) L : il primo giorno della settimana
6) D : l'ultimo giorno della settimana
7) + : domani
8) - : ieri
9) O : oggi
10) Se l'utente inserisce un numero, viene ritornata la data con il mese e l'anno correnti
11) Se l'utente inserisce un numero, un separatore e un numero, viene ritornata la data con l'anno corrente
12) Altrimenti viene ritornato il risultato della funzione "Date" di 4th Dimension.

Ecco il metodo.


C_TEXT($1)
C_DATE($0)

$currentMonthString_S:=String(Month of(Current date(*)))
$currentYearString_S:=String(Year of(Current date(*)))
$firstDateOfThisMonth_D:=Date("01/"+$currentMonthString_S+"/"+$currentYearString_S)

Case of
    : ($1="O") ` oggi
        $0:=Current date(*)

    : ($1="A") ` primo giorno dell'anno
        $0:=Date("01/01/"+$currentYearString_S)

    : ($1="F") ` ultimo giorno dell'anno
        $0:=Date("31/12/"+$currentYearString_S)

    : ($1="M") ` primo giorno del mese
        $0:=$firstDateOfThisMonth_D

    : ($1="U") ` ultimo giorno del mese
        $0:=Add to date($firstDateOfThisMonth_D;0;1;-1)
           ` ho aggiunto un mese e tolto un giorno

    : ($1="L") ` primo giorno della settimena. Lunedì
        $data_D:=Current date(*)
        $miogiorno_L:=((Day number($data_D))-1)+(7*(Num(((Day number($data_D))=1)))
        $0:=Current date(*)-($miogiorno_L-1)
        `se si vuole Domenica usare direttamente
        `$0:=Current date(*)-(Day number(Current date(*))-1)

    : ($1="D") ` ultimo giorno della settimana. Domenica.
        $data_D:=Current date(*)
        $miogiorno_L:=((Day number($data_D))-1)+(7*(Num(((Day number($data_D))=1)))
        $0:=Current date(*)+(7-$miogiorno_L)
      ` se si vuole Sabato usare direttamente
      ` $0:=Current date(*)+(7-Day number(Current date(*)))

    : ($1="+") `domani
        $0:=Current date(*)+1
    : ($1="-") `ieri
        $0:=Current date(*)-1
    Else `nessuno dei casi precedenti
        $testDate_D:=Date($1)
        If ($testDate_D=!00/00/00!) `se non è una data completa la riempio io
           $1:=$1+"/"+$currentYearString_S
           $testDate_D:=Date($1)
           If ($testDate=!00/00/00!)
           $1:=$1+"/"+$currentMonthString_S+"/"+$currentYearString_S
           $testDate_D:=Date($1)
           End if ` ($testDate_D=!00/00/00!)
        End if ` ($testDate_D=!00/00/00!)
        $0:=$testDate_D
End case



Inviato da: PierPaolo Sichera Visite: 6101

Se accedi con utente e password, puoi aggiungere dei commenti.


Accesso

User: Nuovo
Pass: Accedi

Utenti Registrati

Cerca

Se non trovi le informazioni che cerchi scrivi a aiuto@sviluppo4d.it

4D Principali

4D Discussioni

Faq random


Crediti

Dominio registrato da ZetaNet
Sito realizzato da Nexus srl
4D SQL 11.9.0 offerto da 4D & Italsoftware
Icone di FAMFAMFAM
Moderato da Umberto Migliore
262 utenti registrati

Pagina servita il 29/04/17 alle 23:25:28 Valid HTML 4.01! Valid CSS!

Mutuo Facile, Serie Filmcards, Serie Singloids e altre app di Nexus srl per iPhone e iPad

Cidroid, distributore italiano lettori barcode per Apple iPhone, iPod, iPad della IPC