Calcolo con campi di tipo "data"
Calcolo con campi di tipo "data"
Ciao a tutti,
in una tabella del mio database vorrei ottenere un campo "ritardo" (in giorni) calcolato come differenza tra la data attuale e la data di scadenza.
Se il risultato è negativo significherebbe che la data di scadenza è successiva alla data attuale quindi è da considerare zero.
E' fattibile ?
Ho letto il seguente topic
http://user.services.openoffice.org/it/ ... =13&t=1608
che parla di come utilizzare un campo calcolato in un formulario, ma non sono riuscito ad adattarlo alle mie esigenze perchè in quel caso si tratta di operazioni tra campi di una tabella esistenti.
Nel mio caso invece la data attuale è un campo che dovrei ottenere nel momento in cui viene richiesto il ritardo...non so se mi spiego
in una tabella del mio database vorrei ottenere un campo "ritardo" (in giorni) calcolato come differenza tra la data attuale e la data di scadenza.
Se il risultato è negativo significherebbe che la data di scadenza è successiva alla data attuale quindi è da considerare zero.
E' fattibile ?
Ho letto il seguente topic
http://user.services.openoffice.org/it/ ... =13&t=1608
che parla di come utilizzare un campo calcolato in un formulario, ma non sono riuscito ad adattarlo alle mie esigenze perchè in quel caso si tratta di operazioni tra campi di una tabella esistenti.
Nel mio caso invece la data attuale è un campo che dovrei ottenere nel momento in cui viene richiesto il ritardo...non so se mi spiego
Ultima modifica di fulk il venerdì 22 aprile 2011, 12:06, modificato 2 volte in totale.
OpenOffice 3.3.0 su Windows 7 Professional 64bit
-
- Messaggi: 62
- Iscritto il: lunedì 21 febbraio 2011, 7:00
Re: Calcolo con campi di tipo "data"
questa macro che allego è collegata all'evento 'carica formulario' e sulla base della data di oggi ('dataprestito') e della durata del prestito ('durata')(modificabile) inserisce la data di scadenza del prestito ('scadenza'). ti può servire?
ciao'EVENTO AL CARICAMENTO DEL FORM PRESTITI
sub CaricaPrestiti
dim doc as object
dim docCrl as object
dim Forms as object
dim Form as object
Doc = StarDesktop.CurrentComponent
DocCrl = Doc.getCurrentController()
Forms = Doc.Drawpage.Forms
Form = Forms.GetbyName("Standard")
'form.getbyname("durata").text=15 'INSERISCE LA DURATA STANDARD (come vedi è commentato(') perchè è inserito da form 'valore predefinito', ma all'uopo..
form.getbyname("DataPrestito").text=date() 'INSERISCE LA DATA DI OGGI NELLA CASELLA 'dataprestito'
form.getbyname("Scadenza").text=date()+val(form.getByname("durata").text) 'CALCOLA E INSERISCE LA DATA DI SCADENZA NELLA CASELLA 'scadenza'
end sub
' funzione per modificare la durata con conseguente modifica della scadenza del prestito
sub mod_durata
dim doc as object
dim docCrl as object
dim Forms as object
dim Form as object
Doc = StarDesktop.CurrentComponent
DocCrl = Doc.getCurrentController()
Forms = Doc.Drawpage.Forms
Form = Forms.GetbyName("Standard")
form.getbyname("Scadenza").text=date()+val(form.getByname("durata").text)
end sub
open office 3.2.1
window 7
window 7
Re: Calcolo con campi di tipo "data"
Ti ringrazio molto per la risposta.
Più o meno è quello che mi serviva (anche se vorrei effettuare il calcolo a livello di tabella, non di form).
Direi che l'argomento inerente al topic è liquidato
Più o meno è quello che mi serviva (anche se vorrei effettuare il calcolo a livello di tabella, non di form).
Direi che l'argomento inerente al topic è liquidato
OpenOffice 3.3.0 su Windows 7 Professional 64bit
Re: Calcolo con campi di tipo "data"
Altro che liquidato..pareva troppo semplice...sto impazzendofulk ha scritto:Ti ringrazio molto per la risposta.
Più o meno è quello che mi serviva (anche se vorrei effettuare il calcolo a livello di tabella, non di form).
Direi che l'argomento inerente al topic è liquidato
Vediamo se qualche anima pia riesce ad aiutarmi..
L'intenzione penso sia ormai chiara, effettuare un'operazione di differenza tra due date per calcolare un eventuale ritardo.
La data attuale la riesco a memorizzare in una variabile di tipo stringa:
Codice: Seleziona tutto
Dim sCurrentDate as string
sCurrentDate = date()
Per leggere la data_scadenza dal database sto seguendo due possibilità (anche se nessuna mi ha ancora portato alla soluzione)
1) memorizzarla in una variabile di tipo string
2) memorizzarla in una variabile di tipo object
Nel primo caso il codice che utilizzo è il seguente:
Codice: Seleziona tutto
Dim sExpiryDate as string
sExpiryDate = oRowSet.Columns.getByName("data_scadenza").String()
Ho provato a modificare la formattazione del campo nella tabella mettendolo come data GG/MM/AAAA ma leggendolo da codice risulta sempre AAAA-MM-GG.
Nel secondo caso il codice che utilizzo è il seguente:
Codice: Seleziona tutto
Dim oExpiryDate as object
oExpiryDate = oRowSet.Columns.getByName("data_scadenza").String()
Il problema rimane sempre lo stesso...avrei bisogno del ritardo in giorni calcolato come differenza tra data_corrente e data_scadenza ma con i campi in quei formati non riesco a fare alcun tipo di operazione..
OpenOffice 3.3.0 su Windows 7 Professional 64bit
Re: Calcolo con campi di tipo "data"
Per ora ho bypassato il problema con questo codice...:
Non mi piace per niente ma non ho trovato di meglio..
Se a qualcuno venisse qualche idea migliore sarebbe il benvenuto
Salute a tutti !
Codice: Seleziona tutto
dim dCurrentDate as date
dim dExpiryDate as date
dim oExpiryDate as object
dCurrentDate = date() 'acquisizione data attuale
oExpiryDate = oRowSet.Columns.getByName("data_scadenza") 'acquisizione data da tabella
dExpiryDate = oExpiryDate.Date().Day & "/" & oExpiryDate.Date().Month & "/" & oExpiryDate.Date().Year 'conversione data da object a date
iDelay = dCurrentDate - dExpiryDate 'calcolo ritardo in giorni se negativo allora significa che la data di scadenza non è ancora stata superata
Se a qualcuno venisse qualche idea migliore sarebbe il benvenuto
Salute a tutti !
OpenOffice 3.3.0 su Windows 7 Professional 64bit
Re: Calcolo con campi di tipo "data"
AOO 3.4.1 AOO341m1(Build:9593) Linux Mint Debian/Mate 64bit java 1.6.0.22 XP PRO/32bit
con Base --> sempre backup!!!
Se problema è Risolto --> Inserire [Risolto]nel titolo come spiega qui, grazie
con Base --> sempre backup!!!
Se problema è Risolto --> Inserire [Risolto]nel titolo come spiega qui, grazie
Re: Calcolo con campi di tipo "data"
Grazie vladko !
Avevo già valutato questa possibilità ma non essendo riuscito ad utilizzarla subito per i miei scopi la avevo abbandonata.
Provo a tornarci su !
Avevo già valutato questa possibilità ma non essendo riuscito ad utilizzarla subito per i miei scopi la avevo abbandonata.
Provo a tornarci su !
OpenOffice 3.3.0 su Windows 7 Professional 64bit