Getalldocumentsbykey

MMN

Well-known member
11.12.2008
97
0
#1
пытаюсь отобрать документы по дате

Код:
......
DateStart="01.01.2000"
DateStop=Today

Dim dateTime1 As New NotesDateTime(DateStart)
Dim dateTime2 As New NotesDateTime(DateStop)
Set dateRange = session.CreateDateRange()
Set dateRange.StartDateTime = dateTime1
Set dateRange.EndDateTime = dateTime2

Set view=CS_GetCurrentDb.GetView("OrdersAllDate")
Set dcDate = view.GetAllDocumentsByKey(dateRange)
If dcDate.Count < 1 Then Error 5001, "На периуд " & dateRange.Text & " заказы отсутствуют!"
......
Докуменыт не находяться, если я задам просто на определенную дату "15.01.2009" то он их находит.
В чем может быть проблема ??
 

Akupaka

А че я?.. О.о
04.10.2007
3 360
1
#3
в поисковом столбце данные правильно отображаются, дата?
попробуй задать какое-то время, кроме даты...
 

Medevic

Что это ? :)
Lotus team
10.12.2004
3 346
1
#4
Можно попробовать вместо DateStop=Today указать DateStop="Today". Всё-таки по документации нужна строка.
 

MMN

Well-known member
11.12.2008
97
0
#5
Кстати щас увидел, если я задам дату вручную
DateStop="19.01.2009"
Set dcDate = view.GetAllDocumentsByKey(DateStop)
то он найдет документы, а если
DateStop=Today
Set dcDate = view.GetAllDocumentsByKey(DateStop)
то ничего не найдет
 

MMN

Well-known member
11.12.2008
97
0
#7
в поисковом столбце данные правильно отображаются, дата?
попробуй задать какое-то время, кроме даты...
столбец единственный и там видно только дату, в самом документе присутствует еще и время в данном поле.


В том то и дело, что мне нужен dateRange, документы за определенный периуд
 

Akupaka

А че я?.. О.о
04.10.2007
3 360
1
#8
ну, вообще-то нельзя пользоваться такой конструкцией

Код:
DateStop=Today
Dim dateTime2 As New NotesDateTime(DateStop)
т.к. конструктор NotesDateTime принимает строго строку, а Today возвращает Variant of DataType 7 (Date/Time), который не преобразовывается в данном случае корректно в строковое выражение.
таким образом, корректно будет использовать либо

Код:
DateStop=cstr(Today)
Dim dateTime2 As New NotesDateTime(DateStop)
либо
Код:
DateStop="Today"
Dim dateTime2 As New NotesDateTime(DateStop)
 

MMN

Well-known member
11.12.2008
97
0
#10
спасибо, буду знать на будущее.
а как быть с dateRange ??
 

Medevic

Что это ? :)
Lotus team
10.12.2004
3 346
1
#13
Можно полный код как в первом посте?
В дебагере смотрел чему равно dateRange?
 

MMN

Well-known member
11.12.2008
97
0
#14
Можно полный код как в первом посте?
Код:
	Dim session As New NotesSession
Dim docff As NotesDocument
Dim NUIW As New NotesUIWorkspace
Set docff = New NotesDocument( session.currentDatabase )
Call NUIW.DialogBox 	( "(ChekDate)", True, True, False, False, False, False, "Выбрать периуд" , docff, True)
DateStart = docff.GetItemValue("DateStart")(0)
DateStop = docff.GetItemValue("DateStop")(0)

If DateStart="" Then DateStart="01.01.1900"
If DateStop="" Then DateStop=Cstr(Today)

DateStop = Cstr(DateStop)
DateStart = Cstr(DateStart)
'	DateStart="01.01.2000"
'	DateStop=	Cstr(Today)
'	Print DateStop
'	DateStop = "19.01.2009"
Dim dateTime1 As New NotesDateTime(DateStart)
Dim dateTime2 As New NotesDateTime(DateStop)
Set dateRange = session.CreateDateRange()
Set dateRange.StartDateTime = dateTime1
Set dateRange.EndDateTime = dateTime2
'	Messagebox dateRange.Text

Set tmpDoc=CS_GetCurrentDb.CreateDocument
Set view=CS_GetCurrentDb.GetView("OrdersAllDate")
Set dcDate = view.GetAllDocumentsByKey(dateRange)
'	Set dcDate = view.GetAllDocumentsByKey(DateStop)

If dcDate.Count < 1 Then Error 5001, "На периуд " & dateRange.text & " заказы отсутствуют!"
В дебагере смотрел чему равно dateRange?
смотрел вот так Messagebox dateRange.Text
 

Medevic

Что это ? :)
Lotus team
10.12.2004
3 346
1
#15
Вроде бы всё правильно.
Предлагаю перестроить индексы или попробовать в новом представлении.
 

MMN

Well-known member
11.12.2008
97
0
#18
На самом деле проблема была в том, что данные в колонку выводились через формулу
@Text(@Date(OrderDate))
оставил так и все заработало.
@Date(OrderDate)

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


Всем большое спасибо за помощь, все удалось.