Форум программистов, компьютерный форум, киберфорум
HCL Notes: Программирование
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.66/88: Рейтинг темы: голосов - 88, средняя оценка - 4.66
0 / 0 / 0
Регистрация: 20.04.2008
Сообщений: 96

Кастумизация Advanced Search

14.07.2008, 15:17. Показов 16056. Ответов 8
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Всем привет.
Чет не ладится у меня с лотусом... сново прошу помощи
В общем есть желание поменять интерфейс поиска писем в Notes 8. Стандартный поиск реализован как плагин. И он всеж не очень понятен людям привыкшим к The Bat, в котором четко и ясно вводится, в каких полях и что искать, и не надо искать имя поля в куче мусора(я имею ввиду поиск по конкретному полю).
Я попытался написать свой плагин, который использует уже разработанные ibm библиотеки.
Я накопал что основной фасад механизма поиска реализован в плагине com.ibm.rcp.search.engines_1.3.1.2008021 4-1630.jar, а реализация, поиска писем в com.ibm.notes.sharednotescontent_8.0.1.2 0080214-1630. API обоих не документирован - ИМХО, API фасада могли бы и открыть.
На данный момент получилось искать по конкретным полям в All Documents, а хотелось бы чтоб пользователь указывал несколько папок в которых стоит искать,но на это я уже не сильно надеюсь, как минимум хотелось бы узнать как указать в какой папке искать.
Вот.

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

Заранее пасиб.
0
IT_Exp
Эксперт
34794 / 4073 / 2104
Регистрация: 17.06.2006
Сообщений: 32,602
Блог
14.07.2008, 15:17
Ответы с готовыми решениями:

Кастумизация RadioButton
Как изменить внешний вид RadioButton? необходимо поменять вид самого индикатора, а не содержимое/текст. Все осложняется еще тем что это...

Как удалить Piese Search из Google Chrome? Аналогичный Get Search
Аналогичный Get Search.

Пропадает фильтр по дополнительным полям JA K2 Filter and Search Search 1.0.4
Доброго времени суток уважаемые форумчане. Возникла проблема с пропадающим фильтром по дополнительным полям в JA K2 Filter and Search...

8
0 / 0 / 0
Регистрация: 10.09.2005
Сообщений: 560
14.07.2008, 15:28
Цитата Сообщение от SkinGreek
На данный момент получилось искать по конкретным полям в All Documents, а хотелось бы чтоб пользователь указывал несколько папок в которых стоит искать,но на это я уже не сильно надеюсь, как минимум хотелось бы узнать как указать в какой папке искать.
Ты получаешь уоллекцию доков в представлении (пока она у тебя одна)
Пользователю нужно выбрать несколько папок.
Сделай диалог выбора представлений (с возможностью выбрать несолько)

а затем в своем запросе поиска через UI меняй имя папки на последующую

Цикл по колличесву папок
запрос поиска доков

конец поиска доков по первой папке (через колличество доков)

замена имени папки на следующее

Конец цикла по колличесву папок
0
0 / 0 / 0
Регистрация: 20.04.2008
Сообщений: 96
14.07.2008, 17:48
Ок, то есть на IBMском плагине не заморачиватся и делать нечто подобное


Code
1
2
3
4
5
6
7
8
9
10
11
12
    selectedFolders = getSelectedFolders()
Forall f In selectedFolders
Set view = db.GetView(f)
If view.IsFolder Then
view.FTSearch(query)
Set doc = view.GetFirstDocument()
While Not(doc Is Nothyng)
col.AddDocument(doc)
Set doc = view.GetNextDocument(doc)
Wend
End If
End Forall
Единственное всеж не ясно
1 NotesDocumentCollection, в которую я складываю найденные доки так просто не создать, а делать для его создания через db.GetView("tmp").Documents а вотом очищать перед началом поиска не очень то симпотно выглядит
2 Как в дальнейшем отобразить это в виде view? я не разу такого не делал тыкни в док плз где поглядеть про это. В хелпе результаты помещаются в папку. Но создавать папку Search Result как то не красиво, нельзя сделать 2 последовательных поиска и смотреть на наих одновременно. А динамически создать фолдер я тож не нашел,ток view.

