@isnewdoc Или @isdocbeingsaved?

Eugen

Well-Known Member
22.03.2012
177
0
#1
Добрый день.
Подскажите пожалуйста:
есть форма, на которой висят Shared Action`ы на @formulas. Мне нужно сделать так, чтобы если документ новый(т.е. ни разу не сохранялся) одна из кнопок скрывалась. @IsNewDoc и @IsDocBeingSaved, если я правильно понял из хелпа в формулах видимости не работают. Может есть что то похожее?

Заранее спасибо.
PS:Версия 8.5.2.
 

savl

Well-Known Member
Lotus team
28.10.2011
2 126
163
#2
@IsNewDoc - прекрасно работает в скрытии кнопок, но на форме.
Если action будет во вьюхе, то не будет работать
 

Eugen

Well-Known Member
22.03.2012
177
0
#3
Action на форме. Настройки видимости:


Добавлено: Причем если на форме сделать тестовую кнопку с формулой типа @If(@IsNewDoc;@Prompt([Ok];"";"True");@Prompt([Ok];"";"False")), то возвращаются правильные значения, а если этот IsNewDoc в формуле вилимости, то кнопка не хочет скрываться.
 

hosm

* so what *
18.05.2009
2 442
9
#4
ну, так кнопка будет скрываться, если документ новый И поле Deleted="Y". Что написали, то и получили :( Вам надо ИЛИ (|), чтобы кнопка скрывалась, либо когда новый, либо когда поле Deleted="Y"
 

Eugen

Well-Known Member
22.03.2012
177
0
#5
Да, точно... понедельник - день тяжелый. Извиняюсь за тупняк) Спасибо за разъяснение.

Добавлено: а в чем, кстати, разница между @IsNewDoc и @IsDocBeingSaved?
 

Medevic

Что это ? :)
Lotus team
10.12.2004
3 346
2
#8
@IsDocBeingSaved возвращает 1 только в момент сохранения. Не до и не после. Полезно использовать в Input Validation:
Код:
@If(@IsDocBeingSaved & @IsNull(@ThisValue); @Failure("Значение не задано"); @Success)
 

Kee_Keekkenen

Well-Known Member
05.09.2006
639
6
#10
самое точное состояние того, что документ (через какую бы ж... он не открывался) новый дает @noteid..
 

ToxaRat

Чёрный маг
Lotus team
06.11.2007
3 223
24
#11
:)
помню этот прикол
создаём скриптом новый док и делаем ws.edit(..... ни одна ваша формула уже не отработает у него и унид почти есть и он уже не новый ;)
 

savl

Well-Known Member
Lotus team
28.10.2011
2 126
163
#12
если не сохранять, вот это сработает :)
Код:
	Dim macro As Variant
macro = Evaluate({@NoteID},CurrDoc)
If macro(0) = {NT00000000} Then
Msgbox "Требуется сохранить документ.",48,CurrDoc.ParentDatabase.Title
Goto endh
End If
 

Kee_Keekkenen

Well-Known Member
05.09.2006
639
6
#13
:)
помню этот прикол
создаём скриптом новый док и делаем ws.edit(..... ни одна ваша формула уже не отработает у него и унид почти есть и он уже не новый ;)
вот именно, у документа даже noteid будет, хотя его и быть не должно до сохранения, и только приведенный код подобный тому, что в предыдущем посте корректно выдаст что @noteid у документа пустой, т.е.nt c нулями..
 

lmike

нет, пердело совершенство
Lotus team
27.08.2008
6 483
360
#14
побочный эффект (проверка валидности NoteID)
Код:
Dim NDC As NotesDocumentCollection
Set NDC=db.CreateDocumentCollection
NDC.AddDocument(doc)'здесь вывалит соответ. эксепшн
...
или в одну строку (и без объяв) Call db.CreateDocumentCollection.AddDocument(doc)