Pagina 1 di 1
[Base][Macro][LO] Compilare un campo tipo DATE
Inviato: mercoledì 19 gennaio 2022, 17:13
da charlie
In LibreOffice si può compilare un campo di tipo DATE usando il metodo
Ad esempio, queste righe di codice inseriscono la data di sistema nel campo "Data" di un formulario:
Codice: Seleziona tutto
Sub Leggi_data
oForm=thisComponent.drawpage.forms.getByName("MainForm")
oData=oForm.getByName("Data")
dim unoDate As NEW com.sun.star.util.Date
oData.BoundField.updateDate( unoDate )
oForm.updateRow()
End Sub
Re: [Base][Macro][LO] Compilare un campo tipo DATE
Inviato: lunedì 28 marzo 2022, 18:29
da Rafkus_pl
Il metodo presentato da @charlie funziona solo in LibreOffice, vorrei mostrarti un modo che funziona sia in OpenOffice che in LO:
Codice: Seleziona tutto
Sub Leggi_data
Dim oDrawPage As Variant
Dim oForms As Variant
Dim DT As Variant
oDrawPage = ThisComponent.DrawPage.Forms
oForms = oDrawPage.getByName("MainForm")
Dim unoDate As NEW com.sun.star.util.Date
DT = Now()
unoDate.Year = Year(DT)
unoDate.Month = Month(DT)
unoDate.Day = Day(DT)
oForms.updateDate(oForms.findColumn("Data"), unoDate)
oForms.updateRow()
end sub
Apportando lievi modifiche a questo codice, puoi adattarlo al campo dell'ora:
Codice: Seleziona tutto
Dim unoDate as new com.sun.star.util.Time
DT = Now()
unoDate.Hours = Hour(DT)
unoDate.Minutes = Minute(DT)
unoDate.Seconds = Second(DT)
oForms.updateTime(oForms.findColumn("Time"), unoDate)
E anche i campi del timestamp:
Codice: Seleziona tutto
Dim unoDate as new com.sun.star.util.DateTime
DT = Now()
with unoDate
.Year = Year(DT)
.Month = Month(DT)
.Day = Day(DT)
.Hours = Hour(DT)
.Minutes = Minute(DT)
.Seconds = Second(DT)
end with
oForms.updateTimestamp(oForms.findColumn("DataTime"), unoDate)
Nota: i nomi dei campi "Data", "Time" e "DataTime" sono i nomi dei campi della tabella di origine.
Scrivo con l'aiuto di google traduttore, quindi mi scuso per eventuali errori.