Новое в базе libreoffice. Я нашел, как установить значение по умолчанию в таблице на текущую дату. Теперь мне нужно, чтобы текущая дата отображалась в соответствующем поле формы. Я попытался вставить в "значение по умолчанию" TODAY() и CURRENT_DATE . Они оба дают мне 18 ноября 1899 года по какой-то причине. А идеи как это сделать?

2 ответа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 есть несколько дискуссий на эту тему:

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .