Аналог @success на ЛотусСкрипте.

Kizarek86

Lotus team
20.07.2007
864
4
#1
ПРоблемка вот в чём.необходимо выполнять некоторую проверку содержания полей при сохранении(закрытии документа), проверка выполняеться на ЛотусСкрипте.Надо не закрывать ворму пока в полях не будет верного значения. Как реализовать на скрипте это? На собаках понятно @Success используем, какой аналог на скрипте его?
 
G

Guest

#2
В квари сеив есть переменная Continue. Если Вы напишете Continue = False то сохраниться не удастся. Должно быть что то вроде:
Код:
if doc.Field1="" or doc.Field2="" or ... doc.FieldN="" then
Messagebox "Не все поля заполнены"
Continue = False
end if
А лучше сделать так:
Код:
if doc.Field1="" then
Messagebox "Поле " & doc.Field1 & " не заполнено"
Continue = False
end if
if doc.Field2="" then
Messagebox "Поле " & doc.Field2 & " не заполнено"
Continue = False
end if
 

morpheus

скриптописец
07.08.2006
3 915
1
#4
Для: Ерюков Алексей
НУ во-первых брезхня
if doc.Field2="" then - тут будет ошибка

да и быстрее просто проверить длинну поля
if Len(doc.Field2(0)) = 0 then
 
G

Guest

#5
<!--QuoteBegin-Morpheus+19:09:2007, 10:04 -->
<span class="vbquote">(Morpheus @ 19:09:2007, 10:04 )</span><!--QuoteEBegin-->Для: Ерюков Алексей
НУ во-первых брезхня
if doc.Field2="" then - тут будет ошибка
[snapback]78743" rel="nofollow" target="_blank[/snapback]​
[/quote]
Ну я бы не сказал, что брехня... Ну да будет ошибка, т.к. я не указал (0), но от этого суть не меняется. Проблема решена, главное идея правильная
 

Kizarek86

Lotus team
20.07.2007
864
4
#6
тут вот в чём дело, есть Кнопка "закрыть с сохранением"

Код:
@Command ([FileSave]);
@Command ([FileCloseWindow])
Есть такой код

Код:
Sub Querysave(Source As Notesuidocument, Continue As Variant)
If (TekDoc = 0) Then
Source.Document.Saveoptions = "1" 
End If
If (TekDoc = 1) Then 
Continue = False
End If
End Sub
Такая штука не работает, документ просто не сохраняется.
Как обойти?)
 

morpheus

скриптописец
07.08.2006
3 915
1
#7
что такое TekDoc
канечно не сохраняеться, ведь Saveoptions = "1"
 

Kizarek86

Lotus team
20.07.2007
864
4
#8
Morpheus, TekDoc функция проверки в зависимости от значения которой и должен закрываться документ или оставаться активным. <!--QuoteBegin-Morpheus+19:09:2007, 10:34 -->
<span class="vbquote">(Morpheus @ 19:09:2007, 10:34 )</span><!--QuoteEBegin-->канечно не сохраняеться, ведь Saveoptions = "1"
[snapback]78751" rel="nofollow" target="_blank[/snapback]​
[/quote]
ну ет понятно, непонятно как сделать чтобы корректно работало)
 
R

Ronchik

#9
Для: kizarek
проверьте TekDoc.....может она возвращает Null .....

<!--QuoteBegin-Morpheus+19:09:2007, 09:34 -->
<span class="vbquote">(Morpheus @ 19:09:2007, 09:34 )</span><!--QuoteEBegin-->канечно не сохраняеться, ведь Saveoptions = "1"
[snapback]78751" rel="nofollow" target="_blank[/snapback]​
[/quote]
ДОкумент не сохраняеться если Saveoptions = "0"
 

Medevic

Что это ? :)
Lotus team
10.12.2004
3 346
1
#10
Замени это:
<!--QuoteBegin-kizarek+19:09:2007, 10:25 -->
<span class="vbquote">(kizarek @ 19:09:2007, 10:25 )</span><!--QuoteEBegin-->@Command ([FileSave]);
@Command ([FileCloseWindow])
[snapback]78749" rel="nofollow" target="_blank[/snapback]​
[/quote]
На это:
Код:
@If(@Command ([FileSave]); @Command ([FileCloseWindow]); @Nothing)
На всякий случай. :)
 

Kizarek86

Lotus team
20.07.2007
864
4
#11
<!--QuoteBegin-Ronchik+19:09:2007, 10:48 -->
<span class="vbquote">(Ronchik @ 19:09:2007, 10:48 )</span><!--QuoteEBegin-->проверьте TekDoc.....может она возвращает Null .....
[snapback]78755" rel="nofollow" target="_blank[/snapback]​
[/quote]
С ней всё нормально.
<!--QuoteBegin-Ronchik+19:09:2007, 10:48 -->
<span class="vbquote">(Ronchik @ 19:09:2007, 10:48 )</span><!--QuoteEBegin-->ДОкумент не сохраняеться если Saveoptions = "0"
[snapback]78755" rel="nofollow" target="_blank[/snapback]​
[/quote]
Это тоже понятно. Просто пои клике на кнопку:
Код:
@Command ([FileSave]);
@Command ([FileCloseWindow])
Документ закрывается, мне недо чтобы он не закрывался если значение функции TekDoc =1, а надо чтобы документ остался на редактировании. А если TekDoc=0, то закрывался с сохранением.

Medevic, во, спасибо.Теперь работает)Лови очередной плюсик)
 

morpheus

скриптописец
07.08.2006
3 915
1
#13
Код:
Sub Querysave(Source As Notesuidocument, Continue As Variant)

Select case TekDoc
case 0: Continue = True
case 1: Continue = False
End Select

end sub
Сэкономите на вызове TekDoc
 

Kee_Keekkenen

Well-known member
05.09.2006
639
4
#14
это должно работать
Код:
If (TekDoc = 1) Then
Continue = False
End If
в Querysave документ не сохраняется, Queryclose - не закрывается..
 

Kizarek86

Lotus team
20.07.2007
864
4
#15
Morpheus,Kee_Keekkenen, спасибо за советы, но сделал немного по другому. всё работает как надо теперь)

Во, такой ещё вопросик есть.Можно ли перед закрытием формы, программно вызвать клик кнопки которая находиться в этом документе на панели дейсвий?
 
S

Sandr

#17
Morpheus,Kee_Keekkenen, спасибо за советы, но сделал немного по другому. всё работает как надо теперь)

Во, такой ещё вопросик есть.Можно ли перед закрытием формы, программно вызвать клик кнопки которая находиться в этом документе на панели дейсвий?
Нельзя... Приийдется дублировать код...
 

morpheus

скриптописец
07.08.2006
3 915
1
#18
<!--QuoteBegin-Sandr+19:09:2007, 22:05 -->
<span class="vbquote">(Sandr @ 19:09:2007, 22:05 )</span><!--QuoteEBegin-->Нельзя... Приийдется дублировать код...
[snapback]78884" rel="nofollow" target="_blank[/snapback]​
[/quote]
зделать скриптовую библиотеку, и вызывать ейи из кнопки, и из закрытия кнопки