1. Набираем команду codeby webinar. Набираем команду для организации и проведения вебинаров. Подробнее ...

    Скрыть объявление
  2. Требуются разработчики и тестеры для проекта codebyOS. Требования для участия в проекте: Знание принципов работы ОС на базе Linux; Знание Bash; Крайне желательное знание CPP, Python, Lua; Навыки системного администрирования. Подробнее ...

    Скрыть объявление
  3. Получи 30.000 рублей. Для получения денег необходимо принять участие в конкурсе авторов codeby. С условиями и призами можно ознакомиться на этой странице ...

    Внимание! Регистрация авторов на конкурс закрыта.

    Скрыть объявление

Input Validation на Lotus Script

Тема в разделе "Lotus - Программирование", создана пользователем T1000, 4 мар 2010.

Статус темы:
Закрыта.
  1. T1000

    T1000 Гость

    Репутация:
    0
    День добрый.

    Есть форма. В ней простейший диалог. В диалоге 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
     
  2. Medevic

    Medevic Что это ? :)
    Lotus team

    Репутация:
    0
    Регистрация:
    10 дек 2004
    Сообщения:
    3.346
    Симпатии:
    2
    Для этого есть Input Validation.
     
  3. T1000

    T1000 Гость

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

    hosm * so what *

    Репутация:
    0
    Регистрация:
    18 май 2009
    Сообщения:
    2.442
    Симпатии:
    8
    Есть такая красота как @Failure( string )
     
  5. T1000

    T1000 Гость

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

    lmike нет, пердело совершенство
    Lotus team

    Репутация:
    1
    Регистрация:
    27 авг 2008
    Сообщения:
    6.376
    Симпатии:
    336
    не советую увлекаться Failure, задолбаетесь проходить форму, особливо ежели порядок заполнения м.б. произвольным
    в формулу валидации ставить код, кот. прописывает контрольное поле, при ошибке (многозначное)
    массив ошибочных полей обрабатываем в QuerySave, подсвечиваем ошибки и переходим на первое ошибочное поле
    я такое реализовывал...
    описание и код выкладывал здесь http://codeby.net/forum/threads/34055.html?vi...st&p=160218
     
  7. T1000

    T1000 Гость

    Репутация:
    0
    у меня случай благо простой, но на будущее гляну конечно.
    спасибо еще раз!!! :)
     
  8. Constantin A Chervonenko

    Constantin A Chervonenko Well-Known Member
    Lotus team

    Репутация:
    0
    Регистрация:
    30 май 2006
    Сообщения:
    1.323
    Симпатии:
    4
    Мог и не вспоминать ;) Эта формула - рудимент от 3-шки (если не ещё более ранних версий). Она не делает ничего, просто возвращает значение параметра (@Failure("text") = "text").

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

    PS: @Prompt(..) возвращает что-то числовое (подозреваю - 1)
     
Загрузка...
Статус темы:
Закрыта.

Поделиться этой страницей