Форум программистов, компьютерный форум, киберфорум
HCL Notes: Программирование
Войти
Регистрация
Восстановить пароль
Карта форума Темы раздела Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.70/101: Рейтинг темы: голосов - 101, средняя оценка - 4.70
0 / 0 / 0
Регистрация: 13.03.2007
Сообщений: 44
1

Форма для фильтрации во вьюхе

26.03.2007, 04:59. Показов 18349. Ответов 10
Метки нет (Все метки)

Author24 — интернет-сервис помощи студентам
есть Action с кодом


Код
Sub Click(Source As Button)

Dim w As New NotesUIWorkspace
Dim uidoc As NotesUIDocument
Set uidoc = w.CurrentDocument
Set doc = uidoc.Document
Dim vl As Variant

Dim fl As Boolean
fl = w.DialogBox( "rep_2date_form" , True , True , True , True , True , False , "Отчет")

End Sub
есть форма с 2 полями с выбором даты и хотспот с надписью

код хотспота


Код
Sub Click(Source As Button)

Dim ws As New NotesUIWorkspace
Dim uidoc As NotesUIDocument
Dim uiview As NotesUIView
Dim view As NotesView
Dim formula As String

Set uidoc = ws.CurrentDocument

Set uiview = ws.CurrentView

formula = {SELECT form="uregcard" & date_obr_1>[} & uidoc.FieldGetText("date1") & {] & date_obr_1<[} & uidoc.FieldGetText("date2") & {]}

Set view = uiview.View
view.SelectionFormula = formula
view.Refresh
Call ws.ViewRebuild

End Sub
Идея такая. Юзверь щелкает по кнопке акшина во вьюхе. Открывается форма. Юзверь выбирает 2 даты с и по щелкает по хотспоту и автоматически производится фильтрация в диапазоне этих дат.

Но, как то странно. В режиме отладки все работает. В обычном режиме строка
Set view = uiview.View

дает ошибку мол объекта нема <_<

Как заставить работать или подскажите плиз решение получше.
0
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
26.03.2007, 04:59
Ответы с готовыми решениями:

Параметры для фильтрации
Здраствуйте! Вообщем хочу сделать проверку на проверку фильтрации т.е. если в ComboBox не выбрано...

Маски для фильтрации
Дано пять масок для фильтрации имен файлов. Расположите номера этих масок в порядке неубывающей...

