У меня есть настраиваемый элемент управления с полем, в котором пользователь вводит идентификатор документа (а не идентификатор примечания или UNID, только уникальный номер). Этот источник данных называется document1. Когда они выходят из поля, я выполняю поиск и показываю либо документ с этим идентификатором, либо новый документ в элементе управления диалоговом окне extlib (источник данных bundleDoc). Когда bundleDoc сохраняется, я хочу обновить поле журнала в документе1, чтобы указать, что был добавлен документ пакета.Диалоговое управление не может видеть второй источник данных на XPage
Я могу сохранить bundleDoc и закрыть (скрыть) диалог, но код в моем Сохранить & Закрыть кнопку в диалоговом окне не может «видеть» document1. Я не могу ссылаться на него, используя document1.getItemValueString или getComponent. GetItemValueString возвращает и пустую строку, а getComponent выдает ошибку, потому что возвращаемое значение равно null.
Я бы разместил изображение, чтобы помочь визуально, но у меня пока нет достаточной репутации. :( Что мне не хватает? Не могу ли я получить документ1 из диалогового элемента управления, так как он находится на том же XPage?
UPDATE: Два поля в форме диалога вычислено значения по умолчанию, которые используют getComponent для получить их значения из документа 1. Таким образом, по крайней мере, когда диалог загружен, он может видеть документ 1. Кроме того, bundleDoc не определяется как источник данных для диалогового элемента управления. Я постараюсь, чтобы это было завтра, чтобы узнать, не имеет значения.
UPDATE 2: все еще недостаточно репутации для публикации изображения, но вот какой-то код. Это один настраиваемый элемент управления, который содержит диалоговое управление. Document1 определяется как источник данных для настраиваемого элемента управления, а bundleDoc определяется как данные источник для панели в диалоговом управлении, который таблица полей полей для документа пакета.
Поле BundleID в диалоговом управления имеет вычисленное значение по умолчанию с помощью этого:
if (bundleDoc.isNewNote()) {
getComponent("inputBundleID").getValue();
} else {
bundleDoc.getItemValueString("BundleID");
}
Формула для StorageLocationID аналогична за исключением того, что компонент inputStorageTrayID.
Это код в кнопку Закрыть Сохранить &:
bundleDoc.save();
var newArr = new Array(document1.getItemValue("WorkLog"));
newArr.push("Added bundle " + document1.getItemValueString("BundleID") + " - " + session.getCommonUserName());
document1.setValue("WorkLog",newArr);
document1.save();
getComponent("dialog1").hide();
ошибка происходит на document1.save линии, но он не получает BundleID от документа1 (я установить переменную sessionScope к значению newArr и он показал «Добавлен пакет - Аноним».
Дон, вы можете добавить часть своего кода в свой вопрос, чтобы сделать более понятным, что вы пытаетесь сделать? Это поможет вам получить ответ –
Спасибо, Пер. Сегодня утром добавлен код. Надеюсь, это подтолкнет мою репутацию достаточно высокой, чтобы опубликовать изображение контроля, если это необходимо. –