Новое в базе libreoffice. Я нашел, как установить значение по умолчанию в таблице на текущую дату. Теперь мне нужно, чтобы текущая дата отображалась в соответствующем поле формы. Я попытался вставить в "значение по умолчанию" TODAY()
и CURRENT_DATE
. Они оба дают мне 18 ноября 1899 года по какой-то причине. А идеи как это сделать?
2 ответа
1
Этот макрос записывает сегодняшнюю дату в поле даты myDateField
:
Sub writeDate
Dim today As New com.sun.star.util.Date
today.Month = Month( Now )
today.Day = Day( Now )
today.Year = Year( Now )
form = ThisComponent.DrawPage.Forms(0) ' first form
form.myDateField.BoundField.UpdateDate( today )
End Sub
Чтобы назначить действие: Навигатор форм> myForm> Свойства формы> События> Например, при загрузке
0
Используйте следующий код макроса. Здесь столбец таблицы (не имя элемента управления) называется "MyDate".
Sub DefaultDateInForm (oEvent As Object)
oForm = oEvent.Source
lDateCol = oForm.findColumn("MyDate")
If oForm.getString(lDateCol) = "" Then
dateStamp = Format(Now, "YYYY-MM-DD")
oForm.updateString(lDateCol, dateStamp)
End If
End Sub
Отредактируйте форму и в свойствах формы назначьте макрос событию "после изменения записи".
Теперь, когда дата записи пуста, например, когда начинается новая запись, поле даты должно по умолчанию соответствовать текущей дате.
На форуме openoffice есть несколько дискуссий на эту тему: