#lotus-notes
#lotus-notes
Вопрос:
В моем приложении Lotus Notes есть 2 поля, ContactName
и CompanyName
.
CompanyName
создайте формулу преобразования входных данных, которая будет проверять данные в ContactName
для ссылки на представление, которое затем выдаст CompanyName
эти данные.
Company:= @Unique(@DbLookup("";@DbName;"Visitor List 1";@Text(ContactName);2));
@If(CompanyName = ""; @If(ContactName != ""; Company[1];"");@Text(companyname))
Однако возникает проблема с тем, что она не отображается автоматически, если только я не щелкну по другому полю, только тогда появятся данные. Мой план заключается в том, чтобы данные отображались быстро, как только я закончу заполнять ContactName
Для тестирования я попытался переместить приведенную выше формулу из CompanyName
в ContactName
, чтобы посмотреть, может ли реакция сработать быстрее. Вроде как да. Если я просто скопирую и вставлю формулу как есть, CompanyName
данные просто переопределят ContactName
данные.
Я изменил его на:
Company:= @Unique(@DbLookup("";@DbName;"Visitor List 1";@Text(ContactName);2));
@If(CompanyName = ""; @Text(CompanyName = @If(ContactName != ""; Company[1];""));@Text(companyname))
Но это просто немедленно выдает ContactName
значение 0. Что еще я могу сделать, чтобы изменить формулу?
Комментарии:
1.
ContactName
это список значений?2. Это поле в форме. Но у меня есть представление, которое компилирует свои данные из всех документов в базе данных, на которые затем ссылаются с помощью формулы. То же самое относится и к
CompanyName
. Как это работает, когда я ввожуContactName
,CompanyName
затем выполняется поиск в созданном мной представлении, чтобы найти последний сохраненный документ с соответствующимContactName
, скопируйтеCompanyName
данные и вставьте их в текущееCompanyName
поле.
Ответ №1:
У меня иногда возникала ваша проблема, и в зависимости от типа поля вы можете настроить его так, чтобы обновлять форму при ее изменении или принудительно выполнять то же самое с помощью lotuscript
.
Когда ваше поле представляет собой список
Когда у вас есть поле списка, вы можете настроить его как показано на рисунке.
Когда ваше поле представляет собой текстовое поле
Я думаю, это ваш случай, и вы можете принудительно обновить, как при использовании F9 with lotuscript
, чтобы в поле было какое-то событие, в котором вы можете разработать свое решение, и одно из них Exiting
, вы можете попробовать это, чтобы принудительно обновить форму полностью, когда пользователь выходит из поля:
Dim ws As New NotesUIWorkspace
Dim uidoc As NotesUIDocument
Set uidoc = ws.Currentdocument
Call uidoc.Refresh
Call uidoc.RefreshHideFormulas
Call uidoc.Reload
Комментарии:
1. Настройки параметров очень помогают. Но, похоже, возникает проблема, если я захочу изменить данные
CompanyName
, они автоматически вернутся к значению, которое они дают мне из своего автоматического поиска. Скажем, например, выборContactName
[Lee] дает мнеCompanyName
[Z]. Если я захочу изменитьCompanyName
на [ZI], поле просто вернется к [Z] для меня. Есть ли возможность предотвратить это?2. Два способа: настроить поле подобным образом
computed when composed
или сохранить первое значение в другом поле при сохранении формы.