сравнение дат

  • Автор темы alb
  • Дата начала
A

alb

есть документы созданные по форме tplan а на форме поле dataplan тип дата

понадобился сранить дату сохраненный в этой форме с другой датой созданный в теле скрипта но выходить ошибка Type mismatch
делаю так
...
dim dt as New NotesDateTime("25/08/"+sdoc.god_postup(0))
...
if tplan.dataplan<=dt then 'здесь и вылетает ошибка
....
пробовал:
if tplan.dataplan(0)<=dt then

также
dim dt1 as New NotesDateTime 'dt1 другая переменная не путайте с dt
Set item=tpdoc.GetFirstItem("dataplan")
Set dt1=item.DateTimeValue
if dt1<=dt then

все равно ошибка

подумал может dt не правильно создается
сделал просто dim dt as New NotesDateTime("25/08/2006")

все равно ошибка

обе даты пробовал присвоит к переменнным типа вариант и сравнить опять ошибка
что я делаю не так
как вообще сравнивать даты лотус скриптом
 
M

morpheus

if tplan.dataplan(0)<=dt then - тут вы сравниваете строку с датой,
if tplan.dataplan<=dt then 'здесь и вылетает ошибка - тут вы сравниваете поле с датой

Set item=tpdoc.GetFirstItem("dataplan")
Set dt1=item.DateTimeValue
if dt1<=dt then - тут тоже фигня,


Пользуйтесь дебагером!!!! он покажет какого типа ваша переменная

Datevalue - поможет Вам из строки ( tplan.dataplan(0) ) зделать дату
вот потом и сравнивайте!
 
D

Domino6

<!--QuoteBegin-alb+13:07:2007, 15:29 -->
<span class="vbquote">(alb @ 13:07:2007, 15:29 )</span><!--QuoteEBegin-->if tplan.dataplan<=dt then
[snapback]72232" rel="nofollow" target="_blank[/snapback]​
[/quote]

преписать в

Код:
if cdat(tplan.dataplan(0))<=dt then
 
A

alb

однако не ожидал такого быстрого ответа
спасибо пошел пробовать
 

Kizarek86

Green Team
20.07.2007
875
8
BIT
117
Дабы новую тему не начинать, тут напишу.
Проблема вот в чём, есть 2а поля Даты (Выбор из календаря), необходимо их сравнить, и если первая дата больше второй, то некоторому полю "Status" присвоить.

Код:
p1 := Tab1_Date;
p2 := Tab1_Date2;
@If (p1>p2; "asdsa"; "asdsad")

такая конструкция в Default Value не работает, т.е. толи даты в переменные p1 и p2 не считывает, толи такое сравнение дат некорректно.

Вообще ток начинаю программировать под Лотус, поэтому такие глупые вопросы. Нужно сделать чтобы запрещалось редактирование документа, если он создан не сегодня, как запретить я разобрался, но вот как определить соответствует введенная в документе дата сегодняшнему дню или нет, и в зависимости от этого присвоить значение полю "Status" не получается.
 

Medevic

Что это ? :)
Green Team
10.12.2004
3 334
1
BIT
6
<!--QuoteBegin-kizarek+20:07:2007, 11:20 -->
<span class="vbquote">(kizarek @ 20:07:2007, 11:20 )</span><!--QuoteEBegin-->Вообще ток начинаю программировать под Лотус, поэтому такие глупые вопросы. Нужно сделать чтобы запрещалось редактирование документа, если он создан не сегодня, как запретить я разобрался, но вот как определить соответствует введенная в документе дата сегодняшнему дню или нет, и в зависимости от этого присвоить значение полю "Status" не получается.
[snapback]72777" rel="nofollow" target="_blank[/snapback]​
[/quote]
Делай сразу по-нормальному. Через поля типа Authors и Readers.
Например, сделай шедульный агент, который каждую ночь будет перекидывать все имена из поля типа Authors в поле типа Readers для твоих документов.
 
K

Kee_Keekkenen

