База Libreoffice: нужна сегодняшняя дата в качестве значения по умолчанию в поле формы

2112
bob.sacamento

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

0

2 ответа на вопрос

1
Salvador

Этот макрос записывает сегодняшнюю дату в поле даты 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
Jim K

Используйте следующий код макроса. Здесь столбец таблицы (не имя элемента управления) называется «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 

Отредактируйте форму и в свойствах формы назначьте макрос событию «после изменения записи».

form properties

Теперь, когда дата записи пуста, например, когда начинается новая запись, поле даты должно по умолчанию соответствовать текущей дате.

На форуме openoffice есть несколько дискуссий на эту тему:

Спасибо, но не так много прогресса. Теперь я получаю 25 декабря 1899 года. Эй, по крайней мере, это Рождество! Проверим ваши ссылки. bob.sacamento 7 лет назад 0
Возможно, есть что-то другое в настройках даты вашей системы или в элементе управления? Это сработало на моей машине. Попробуйте изменить `" ГГГГ-ММ-ДД "` на другой формат - буквально в тексте элемента управления датой "25 декабря 1899" написано? Шахта показывает формат "01.02.17". Чтобы найти проблему, может помочь `MsgBox (dateStamp)` и `MsgBox (oForm.getString (lDateCol))`. Jim K 7 лет назад 0
Ну, как бы я ни форматировал, это та дата. Ну, так как я пробую несколько разных вещей, это меняется. На самом деле получил 1 января 0002 один раз и несколько других странных. Я новичок в этом. Не знаю, что вы подразумеваете под MsgBox (). Но спасибо! bob.sacamento 7 лет назад 0
э-э-о. Теперь я получаю сообщение об ошибке «Ошибка вставки новой записи / java.lang.IllegalArgumentException» bob.sacamento 7 лет назад 0
Например, добавьте `MsgBox (dateStamp)` на следующей строке после `dateStamp = Format (Now," YYYY-MM-DD ")`. Ошибка может указывать, что формат еще не правильный. Jim K 7 лет назад 0
Присоединитесь к этому чату, и мы надеемся, что мы сможем выяснить проблему: http://chat.stackexchange.com/rooms/52946/superuser-question-1174199 Jim K 7 лет назад 0

Похожие вопросы