Запрос для фильтрации
Подскажите как правильно сделать фильтрацию выдачи из базы. Дано: dbExpress - SQlite (из одной...

Макрос для фильтрации
Доброго времени суток! Необходимо создать(фильтр или макрос) я так еще и не определился, может...

10
1 / 1 / 0
Регистрация: 04.08.2006
Сообщений: 2,950
26.03.2007, 10:09 2
Для: SkyRanger
в отладчике посмотрите , чему равен uiview?

з.ы.
ИМХО.... пользуйтесь папками
0
0 / 0 / 0
Регистрация: 13.03.2007
Сообщений: 44
26.03.2007, 10:18 3
Отладчик не работает для кода хотспота в этой форме :(

А инфу по юзанью папок если можно плиииз
0
1 / 1 / 0
Регистрация: 04.08.2006
Сообщений: 2,950
26.03.2007, 10:22 4
Для: SkyRanger
Putinfolder к колеккции документов

з.ы. откуда же Вам извесно что
<!--QuoteBegin-SkyRanger+27:03:2007, 03:46 -->
<span class="vbquote">(SkyRanger @ 27:03:2007, 03:46 )</span><!--QuoteEBegin-->Но, как то странно. В режиме отладки все работает. В обычном режиме строка
Set view = uiview.View
[snapback]60219" rel="nofollow" target="_blank[/snapback]?[/quote]

если


<!--QuoteBegin-SkyRanger+27:03:2007, 09:05 -->
<span class="vbquote">(SkyRanger @ 27:03:2007, 09:05 )</span><!--QuoteEBegin-->Отладчик не работает для кода хотспота в этой форме
[snapback]60237" rel="nofollow" target="_blank[/snapback]?[/quote]


Вы уверенны что ошибка именно на строке Set view = uiview.View
0
0 / 0 / 0
Регистрация: 13.03.2007
Сообщений: 44
27.03.2007, 01:16 5
Да, я ставил месседж боксы перед каждой и получаю ошибку на ней

В том то и дело. Пошагово кошда выполняю, она работает как надо. Так как результат во вьюхе отображается какой я хочу!
0
0 / 0 / 0
Регистрация: 26.05.2006
Сообщений: 1,313
27.03.2007, 03:42 6
"НЕправильной дорогой идете, товариСЧ" !
Шареная вьюха - и доступ к формуле у КАЖДОГО юзера? На лицензиях разоритесь...
0
0 / 0 / 0
Регистрация: 13.03.2007
Сообщений: 44
27.03.2007, 08:03 7
Всмысле???

Ну как бы сказть помягче Про лицензии пока вопрос не встает.

А как тоды сделать???

Не хочу давать юзверям тупо строкой дату вводить, тем более что некрасиво 2 окна со строкой ввода подряд...
0
0 / 0 / 0
Регистрация: 04.12.2004
Сообщений: 3,329
27.03.2007, 22:47 8
<!--QuoteBegin-SkyRanger+27:03:2007, 03:46 -->
<span class="vbquote">(SkyRanger @ 27:03:2007, 03:46 )</span><!--QuoteEBegin-->Идея такая. Юзверь щелкает по кнопке акшина во вьюхе. Открывается форма. Юзверь выбирает 2 даты с и по щелкает по хотспоту и автоматически производится фильтрация в диапазоне этих дат.

Но, как то странно. В режиме отладки все работает. В обычном режиме строка
Set view = uiview.View

[snapback]60219" rel="nofollow" target="_blank[/snapback]?[/quote]
В хотспоте на форме ты никак не получишь NotesUIView.
Надо сделать кнопку в представлении. Тогда всё будет хорошо.
И то будет нормально работать если пользоваться этой формой будет один юзер. Как вариант можно для каждого пользователя сделать отдельное представление. Это если юзеров немного.
0
0 / 0 / 0
Регистрация: 03.04.2004
Сообщений: 195
28.03.2007, 13:07 9
Цитата Сообщение от Constantin A Chervonenko
"НЕправильной дорогой идете, товариСЧ" !
Оно конечно неправильно. Особенно при многопользовательской работе.
Товарищ меняет формулу выборки в представлении, которым могут пользуются несколько пользователей!!! Да и права нужны.

Но вот, Константин, скажите а как вообще решить подобное требование фильтрации в лотусе?
И дело не только в датах С-ПО.
Мне почти каждый день приходят слезные просьбы в стиле
"А СДЕЛАЙТЕ КАК В EXCEL АВТОФИЛЬТР"

На сей день я вижу несколько квазизамен автофильтру Excel:
1. Сколько полей фильтра - столько и представлений, категоризированных по полю
- выбором поля фильтрации выступает представление (Клик #1)
- выбором значения филтра выступает выбор и разворачивание категории (Клик #2 и Клик #3)
ОРГАНИЧЕНИЯ: при этом не имеет смысла сортировать и поиск выизуальный

2. Сделать приватные папки и пихать в них документы по условиям фильтра
Вроди все хорошо, но с приватными папками можно сказать невозможно работать на скриптах!!!!
Приватные папки невозможно централизованно обновлять при установке обновлений
Если открыть документ и изменить значения в фильтруемых полях, то докумен необходимо удалять из папки или перезаполнять папку по фильтру.

3. Создать форму, разместить по всей площади встроенное категоризированное представление,
настроенное на одно поле фильтра в ShowSinglrCategory
Проблемы сортировки и поиска аналогичны пункту #1

4. Можно еще конечно суетить документы по полям ридерам, но это медленно и ужасно

Как вообще в Лотусе решать сею проблему на Ваш взгляд?
Может возможно подменить форму встроенного полнотекстного поиска, которая есть в представлении?
0
0 / 0 / 0
Регистрация: 26.05.2006
Сообщений: 1,313
28.03.2007, 18:15 10
>Может возможно подменить форму встроенного полнотекстного поиска, которая есть в представлении?
Эта "идея" многократно перетиралась на разных форумах. Сошлись к тому, что самопальный ПТПоиск - это db.FTSearch + (личный) фолдер :( Тогда и сортировки есть, и индикатор релевантности. Минусы - очевидны.
Маленькая хорошая новость от 6-ки: @SetViewInfo - по-гибче single-category будет, и сортировки, вроде остаются
0
0 / 0 / 0
Регистрация: 04.12.2004
Сообщений: 3,329
29.03.2007, 12:54 11
<!--QuoteBegin-Constantin A Chervonenko+29:03:2007, 17:02 -->
<span class="vbquote">(Constantin A Chervonenko @ 29:03:2007, 17:02 )</span><!--QuoteEBegin-->Маленькая хорошая новость от 6-ки: @SetViewInfo - по-гибче single-category будет, и сортировки, вроде остаются
[snapback]60638" rel="nofollow" target="_blank[/snapback]?[/quote]
Я так и сделал. Правда, @SetViewInfo немного глючная штука. ;)
Сортировки по клику на колонку нету. Только заранее заданная.

Технология простая. Допустим нужно сделать фильтр по трем полям: поле1, поле2, поле3.
Создаем представление с категоризированной колонкой со значением: "~~" : поле1 + "~~" : "~" + поле2 + "~" : "~~" + поле3 : поле1 + "~" + поле2 : поле1 + "~~" + поле3 : "~" + поле2 + "~" + поле3 : поле1 + "~" + поле2 + "~" + поле3.
"~" - это разделитель. Можно любой другой взять. Главное, чтобы он никогда не встречался в значении полей.
В результате один документ попадет сразу в 8 категорий.
Дальше просто делаем @SetViewInfo. :(
Из плюсов:
1) Это самый быстрый вариант фильтра. Если данные меняются редко, то работает практически мгновенно.
2) Не нужно особых прав.
3) Все представления общие.

Из минусов:
1) Т.к. документ находится в нескольких категориях представление разрастается очень сильно. По сути в 2^n + n раза (n - число полей для фильтра). А это плохо сказывается на производительности.
2) Небольшие глюки @SetViewInfo.
3) Не будет работать с многозначными полями. Хотя, это можно исправить, но представление разрастется еще больше.
4) Долгое индексирование.
5) Некоторая морока в реализации. :D
0
29.03.2007, 12:54
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
29.03.2007, 12:54
Помогаю со студенческими работами здесь

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

Софт для фильтрации контента
Интересуют утилиты (желательно бесплатные), предназначенные для фильтрации посещаемых сайтов. То...

Несколько значений для фильтрации
День добрый Подскажите пожалуйста, как можно сделать следующее: если в комбоБоксе выбрано одно...

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


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

Или воспользуйтесь поиском по форуму:
11
Ответ Создать тему
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2024, CyberForum.ru