@isnewdoc Или @isdocbeingsaved?

Eugen

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

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

savl

Lotus Team
28.10.2011
2 624
314
BIT
543
@IsNewDoc - прекрасно работает в скрытии кнопок, но на форме.
Если action будет во вьюхе, то не будет работать
 

Eugen

Green Team
22.03.2012
210
1
BIT
1
Action на форме. Настройки видимости:
d92926789dae.jpg


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

hosm

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

Eugen

Green Team
22.03.2012
210
1
BIT
1
Да, точно... понедельник - день тяжелый. Извиняюсь за тупняк) Спасибо за разъяснение.

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

Medevic

Что это ? :)
Green Team
10.12.2004
3 334
1
BIT
6
@IsDocBeingSaved возвращает 1 только в момент сохранения. Не до и не после. Полезно использовать в Input Validation:
Код:
@If(@IsDocBeingSaved & @IsNull(@ThisValue); @Failure("Значение не задано"); @Success)
 
K

Kee_Keekkenen

самое точное состояние того, что документ (через какую бы ж... он не открывался) новый дает @noteid..
 

ToxaRat

Чёрный маг
Green Team
06.11.2007
3 332
42
BIT
0
:)
помню этот прикол
создаём скриптом новый док и делаем ws.edit(..... ни одна ваша формула уже не отработает у него и унид почти есть и он уже не новый ;)
 

savl

Lotus Team
28.10.2011
2 624
314
BIT
543
если не сохранять, вот это сработает :)
Код:
	Dim macro As Variant
macro = Evaluate({@NoteID},CurrDoc)
If macro(0) = {NT00000000} Then
Msgbox "Требуется сохранить документ.",48,CurrDoc.ParentDatabase.Title
Goto endh
End If
 
K

Kee_Keekkenen

:)
помню этот прикол
создаём скриптом новый док и делаем ws.edit(..... ни одна ваша формула уже не отработает у него и унид почти есть и он уже не новый ;)

вот именно, у документа даже noteid будет, хотя его и быть не должно до сохранения, и только приведенный код подобный тому, что в предыдущем посте корректно выдаст что @noteid у документа пустой, т.е.nt c нулями..
 

lmike

нет, пердело совершенство
Lotus Team
27.08.2008
7 985
611
BIT
473
побочный эффект (проверка валидности NoteID)
Код:
Dim NDC As NotesDocumentCollection
Set NDC=db.CreateDocumentCollection
NDC.AddDocument(doc)'здесь вывалит соответ. эксепшн
...
или в одну строку (и без объяв) Call db.CreateDocumentCollection.AddDocument(doc)
 
Мы в соцсетях:

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