Viewrebuild

Gor

Well-Known Member
07.06.2005
517
2
#1
Всем доброго время суток...
Опять столкнулся с проблемой которую никак не могу решить.
В общем ситуация следующая. Есть View на нём Action - Составить отчёт.
В общем надо сделать следующее. Чтобы по нажатию на кнопку создавался новый документ с отчётом по динамически созданой вьюхе. Мне удалось сформировать отчёт с отбором по Дате. Но тут появилась ещё одна задача сформировать отчёт по дате + ещё по названию. (каждому названию соответствует определённая дата). Код ниже я скинул формирование отчёта я обрезал оставил только ребилд который именно и не получается.

Код:
	Dim session As New NotesSession
Dim db As NotesDatabase
Dim cView As String
Dim formula As String
Dim supplier As String	
Dim vecoll 
Dim kurs As String	
Set ws = New NotesUIWorkspace
Set v = ws.CurrentView.View
Set db = session.CurrentDatabase



cView = "TE"

kurs = Inputbox$("Введите название курса")

date1 = Inputbox$("Введите дату начала тестирования. Формат: < ДД-ММ-ГГГГ >")
date1 = Right(date1,4) + ";" + Left(Right(date1,7),2) + ";" + Left(date1,2)
date2 = Inputbox$("Введите дату окончания тестирования. Формат: < ДД-ММ-ГГГГ >")
date2 = Right(date2,4) + ";" + Left(Right(date2,7),2) + ";" + Left(date2,2)



v.AutoUpdate = False	

formula = "SELECT Form = 'TE' & ((dprk >= @date(" + date1 + "))" + "& (dprk <= @date(" + date2 + ")) & (kurs = training))" & training =(" + kurs + ")"

REM (dprk - поле дата в колонке TE, training - поле название в колонке TE)

v.SelectionFormula = formula

Call v.Refresh
v.AutoUpdate = True
Call ws.ViewRebuild
НЕ ПОЛУЧАЕТСЯ СЛЕДУЮЩЕЕ!!!! втюха не может отобрать документы по следующей формуле которую я формирую программно
formula = "SELECT Form = 'TE' & ((dprk >= @date(" + date1 + "))" + "& (dprk <= @date(" + date2 + ")) & training =(" + kurs + ")"
А ПОЧЕМУ? а потому что в дебагере она выглядит вот так (если вводим в inputbox - Знание, а дата 01-01-2006 , 01-01-2007
SELECT Form = "TE" & ((dprk >= @date(01;01;2006)) + (dprk <= @date(01;01;2007)) & (training = Знание)

В таком виде он её посовывает во вьюху(((
и естественно отбор не проходит.... причём с датой всё ок а вот с
training = Знание ....касяк.... надо чтобы было training = "Знание"
а он без ковычек во вьюху записывает...Как это обойти? Буду очень рад если поняли мой вопрос)
 

Medevic

Что это ? :)
Lotus team
10.12.2004
3 346
2
#2
<!--QuoteBegin-Gor+21:03:2006, 08:07 -->
<span class="vbquote">(Gor @ 21:03:2006, 08:07 )</span><!--QuoteEBegin-->а он без ковычек во вьюху записывает...Как это обойти? Буду очень рад если поняли мой вопрос)
[snapback]32193" rel="nofollow" target="_blank[/snapback]​
[/quote]
Ну так добавь кавычки в формулу.
 

DNT

Постоялец форума
Lotus team
12.10.2005
590
7
#3
В представлениях нельзя использовать программно изменяющиеся формулы отбора. А что нельзя решить задачу выборки по другому? Используя документколлекшн или папки?
 

Medevic

Что это ? :)
Lotus team
10.12.2004
3 346
2
#4
<!--QuoteBegin-DNT+21:03:2006, 08:52 -->
<span class="vbquote">(DNT @ 21:03:2006, 08:52 )</span><!--QuoteEBegin-->В представлениях нельзя использовать программно изменяющиеся формулы отбора.
[snapback]32199" rel="nofollow" target="_blank[/snapback]​
[/quote]
Почему нельзя ? Всё можно. И даже работает.
 

DNT

Постоялец форума
Lotus team
12.10.2005
590
7
#5
<!--QuoteBegin-Medevic+21:03:2006, 08:53 -->
<span class="vbquote">(Medevic @ 21:03:2006, 08:53 )</span><!--QuoteEBegin-->Почему нельзя ? Всё можно. И даже работает.
[snapback]32200" rel="nofollow" target="_blank[/snapback]​
[/quote]

В 5-ке???
 

DNT

Постоялец форума
Lotus team
12.10.2005
590
7
#6
В таком виде он её посовывает во вьюху(((
и естественно отбор не проходит.... причём с датой всё ок а вот с
training = Знание ....касяк.... надо чтобы было training = "Знание"
а он без ковычек во вьюху записывает...Как это обойти? Буду очень рад если поняли мой вопрос)


Попробуй :

formula = "SELECT Form = 'TE' & ((dprk >= @date(" + date1 + "))" + "& (dprk <= @date(" + date2 + ")) & training =(" +{"}+ kurs +{"}+ ")"
 

Medevic

Что это ? :)
Lotus team
10.12.2004
3 346
2
#7
<!--QuoteBegin-DNT+21:03:2006, 08:56 -->
<span class="vbquote">(DNT @ 21:03:2006, 08:56 )</span><!--QuoteEBegin-->В 5-ке???
[snapback]32201" rel="nofollow" target="_blank[/snapback]​
[/quote]
В 6-ке. Но у Gor явно версия повыше 5-ки.
 

DNT

Постоялец форума
Lotus team
12.10.2005
590
7
#8
<!--QuoteBegin-Medevic+21:03:2006, 09:10 -->
<span class="vbquote">(Medevic @ 21:03:2006, 09:10 )</span><!--QuoteEBegin-->В 6-ке. Но у Gor явно версия повыше 5-ки.
[snapback]32203" rel="nofollow" target="_blank[/snapback]​
[/quote]

Всё, хочу шестерку. Если отбирать можно динамически - это отлично.
 

Medevic

Что это ? :)
Lotus team
10.12.2004
3 346
2
#9
<!--QuoteBegin-DNT+21:03:2006, 09:12 -->
<span class="vbquote">(DNT @ 21:03:2006, 09:12 )</span><!--QuoteEBegin-->Всё, хочу шестерку. Если отбирать можно динамически - это отлично.
[snapback]32204" rel="nofollow" target="_blank[/snapback]​
[/quote]
Не всё так радужно. Менять формулу отбора можно только дизайнеру или выше. Или через агент.
 
G

Guest

Гость
#10
Код:
 А что нельзя решить задачу выборки по другому? Используя документколлекшн или папки?
Ну в моей задаче всё же лучше изменять динамически... А версия у меня 6.5 и действительно она это позволяет. Кавычки в формулу добавлять пробывал но это же Lotus Script он кавычки не воспринимает как символ...
а с фигурными скобками не пробывал, а это идея попробую поставить...!
 

Gor

Well-Known Member
07.06.2005
517
2
#11
Забыл зарегица опять...Пост мой выше. С коллекцией можно тоже было попробовать но повторюсь динамически в моей задаче менять проще... Да и проблемки почему то у меня часто возникают когда в коллекции у Entry хочу вытащить к примеру его Count сразу ошибки вылазят... Клиент то у меня 6.5 а сервак 5 ))
 

