• 15 апреля стартует «Курс «SQL-injection Master» ©» от команды The Codeby

    За 3 месяца вы пройдете путь от начальных навыков работы с SQL-запросами к базам данных до продвинутых техник. Научитесь находить уязвимости связанные с базами данных, и внедрять произвольный SQL-код в уязвимые приложения.

    На последнюю неделю приходится экзамен, где нужно будет показать свои навыки, взломав ряд уязвимых учебных сайтов, и добыть флаги. Успешно сдавшие экзамен получат сертификат.

    Запись на курс до 25 апреля. Получить промодоступ ...

Input Validation на Lotus Script

  • Автор темы T1000
  • Дата начала
Статус
Закрыто для дальнейших ответов.
T

T1000

День добрый.

Есть форма. В ней простейший диалог. В диалоге 2 поля - текстовое и числовое.
Если в числовое занести какое-то буквенное значение, то лотус пишет "cannot convert text to a number". как успеть отловить это неверное значение и вписать свой код. Привет того, что я пытаюсь сделать:
Код:
Sub Queryclose(Source As Notesuidocument, Continue As Variant)
Dim v
Dim cdoc As NotesDocument

Set cdoc=Source.Document
Continue=True

Print "v="+Source.FieldGetText("digReady4")
v=Source.FieldGetText("digReady4")
Print "3"
If Not Isnumeric(v) Then
Continue=False
Msgbox {Введите численное значение},,"Ошибка"
End If
Print "4"

' Input Translation
End Sub
 

Medevic

Что это ? :)
Green Team
10.12.2004
3 334
1
BIT
4
Есть форма. В ней простейший диалог. В диалоге 2 поля - текстовое и числовое.
Если в числовое занести какое-то буквенное значение, то лотус пишет "cannot convert text to a number". как успеть отловить это неверное значение и вписать свой код.
Для этого есть Input Validation.
 
T

T1000

прописываю эту строку в Input Validation
Код:
@If(!@IsNumber(digReady4);@Prompt([ok];"warning";"введите число");digReady4)
мне выдается моё сообщение об ошибке. форма диалога закрывается, и я попадаю обратно в документ или другой диалог. мне же нужно добиться того, чтобы пользователь ввел число.
 
H

hosm

Есть такая красота как @Failure( string )
 
T

T1000

все. спасибо. теперь на формулах проблема решилась. про команду @Failure вообще забыл :)
 

lmike

нет, пердело совершенство
Lotus Team
27.08.2008
7 940
609
BIT
210
не советую увлекаться Failure, задолбаетесь проходить форму, особливо ежели порядок заполнения м.б. произвольным
в формулу валидации ставить код, кот. прописывает контрольное поле, при ошибке (многозначное)
массив ошибочных полей обрабатываем в QuerySave, подсвечиваем ошибки и переходим на первое ошибочное поле
я такое реализовывал...
описание и код выкладывал здесь https://codeby.net/threads/34055.html?vi...st&p=160218
 
T

T1000

у меня случай благо простой, но на будущее гляну конечно.
спасибо еще раз!!! :)
 
30.05.2006
1 345
12
BIT
0
... про команду @Failure вообще забыл :)
Мог и не вспоминать ;) Эта формула - рудимент от 3-шки (если не ещё более ранних версий). Она не делает ничего, просто возвращает значение параметра (@Failure("text") = "text").

Это логика InputValidation такая: если формула возвращает 1(@Yes/@True), значит всё Ок; если НЕ 1 - то всё плохо, причём если "не 1" - это текст, он выводится как сообщение об ошибке.

PS: @Prompt(..) возвращает что-то числовое (подозреваю - 1)
 
Статус
Закрыто для дальнейших ответов.
Мы в соцсетях:

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