• 15 апреля стартует «Курс «SQL-injection Master» ©» от команды The Codeby

    За 3 месяца вы пройдете путь от начальных навыков работы с SQL-запросами к базам данных до продвинутых техник. Научитесь находить уязвимости связанные с базами данных, и внедрять произвольный SQL-код в уязвимые приложения.

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

    Запись на курс до 25 апреля. Получить промодоступ ...

Getalldocumentsbykey

  • Автор темы MMN
  • Дата начала
M

MMN

пытаюсь отобрать документы по дате

Код:
......
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" то он их находит.
В чем может быть проблема ??
 
A

Akupaka

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

Medevic

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

MMN

Кстати щас увидел, если я задам дату вручную
DateStop="19.01.2009"
Set dcDate = view.GetAllDocumentsByKey(DateStop)
то он найдет документы, а если
DateStop=Today
Set dcDate = view.GetAllDocumentsByKey(DateStop)
то ничего не найдет
 
M

MMN

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


Ну и делай DateStop=Cstr(Today)...
В том то и дело, что мне нужен dateRange, документы за определенный периуд
 
A

Akupaka

ну, вообще-то нельзя пользоваться такой конструкцией

Код:
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)
 
O

Omh

Жесть :)
+1 за реплику господина Yakov'a
 
M

MMN

спасибо, буду знать на будущее.
а как быть с dateRange ??
 

Medevic

Что это ? :)
Green Team
10.12.2004
3 334
1
BIT
4
Можно полный код как в первом посте?
В дебагере смотрел чему равно dateRange?
 
M

MMN

Можно полный код как в первом посте?
Код:
	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

Что это ? :)
Green Team
10.12.2004
3 334
1
BIT
4
Вроде бы всё правильно.
Предлагаю перестроить индексы или попробовать в новом представлении.
 
M

MMN

На самом деле проблема была в том, что данные в колонку выводились через формулу
@Text(@Date(OrderDate))
оставил так и все заработало.
@Date(OrderDate)

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


Всем большое спасибо за помощь, все удалось.
 
Мы в соцсетях:

Обучение наступательной кибербезопасности в игровой форме. Начать игру!