DNT

Постоялец форума
Lotus team
12.10.2005
590
7
#12
to Gor

А вас устраивает тот факт что менять условие отбора может чел с правами не ниже дизайнера??? По моему это не красиво.
 

Gor

Well-Known Member
07.06.2005
517
2
#13
formula = "SELECT Form = 'TE' & ((dprk >= @date(" + date1 + "))" + "& (dprk <= @date(" + date2 + ")) & training =(" +{"}+ kurs +{"}+ ")"


ПОМОГЛО!!!!!! :) Вопрос на самом деле оказался совсем несложный...
а до фигурных скобок я как то не догадался...просто кавычки ещё одни добавлял а он переменную вопринимать переставал...но таким образом всё работает. Спасибо!!
Куда я уже только эти кавычки не вставлял)))) :)
 

Gor

Well-Known Member
07.06.2005
517
2
#14
А вас устраивает тот факт что менять условие отбора может чел с правами не ниже дизайнера??? По моему это не красиво.
Меня устраивает полностью... просто эта функция составляет месячный отчёт рисует график итд итп...это система обработки результатов тестирования ну и тестирования в общем, А составлять отчёты будут только 2 человека у которых и будут права Манагера....
Ну а как красивее?
 

DNT

Постоялец форума
Lotus team
12.10.2005
590
7
#15
<!--QuoteBegin-Gor+21:03:2006, 12:58 -->
<span class="vbquote">(Gor @ 21:03:2006, 12:58 )</span><!--QuoteEBegin-->Меня устраивает полностью... просто эта функция составляет месячный отчёт рисует график итд итп...это система обработки результатов тестирования ну и тестирования в общем, А составлять отчёты будут только 2 человека у которых и будут права Манагера....
Ну а как красивее?
[snapback]32225" rel="nofollow" target="_blank[/snapback]​
[/quote]

Ну, красивее, это когда дизайнер только разработчик. Опять же переделать на основе коллекции документов. Если хотите. А как график рисуете?
 

Gor

Well-Known Member
07.06.2005
517
2
#16
Использую стандартный Microsoft Excel Chart создаю его как объект настраиваю, считаю значения во всех документах и потом значения уже вставляю в Sheet после чего график формируется. Конечно красивее когда манагер только разработчик... С коллекцией можно конечно работать... но опять же не всегда всё с коллекцией проходит лично у меня изза несоответствии версий сервера и клиента...С Entry (GetAllEntries к примеру) например работать не могу сразу вылетает...
И ещё это... на ВЫ не люблю как то обращение)) как нить может попроще?! :)