Пасиб большое за помощь,хыть новый путь решения проклевывается
0
0 / 0 / 0
Регистрация: 20.04.2008
Сообщений: 96
15.07.2008, 16:51
покопавшись по форуму вроде как стало ясно что для этих целей стоит использовать фолдеры.И вроде как Shared, private on first use.
Попытался.говорит, что я не могу помещать доки в фолдер такого типа.что это значит? Затык на затыке:(
Дальше пытался открывать фолдер через NotesUIDatabase.OpenView. Он конечно не обновился, но надеюсь IsAutoUpdate или что то подобное поможет. Лишь бы сейчас он мне скинул результат.

И еще не совсем ясно, если говорят что использование PutInFolder серьезно сказывается на производительности,почему же я не могу самостоятельно создать коллекцию документов(через New), заполнить ее и воспользоваться PutAllInFolder.как я понимаю она быстрее сработает так как при вставке в фолдер что-то происходит кроме записи инфы о прикреплении данного дока к фолдеру.Ну эт так, риторический вопрос наверное...
0
0 / 0 / 0
Регистрация: 26.05.2006
Сообщений: 1,313
15.07.2008, 23:13
Цитата Сообщение от SkinGreek
почему же я не могу самостоятельно создать коллекцию документов(через New), заполнить ее и воспользоваться PutAllInFolder
Для коллекции метода new (конструктора) не предусмотрено (вроде с какой-то 8-ки д.б.). Для мазохистов есть трюк:

Code
1
set coll = db.Search({@False},nothyng, 0)
А лучше

Code
1
set coll = db.Search({@False}, session.CreateDateTime(now), 0)
0
0 / 0 / 0
Регистрация: 20.04.2008
Сообщений: 96
22.07.2008, 20:08
забросил эту задачу теперь вновь пришлось вернуться...
покопал инет пол дня на тему.
как инстанцировать Shared, private on first use(то есть программно сделать этот "first use") и дальше уже забить каталог результатами.
Но толком так и не нашел решения. В здешнем форуме нашел связанный немного с этим. там инстанцию фолдара делали чере собак, но на сабаках поиск я даже не представляю как делать
Кто делал свой поиск и выводил его на экран в виде view, подскажите плз сам момент отображения результатов.BackEnd вроде отрабатывает нормально, осталось только чтобы SPOFU фолдер инстанцировать да отобразить его.
Так же не ясно почему отказываеться работать

Code
1
Call w.CurrentDatabase.OpenView("ViewOrFolder", , True, True)
Причем не только на моем SPOFU а на любой view

Заранее благодарен за помощь.

ЗЫ: офтоп - как долго нужно ломать свой моск чтоб решать, такие, на первый взгляд, простые задачи. И все ли выжили при этой ломке?:())