приведенный код будет срабатывать только один раз при открытии формы..
используй вычисляемое поле
 

Kizarek86

Green Team
20.07.2007
875
8
BIT
117
Medevic, оке, займёмся) тогда такой вопрос, как запретить редактирование документа по двойному клику по ней?при этом оставив возможность редактировать форму нажатием специальной кнопки?
 

Medevic

Что это ? :)
Green Team
10.12.2004
3 334
1
BIT
6
Для: kizarek
Обработать событие документа Querymodechange. Т.е. Создать глобальную переменную. В событии проверять значение переменной и разрешать/запрещать продолжать. По кнопке менять значение переменной.
Следующий вопрос, наверное, как запретить ctrl-e в представлении? :) Обработать событие документа Queryopen
Код:
If Source.EditMode Then Continue = False
 

Kizarek86

Green Team
20.07.2007
875
8
BIT
117
Medevic, кхм, а где иенно и как можно объявить глобальную переменную?))Чё то я туплю ужасно(
 

Kizarek86

Green Team
20.07.2007
875
8
BIT
117
Ппс, туплю. Объявил глобальную переменную. При открытии формы ей присваивается значение "0"

Код:
Sub Postopen(Source As Notesuidocument)
Let Flag = 0
End Sub

соответственно проверка
Код:
Sub Querymodechange(Source As Notesuidocument, Continue As Variant)
If ( Flag = 0 ) Then
If  Not ( source.EditMode) Then	
continue = False
End If
End If	
End Sub

и кнопка по которой должно таки начать редактироваться:
Код:
flag = 1;
@Command([EditDocument])

не работает )
 

Medevic

Что это ? :)
Green Team
10.12.2004
3 334
1
BIT
6
<!--QuoteBegin-kizarek+20:07:2007, 13:24 -->
<span class="vbquote">(kizarek @ 20:07:2007, 13:24 )</span><!--QuoteEBegin-->и кнопка по которой должно таки начать редактироваться:
[snapback]72813" rel="nofollow" target="_blank[/snapback]​
[/quote]
Ну, во-первых, там должен быть оператор присваивания flag := 1;
А, во вторых, всё равно работать не будет, т.к. в формуле нельзя обратиться к глобальной переменной. Поэтому делай кнопку на скрипте. :)
 

Kizarek86

Green Team
20.07.2007
875
8
BIT
117
Medevic, как всё замудрёно) А полю можно присвоить значение глобальной переменной?)
 

Medevic

Что это ? :)
Green Team
10.12.2004
3 334
1
BIT
6
<!--QuoteBegin-kizarek+20:07:2007, 13:35 -->
<span class="vbquote">(kizarek @ 20:07:2007, 13:35 )</span><!--QuoteEBegin-->А полю можно присвоить значение глобальной переменной?)

[snapback]72816" rel="nofollow" target="_blank[/snapback]​
[/quote]
Можно. Присваивай. :)
 

Kizarek86

Green Team
20.07.2007
875
8
BIT
117
Ч0рд, неумею я кнопки на скрипте делать) Неужели никак без них?)))
 

Medevic

Что это ? :)
Green Team
10.12.2004
3 334
1
BIT
6
Для: kizarek
Открываешь хелп. Ищешь там @Command([EditDocument]) и смотришь там аналог на скрипте. Пример тоже есть.
 

Kizarek86

Green Team
20.07.2007
875
8
BIT
117
Кхм, а что писать надо в скрипте? Изменение глобального флага? А на кнопке включение работы скрипта? ) Или как , разъясните пжста
 

Medevic

Что это ? :)
Green Team
10.12.2004
3 334
1
BIT
6
Код:
Sub Click(Source As Button)
Dim ws As New NotesUIWorkspace
flag = 1
Call ws.EditDocument(True)
End Sub
 

Kizarek86

Green Team
20.07.2007
875
8
BIT
117
Этот код работает если кнопка не в активах формы, а например на вьюхе. Если же она на форме, то флаг она не меняет(
 
Мы в соцсетях:

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