[Risolto]Macro Base data default

Creare una macro - Scrivere uno script - Usare le API
Rispondi
maxrome84
Messaggi: 55
Iscritto il: mercoledì 1 giugno 2016, 18:37

[Risolto]Macro Base data default

Messaggio da maxrome84 »

Salve a tutti, allego il mio database perchè ho un paio di problemi con una macro.In pratica all'apertura del formulario(Nuova fattura) la mia macro imposta il numero progressivo fattura (funziona) e poi anche la data odierna nel campo data fattura.
Il problema è che anche eseguendo il commit come per il progressivo, la data non viene salvata.La visualizza nel campo ma poi non salva.
Secondo problemino , quando apro il formulario nuova fattura in modalità modifica esce l'errore variabile ogetto non impostata alla riga ""oStatement = fattura.ActiveConnection.createStatement().
:crazy:
è qualche giorno che ci sto su ma non ne vengo a capo.Sono nuovo di Base
Grazie a tutti!
Allegati
prova.odb
(49.12 KiB) Scaricato 148 volte
Ultima modifica di maxrome84 il mercoledì 22 marzo 2017, 15:24, modificato 1 volta in totale.
Open Office 4 beta
windows 7
maxrome84
Messaggi: 55
Iscritto il: mercoledì 1 giugno 2016, 18:37

Re: Macro Base data default

Messaggio da maxrome84 »

Per chi fosse interessato ho risolto cosi.
Per l'errore oggetto variabile non impostato ho sostituito quella riga con questa : oStatement=ThisDatabaseDocument.CurrentController.ActiveConnection.CreateStatement

Mentre per la data odierna di default via macro bisogna copiare questa funzione:

Function FunctionData(Fecha As Date) As com.sun.star.util rem.Date
Dim FechaBD As New com.sun.star.util.Date
FechaBD.Year=Year(Fecha)
FechaBD.Month=Month(Fecha)
FechaBD.Day=Day(Fecha)
FunctionData=FechaBD
End Function

e poi per impostare la il campo data :

data = fattura.getByName("DataFattura")
data.BoundField.UpdateDate(FunctionData(Now))

Trovato la soluzione sul forum inglese.Questo mi sembra di aver capito va fatto perchè il database e il linguaggio basic gestiscono le date in modo differente.
Spero sia utile a qualcuno!
Open Office 4 beta
windows 7
Rispondi