Constantin A Chervonenko
почему же для мазохистов,если по отзывам PutInFolder в цикле это ресурсоемкий процесс?:$
Пасиб за прием, буду пользовать при надобности:(
0
0 / 0 / 0
Регистрация: 19.07.2007
Сообщений: 1,098
23.07.2008, 11:45
Создаете на бекенде документик. На форму этого дкумента лепите одно РТ поле. Рисуете в нем таблицу . Каждая строчка в таблице - это ссылка на найденный документ и информация о документе. Открываете его на уи.
0
0 / 0 / 0
Регистрация: 04.12.2004
Сообщений: 3,329
23.07.2008, 11:51
Если нужен поиск в почтовой базе, то можно обычную Shared папку использовать. Всё равно пользователь у базы один. И проблем лишних не будет.
0
0 / 0 / 0
Регистрация: 20.04.2008
Сообщений: 96
23.07.2008, 15:10
Medevic
В принципе да, я перемудрил с приватными в данном случае. Пасиб за то что повернул мыслю в верную сторону
Sandr
Чую мне повезло что в данном случае мне хватит расшареной папки. Если таким методом решается задача кастумезированого поиска документов по общей базе, то мне остается ток молится за свой моск:(
Но решение понятно, рисовать таблицу в RichText и каждый результат поиска - документ.

как я понимаю то что не работает Call w.CurrentDatabase.OpenView("($All)", , True, True) в action для вьюхи это скорее глюк 8-ки, других объяснений я не вижу.
Попытка открыть результаты через Evaluate("@Command([OpenView];""($All)"";"""";1)") тоже ни к чему не привели(

Ну вот вроде получилось открыть результаты... Функционал поиска засунул в агент и его вызывал из экшена через собаку RunAgent. И все ок. Не ругаеться ни на какой контекст.в чем прикол не понимаю . В агенте так и осталось
Call w.CurrentDatabase.OpenView("SearchResult ", , True, True)
Теперь переживаю что будут траблы с диалоговым окном, которое буду вызывать из агента. Думаю что тоже не все так просто получится, лотус просто так не сдается))...

Спасибо за помощь один затык преодолен, скоро ожидаю следующих:^)
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
BasicMan
Эксперт
29316 / 5623 / 2384
Регистрация: 17.02.2009
Сообщений: 30,364
Блог
23.07.2008, 15:10
Помогаю со студенческими работами здесь

New. Google search and search engine spam
Читаем новости из первоисточников: 1. Google search and search engine spam - 1/21/2011 09:00:00 AM Posted by Matt Cutts, Principal...

Почему-то при вызове search->search3 я ничего не могу даже ввести, однако отдельно от search, search3 работает...
Это часть программы. Все работает, но почему то при вызове search->search3 я ничего не могу даже ввести, однако отдельно от search, search3...

Advanced PC Care
Добрый день! Словила что-то - на компе установлены разные лишние программы, интернет открывается только на mail - остальные страницы...

Advanced Format
Недавно прочитал информацию о AF. Там написано: Я использую Win XP. Дак вот если один раздел выравнивать тогда не надо? Если так то...

Не отображается TinyMCE Advanced
Добрый день! Установила на сайт плагин редактора TinyMCE Advanced, а в панели комментариев, данные настройки не отображаются! :(


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
9
Ответ Создать тему
Новые блоги и статьи
Контроль заполнения и очистка дат в зависимости от значения перечислений
Maks 12.04.2026
Алгоритм из решения ниже реализован на примере нетипового документа "ПланированиеПерсонала", разработанного в конфигурации КА2. Задача: реализовать контроль корректности заполнения дат назначения. . .
Архитектура слоя интернета для сервера-слоя.
Hrethgir 11.04.2026
В продолжение https:/ / www. cyberforum. ru/ blogs/ 223907/ 10860. html Знаешь что я подумал? Раз мы все источники пишем в голове ветки, то ничего не мешает добавить в голову такой источник, который сам. . .
Подстановка значения реквизита справочника в табличную часть документа
Maks 10.04.2026
Алгоритм из решения ниже реализован на примере нетипового документа "ПланированиеПерсонала", разработанного в конфигурации КА2. Задача: при выборе сотрудника (справочник Сотрудники) в ТЧ документа. . .
Очистка реквизитов документа при копировании
Maks 09.04.2026
Алгоритм из решения ниже применим как для типовых, так и для нетиповых документов на самых различных конфигурациях. Задача: при копировании документа очищать определенные реквизиты и табличную. . .
модель ЗдравоСохранения 8. Подготовка к разному выполнению заданий
anaschu 08.04.2026
https:/ / github. com/ shumilovas/ med2. git main ветка * содержимое блока дэлэй из старой модели теперь внутри зайца новой модели 8ATzM_2aurI
Блокировка документа от изменений, если он открыт у другого пользователя
Maks 08.04.2026
Алгоритм из решения ниже реализован на примере нетипового документа, разработанного в конфигурации КА2. Задача: запретить редактирование документа, если он открыт у другого пользователя. / / . . .
Система безопасности+живучести для сервера-слоя интернета (сети). Двойная привязка.
Hrethgir 08.04.2026
Далее были размышления о системе безопасности. Сообщения с наклонным текстом - мои. А как нам будет можно проверить, что ссылка наша, а не подделана хулиганами, которая выбросит на другую ветку и. . .
Модель ЗдрввоСохранения 7: больше работников, больше ресурсов.
anaschu 08.04.2026
работников и заданий может быть сколько угодно, но настроено всё так, что используется пока что только 20% kYBz3eJf3jQ
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru