Форма в Dialogbox- как проверить заполнение полей ?

Тема в разделе "Lotus - Программирование", создана пользователем Sandro, 10 дек 2009.

  1. Sandro

    Sandro Гость

    Добавляю респонс документ при помощи DialogBox

    Код (Text):
    Continue=ws.DialogBox("f_plan",,,False,False,False,False,"Введите данные",doc,True,False,True)
    мне необходимо проверить состояние полей и в случаене корректного заполнения , выдать месседж бокс и дать возможность дозаполнить форму .
    Ни как не могу сообразить как это обработать. DialogBox после клика всё равно закрывается :)
     
  2. Omh

    Omh Lotus team
    Lotus team

    Регистрация:
    4 июл 2007
    Сообщения:
    2.210
    Симпатии:
    0
    Ну или на QueryClose в самой форме диалогбокса:
    <!--shcode--><pre><code class='vb'>If Source.DialogBoxCanceled Then
    'тут проверки
    end if[/CODE]Или так:
    <!--shcode--><pre><code class='vb'>Dim DlgDoc As NotesDocument
    Set DlgDoc = db.CreateDocument
    ShowDlg:
    If ws.DialogBox("(FORM)",True, True, False, False, False, False, "TITLE", DlgDoc, True) Then
    'если проверки не сработали then goto ShowDlg
    End If[/CODE]

    Первый вариант красивее, но сложнее дебажить.

    Второй вариант можно реализовать с циклом вместо goto :)
     
  3. amigolinx

    amigolinx Гость

    по ходу еще и я спрошу: а на уровне самих полей и непосредственно при их заполнении низзя это делать? просто смотрю в дизайнере у поля есть какая-то "Проверка введенных данных" - шо это?
     
  4. Omh

    Omh Lotus team
    Lotus team

    Регистрация:
    4 июл 2007
    Сообщения:
    2.210
    Симпатии:
    0
    На мой взгялд - это шняга.
     
  5. alik86

    alik86 Lotus team
    Lotus team

    Регистрация:
    20 ноя 2008
    Сообщения:
    465
    Симпатии:
    0
    Я тоже так делаю - вроде пока особых проблем не вылазило...
     
  6. Klido

    Klido Гость

    а мне пока так больше понравилось, только проверять надо на НЕ отмену диалога :)

    Код (Text):
    Sub Queryclose(Source As Notesuidocument, Continue As Variant)
    If Not Source.DialogBoxCanceled Then
    'если проверки не прошли то...           
    continue=False
    End If
    End If
    End Sub
     
  7. Sandro

    Sandro Гость

    Всем спасиб !!!!!!1
     
  8. Omh

    Omh Lotus team
    Lotus team

    Регистрация:
    4 июл 2007
    Сообщения:
    2.210
    Симпатии:
    0
    Конечно, я сглючнул...
     
  9. K-Fire

    K-Fire Гость

    В параметрах диалогбокса указываете не показывать кнопки. В самом диалог боксе делаете 2 красивые кнопки "ОК" и "Отмена".
    На "ОК" вешаете все проверки какие надо.

    Лучше варианта не найти :newconfus:
     
  10. Omh

    Omh Lotus team
    Lotus team

    Регистрация:
    4 июл 2007
    Сообщения:
    2.210
    Симпатии:
    0
    K-Fire
    [off] Жёстко не люблю свои кнопки в диалогбоксах :newconfus:
     
  11. susinmn

    susinmn Well-Known Member

    Регистрация:
    16 окт 2007
    Сообщения:
    530
    Симпатии:
    8
    В input validation поля(например, проверка на заполненность)
    @If(Поле= ""; @Return(@Failure("Укажите Хоть что-то! Ну, пожалуйста!")); "");
    а на
    Sub Queryclose(Source As Notesuidocument, Continue As Variant) формы, которую используешь для DialogBox пишешь Exit Sub
     
  12. ToxaRat

    ToxaRat Чёрный маг
    Lotus team

    Регистрация:
    6 ноя 2007
    Сообщения:
    3.046
    Симпатии:
    18
    вот и я гляжу и не понимаю, у вас что в диалогбоксе валидаторы не работают? :ph34r:
     
  13. Klido

    Klido Гость

    бывают достаточно сложные проверки, когда надо обратиться к иным документам и пр.
     
Загрузка...

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