2015-04-20 1 views
0

Форма содержит «searchInputField» и простую кнопку для нее. Ниже кнопки есть вид.Как указать агент/формулу для получения документов по критериям

Как я могу определить формулу SELECT в VIEW в соответствии с searchInputCriteria? Я хочу обновить VIEW при нажатии кнопки после установки «searchInputField». Это должно быть как простой пользовательский поиск.

На кнопке мыши я сделал:

@SetEnvironment("criteria", "searchInputField"); 
@Command([RunAgent];"searchAgent"); 
@Command([ViewRefreshFields]); 

Мой агент делает:

SELECT @Like(propertyA, @Environment("criteria")); 

Но это ничего не делать. Я новичок в Lotus Notes. Пожалуйста, дайте мне некоторые рекомендации,

Спасибо заранее

+0

Это домашнее задание или так? Он выглядит так похож на http: //stackoverflow.com/q/29747945/2065611 ... –

+1

Я не могу придумать хорошее решение с просто формулой. Вы можете запустить его в базе данных/представлении локали, но это не то, что вы предложите для производства. Используйте папку пользователя и LotusScript с notesDatabase.Search() и notesDocumentCollection.PutAllInFolder(). –

+1

Виды имеют формулу фиксированного выбора. Для его изменения требуется разрешение дизайнера. Стандартные вилены - это общие ресурсы на сервере и не предназначены для динамической модификации для каждого пользователя. Но, подобно предложению Кнут Херманна, вы можете использовать код LotusScript Java для создания или изменения частного представления, которое всегда зависит от пользователя. –

ответ

1

Вы можете использовать скрипт внутри йор кнопки:

Dim db As NotesDatabase 
Dim session As New NotesSession 
Dim uiw As New NotesUIWorkspace 
Dim uidoc As NotesUIDocument 
Dim formula As String 
Dim doc As NotesDocument 
Dim view As NotesView  
Set db=session.CurrentDatabase 
Set uidoc=uiw.CurrentDocument 
Set doc=uidoc.Document 
Set view=db.GetView("MyEmbeddView")  
formula$={SELECT @Like(criteria; "} & doc.searchInputField(0) & {")} 
view.SelectionFormula=formula 

, но он не будет работать в динамическом режиме реального времени, пути. Единственный способ увидеть изменения в надежном способе - закрыть и снова открыть базу данных. Это также очень «дорогой» способ работы с точки зрения производительности. Советуем вам не использовать этот способ работы для изменения вида выбора «на лету». Может быть полезно изменить представления, которые остаются неподвижными некоторое время после изменения. Например: вы можете написать агент, который меняет формулы выбора один раз в месяц или ночью.

В вашем случае я бы посоветовал использовать одиночные виды просмотра или заполнить папку на лету. Представления с одной категорией будут работать намного быстрее, чем вычисление документов в реальном времени для заполнения папки.