Форум продуктов IBM Lotus
Общие вопросы => Разработка приложений => Тема начата: G777 от 04 Май 2010, 16:25:12
-
Здравствуйте!
Помогите, пожалуйста, разобраться с поиском в Представлении.
Бьюсь с этой проблемой уже несколько дней, ничего не получается.
Есть обычная форма где поле с Фамилиями ‘SurN’
Есть обычное Представление где эти формы отображаются с показом Фамилий
Запись вроде находит но не отображает
Dim session As New NotesSession
Dim db As NotesDatabase
Dim view As NotesView
Dim entry As NotesViewEntry
Dim vc As NotesViewEntryCollection
Dim parentV As NotesView
Dim doc As NotesDocument
Set db = session.CurrentDatabase
Call db.UpdateFTIndex( True )
Set view = db.GetView("tell")
strCSAName="Иванов"
strSearchKey = |FIELD SurN="| + strCSAName + |"|
Call view.FTSearch( strSearchKey , 0 )
Call view.Refresh
-
Добрый день!
Скриптом вы работаете с классом NotesView, т.е. с back end'ом. Результат содержится в памяти, он не отображается пользователю.
Класс NotesUIView (front end, тот вид, с которым работает пользователь) не позволяет производить по нему поиск.
Для решения проблемы вы можете:
- создать папку (Folder) с тем же дизайном, что и у вашего вида;
- получить коллекцию документов в результате поиска по NotesView (аналогично тому как вы делаете);
- используя метод PutAllInFolder, поместь документы из коллекции в папку;
- показать пользователю эту папку.
и перед каждым поиском нужно не забывать очищать папку.
-
ViV,
Спасибо за ответ!
Однако когда используешь стандартный поиск по полю, этот поиск выдаёт результат.
Неужели нельзя повторить это программно?
-
- показать пользователю эту папку.
а как показать эту папку и потом снова вернуться к основному представлению?
-
Я пытаюсь это сделать, все находиться и копируется в папку, но как открыть и показать эту папку пользователю
Dim session As New NotesSession
Dim db As NotesDatabase
Dim view As NotesView
Dim vc As NotesViewEntryCollection
Set db = session.CurrentDatabase
Set view = db.GetView("pred")
Set collection = db.FTSearch( "петров", 20 )
Call collection.RemoveAllFromFolder( "folder_pred" )
Call collection.PutAllInFolder( "folder_pred" )
-
Можно папку внедрить на страницу и показать ее:
notesUIWorkspace.OpenPage( pagename$ )
-
Viv, спасибо Вам за ответ!
Пробовал со страницей, но не получается, не представляю как это сделать.
Я добавил ещё команды, папка открывается отдельно в новом окне но не активна (при False и True OpenView третьего параметра).
Call collection.RemoveAllFromFolder( "folder_pred" )
Call collection.PutAllInFolder("folder_pred")
Call uidb.OpenView("folder_pred", s, False)
Как бы сделать так чтобы открывалась эта папка как положено перед пользователем,
чтобы не нужно было переключаться вручную с одной папки на другую?
Как переходить с одной папки на другую программно?