помогите, пожалуйста, со следующей проблемой: у меня есть 2 формы: "EmpsAll" (все сотрудники) и EmpsDocs (сотрудники, которые, например, подписали документ в компании). И мне нужно создать представление, чтобы отображать имя сотрудника в первом столбце, а логическая информация (0 или 1) зависит от того, находится ли сотрудник в базе EmpsDocs (если сотрудник находится в EmpsDocs, то возвращает 1, если не возвращает 0). Возникает вопрос: можно ли ввести формулу @BDLookup во второй столбец для расчета значения (0 или 1) индивидуально для каждого сотрудника в представлении?
Lotus: @DBlookup для каждой видимой строки
Ответы (3)
Вы не можете использовать @DBLookup в формуле столбца представления. Хорошей альтернативой является написание запланированного агента, который перебирает все документы в одном представлении, выполняет @DBLookup и изменяет значение в документе.
Хорошей новостью является то, что ваше представление работает быстро, так как нет поиска, но плохо то, что ваше представление показывает моментальный снимок состояния всех документов во времени.
Вы можете сделать это внутри элемента управления повторением с помощью XPages, если это возможно.
Я прочитал, что вы пытаетесь сделать. Вам нужно запустить агент (когда вы отправляете подписанные документы), чтобы просто открыть документ сотрудника и изменить логическое значение, чтобы оно отображалось соответствующим образом в представлении. Запланированный агент, конечно, не ответ.
Вам также следует заглянуть на http://www.codestore.net/ и посмотреть, есть ли что-нибудь похоже на то, что вы пытаетесь сделать уже в песочнице Джейка. Особенно в тех nsf, которые используют Json и агентов для взаимодействия с представлениями в DOM веб-приложения.
Пожалуйста, ознакомьтесь с http://www.codestore.net/apps/contacts.nsf/ его можно загрузить, и, вероятно, вам нужно будет добавить пару функций ajax в сотрудника (в примере клиент) при подписании этих документов. Таким образом, вы можете либо запускать агенты условно (если у сотрудника есть флаг для отправки этих документов, подписанных или нет, затем запускать или не запускать логический сеттер для документа сотрудника), либо запускать агент с помощью ajax.