Познакомьтесь с пентестом веб-приложений на практике в нашем новом бесплатном курсе
Dim ws As New NotesUIWorkspace
Dim ns As New NotesSession
Dim db As NotesDatabase
Dim doccurr As NotesUIDocument
Dim st As NotesDateTime, en As NotesDateTime
Dim dc As NotesDocumentCollection
Set doccurr=ws.CurrentDocument
Set db=ns.GetDatabase("lotus/kodeks/ru","kodeks.nsf",False)
If db Is Nothing Then
Msgbox("db not found")
Exit Sub
End If
Set st= New NotesDateTime(doccurr.FieldGetText("start"))
Set en= New NotesDateTime(doccurr.FieldGetText("end"))
Print st.DateOnly & " - " & en.DateOnly
Set dc=db.Search(|form="ContactFormDemo" & ContactDateDemo=>start & ContactDateDemo<=en |,nohing,0)
Print dc.Count
Set dc=db.Search(|form="ContactFormDemo" & ContactDateDemo=>start & ContactDateDemo<=en |,nohing,0)
Селекс это что? поле "Найти в данном представлении"?правильно сначала откатать данную формулу на каком нибудь виде в селексе
Set dc=db.Search(|form="ContactFormDemo" & ContactDateDemo=>start & ContactDateDemo<=en |,nohing,0)
Set dc=db.Search(|form="ContactFormDemo" & ContactDateDemo=>[| + st.LocalTime + |]& ContactDateDemo<=[| +en.LocalTime + |]| |,nohing,0)
заменить на
Set dc=db.Search(|form="ContactFormDemo" & ContactDateDemo=>[| + st.LocalTime + |]& ContactDateDemo<=[| +en.LocalTime + |]| |,nohing,0)
Language: auto avrasm
Ваше первое выражение означает, что start - это поле в искомом документе. Если поля нет, Notes считает их пустой строкой. Потому при сравнении даты со строкой и возникает ошибка несоответствия типов.
Константная дата в @-формулах должна быть заключена в квадратные скобки.
Set dc=db.Search(|form="ContactFormDemo" & ContactDateDemo=>[|+st.LocalTime+|] & ContactDateDemo<=[|+en.LocalTime+|] |,nohing,0)
А какая разница? Код выполняется или на клиенте, или на сервере. Формат всегда одинаков.TIA
ContactDateDemo=>[| + st.LocalTime + |]
это и к вам относится - рубить за это голову
вы вообще в курсе что подобная конструкция ведет к ошибке?
или вы наивно полагаете, что формат времени на клиента и на сервере всегда одинаков?
Потому что пишется Nothing, а не nohing.Сделал
Такая же ошибкаКод:Set dc=db.Search(|form="ContactFormDemo" & ContactDateDemo=>[|+st.LocalTime+|] & ContactDateDemo<=[|+en.LocalTime+|] |,nohing,0)
Потому что пишется Nothing, а не nohing.
Добавь Option Declare, чтобы не было таких ошибок.
{Date1 > @Date(} + Cstr(Year(CheckDate)) + {; } + Cstr(Month(CheckDate)) + {;} + ...
TIA
ContactDateDemo=>[| + st.LocalTime + |]
это и к вам относится - рубить за это голову
вы вообще в курсе что подобная конструкция ведет к ошибке?
или вы наивно полагаете, что формат времени на клиента и на сервере всегда одинаков?
Dim session As New NotesSession
Dim db As NotesDatabase
Dim dc As NotesDocumentCollection
Set db = session.CurrentDatabase
Set dc = db.Search({@Date(@Created) = [13.11.2009]}, Nothing, 0)
вы и сказали, первый параметр СТРОКА - Set dc = db.Search({@Date(@Created) = [13.11.2009]}, Nothing, 0)А кто сказал, что на сервер дата [01.02.2009 00:00:00] отправится в виде строки?
плохо проверялиОшибки нет, результат есть
вот жеж спорщикSet dc = db.Search({@Date(@Created) = [13.11.2009]}, Nothing, 0)
ошибка есть. А в строке
Set dc = db.Search({@Date(@Created) = [} + st.LocalTime +{]}, Nothing, 0)
ошибки нет.
Да за такое сразу голову рубить.единственное нормальное применение st.LocalTime
это конструкция типа if st.LocalTime<st2.LocalTime then
Обучение наступательной кибербезопасности в игровой форме. Начать игру!