Проблемы с отображением результата поиска в Представлении

Автор Тема: Проблемы с отображением результата поиска в Представлении  (Прочитано 11003 раз)

G777

  • Новичок
  • *
  • Сообщений: 9
    • Просмотр профиля
Здравствуйте!
Помогите, пожалуйста, разобраться с поиском в Представлении.
Бьюсь с этой проблемой уже несколько дней, ничего не получается.

Есть обычная форма где поле с Фамилиями ‘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

ViV

  • Global Moderator
  • Профессионал
  • *****
  • Сообщений: 1428
  • Владимир Егоров
    • Просмотр профиля
    • lotusnotes.ru
    • E-mail
Добрый день!

Скриптом вы работаете с классом NotesView, т.е. с back end'ом. Результат содержится в памяти, он не отображается пользователю.
Класс NotesUIView (front end, тот вид, с которым работает пользователь) не позволяет производить по нему поиск.

Для решения проблемы вы можете:
- создать папку (Folder) с тем же дизайном, что и у вашего вида;
- получить коллекцию документов в результате поиска по NotesView (аналогично тому как вы делаете);
- используя метод PutAllInFolder, поместь документы из коллекции в папку;
- показать пользователю эту папку.
и перед каждым поиском нужно не забывать очищать папку.

G777

  • Новичок
  • *
  • Сообщений: 9
    • Просмотр профиля
ViV,

Спасибо за ответ!

Однако когда используешь стандартный поиск по полю, этот поиск выдаёт результат.
Неужели нельзя повторить это программно?

G777

  • Новичок
  • *
  • Сообщений: 9
    • Просмотр профиля

- показать пользователю эту папку.


а как показать эту папку и потом снова вернуться к основному представлению?

G777

  • Новичок
  • *
  • Сообщений: 9
    • Просмотр профиля
Я пытаюсь это сделать, все находиться и копируется в папку, но как открыть и показать эту папку пользователю

   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" )

ViV

  • Global Moderator
  • Профессионал
  • *****
  • Сообщений: 1428
  • Владимир Егоров
    • Просмотр профиля
    • lotusnotes.ru
    • E-mail
Можно папку внедрить на страницу и показать ее:
notesUIWorkspace.OpenPage( pagename$ )

G777

  • Новичок
  • *
  • Сообщений: 9
    • Просмотр профиля
Viv, спасибо Вам за ответ!

Пробовал со страницей, но не получается, не представляю как это сделать.
Я добавил ещё команды, папка открывается отдельно в новом окне но не активна (при False и True OpenView третьего параметра).

Call collection.RemoveAllFromFolder( "folder_pred" )
Call collection.PutAllInFolder("folder_pred")
Call uidb.OpenView("folder_pred", s, False)

Как бы сделать так чтобы открывалась эта папка как положено перед пользователем,
чтобы не нужно было переключаться вручную с одной папки на другую?
Как переходить с одной папки на другую программно?