Принудительный пересчет вычисляемых полей в документе с использованием SSJS

Есть ли способ заставить вычисляемые поля документов пересчитывать из Xpage без сохранения документа?

У меня есть подчиненная форма в базе данных Notes со многими вычисляемыми полями, они содержат некоторые сложные вычисления, включающие расчеты временного диапазона. База данных используется как веб-приложение, так и клиентское. Для пользовательского элемента управления, содержащего поля, я не хочу воссоздавать все вычисления, поэтому вычисляемое текстовое значение должно быть привязано к вычисляемой форме в документе.

В подчиненной форме при вводе информации вычисляемые поля пересчитываются. В пользовательском элементе управления у меня есть кнопка обновления, которая сохраняет источник данных и частично обновляет раздел ввода данных, но это может вызвать некоторые ошибки или конфликты при сохранении документа.

Я воссоздам расчеты, если это будет необходимо, но мне просто интересно, есть ли более изящный способ добиться этого, прежде чем я начну этот процесс?


person Fiona Sheridan    schedule 04.06.2014    source источник


Ответы (2)


Объект DominoDocumentData имеет методы calculateDocument() и doComputeDocument(). Я не уверен, что они делают. Если вы посмотрите на класс вашего XPage/Custom Control в Local\xsp, вы их увидите. Используя имя переменной для вашего источника данных, например. document1, вы сможете получить объект DominoDocumentData и применить его к этому классу.

person Paul Stephen Withers    schedule 04.06.2014
comment
Пол, я искал объект DominoDocumentData, но не смог его найти. Вот путь, который я выбрал: переключиться в представление Package Explorer, развернуть папку Local\xsp, развернуть XPageWithDocDataSource.java и разочароваться, не увидев никакой ссылки на DominoDocumentData !! что мне не хватает? я иду по правильному пути? неправильная перспектива или точка зрения? - person Paul Della-Nebbia; 05.06.2014
comment
Попробуйте создать пустой XPage только с источником данных dominoDocument, и он должен быть у него. В качестве альтернативы используйте поиск Designer, чтобы найти его. Кроме того, похоже, что Javadoc находится в открытом доступе здесь public.dhe.ibm.com/software/dw/lotus/Domino-Designer/JavaDocs/ - person Paul Stephen Withers; 06.06.2014
comment
А, понял теперь. Я остановился слишком рано. Нужно открыть XPageWithDocDataSource.java, щелкнуть правой кнопкой мыши класс в операторе импорта, а затем открыть иерархию типов... очень полезно, спасибо. - person Paul Della-Nebbia; 06.06.2014

Нет такой вещи, как "вычисляемые поля в документе". Документ совершенно не знает, как его элементы получили свои значения. Вычисляемые поля живут в формах. У вас есть 2 варианта (вы можете использовать один или оба).

  • при определении источника данных документа вы можете указать, что формулы выполняются при загрузке и/или сохранении.
  • используйте метод document.computeWithForm NotesDocument
person stwissel    schedule 04.06.2014