Валидация

Тема в разделе "Lotus - Программирование", создана пользователем Kizarek86, 23 июл 2007.

  1. Kizarek86

    Kizarek86 Lotus team
    Lotus team

    Регистрация:
    20 июл 2007
    Сообщения:
    857
    Симпатии:
    5
    Проблемка такая, необходимо проверять заполнено ли поле на форме.
    В Input Validation данного поля:
    Код (Text):
    @If (Изделие = ""; @Failure("Необходимо ввести вид изделия");@Success )
    например при закрытии документа если поле не заполнено, вывести данное сообщение и не закрывать документ, у меня же выводиться сообщение, и документ закрывается.
     
  2. morpheus

    morpheus скриптописец

    Регистрация:
    7 авг 2006
    Сообщения:
    3.927
    Симпатии:
    0
    <!--QuoteBegin-kizarek+23:07:2007, 08:40 -->
    <span class="vbquote">(kizarek @ 23:07:2007, 08:40 )</span><!--QuoteEBegin-->Изделие
    [snapback]72979" rel="nofollow" target="_blank[/snapback]​
    [/quote]
    ДЛя начала попробовать @ThisValue
    это раз

    втарое Input Validation служит для запрета СОХРАНЕНИЯ документа, если поле не отвечает критериям. Ато как же человек выйдет из документа, с другой стороны можна поставить флаг( поле) которому присваивать значеия, а на QueryClose - это значение обрабатывать и не давать закрыть документ
    @Failure prevents the user from saving the document until the user enters a value that meets the criteria.
     
  3. Kizarek86

    Kizarek86 Lotus team
    Lotus team

    Регистрация:
    20 июл 2007
    Сообщения:
    857
    Симпатии:
    5
    Morpheus, если можно немного поподробнее, если можно то примерчик кода и куда его поместить. Ну @ThisValue просто проверит заполнено ли поле, можно и без него. Input Validation - т.е. документ не сохраниться просто?
     
  4. morpheus

    morpheus скриптописец

    Регистрация:
    7 авг 2006
    Сообщения:
    3.927
    Симпатии:
    0
    Для: kizarek

    @ThisValue - Returns the value of the current field.
    я имел в виду
    @If (@ThisValue = ""; @Failure("Warning!...");@Success )

    Ну а примерчик, я ведь так и не понял что Вам канкретнно надо, изьясняйтесь яснее

    догадываюсь что Вам надо запретить закрытие документа, пока не заполнено поле,

    В форме в событии
    Да, кстати, надеюсь Изделие - это выдуманое имя поля ( не используйте кирилицу в названии полей )


    Код (Text):
    Sub Queryclose(Source As Notesuidocument, Continue As Variant)
    if Len( Source.Document.Изделие ) = 0 then Continue = False
    End Sub
     
  5. Ronchik

    Ronchik Гость

    <!--QuoteBegin-Morpheus+23:07:2007, 09:49 -->
    <span class="vbquote">(Morpheus @ 23:07:2007, 09:49 )</span><!--QuoteEBegin-->Source.Изделие
    [snapback]72995" rel="nofollow" target="_blank[/snapback]​
    [/quote]
    Код (Text):
    Source.Document.Изделие(0)
     
  6. Гость

    Можно написать что то вроде этого:
    Код (Text):
     Function checkOnNonSpaceFields ( listFields As String , listFieldNames As String ) As Integer   
    Dim workspace As New NotesUIWorkspace
    Dim doc As NotesDocument
    Dim docUI As NotesUIDocument
    Dim listFieldsV As Variant
    Dim listFieldNamesV As Variant
    Dim flag As Integer

    Set docUI = workspace.CurrentDocument
    Set doc = docUI.Document

    listFieldsV      = Explode ( listFields )
    listFieldNamesV = Explode ( listFieldNames )

    checkOnNonSpaceFields = False

    If Ubound ( listFieldsV ) <> Ubound ( listFieldNamesV ) Then
    Messagebox "Количество имен полей и их названий не совпадает" , 48 , "Ошибка"
    Exit Function
    End If

    For i=0 To Ubound ( listFieldsV )
    flag = True

    If doc.HasItem ( listFieldsV ( i ) ) Then
    flag = False
    value = doc.GetItemValue ( listFieldsV ( i ) )
    If Ubound ( value ) = 0 And Trim ( value ( 0 ) ) = "" Then flag = True
    End If

    If flag Then
    Messagebox {Поле "} + listFieldNamesV ( i ) + {" должно быть заполнено.} , 48 , {Внимание}
    On Error Resume Next
    Call docUI.GotoField ( listFieldsV ( i ) )
    Exit Function
    End If
    Next

    checkOnNonSpaceFields = True
    End Function
    В функцию передаются поля и их названия. Соответственно проверяется совпадает ли количество полей и названий, а также заполнено ли каждое поле. В QuerySave пишите:
    Код (Text):
     Continue = checkOnNonSpaceFields( listFields$ , listFieldNames$ )
     
  7. Kizarek86

    Kizarek86 Lotus team
    Lotus team

    Регистрация:
    20 июл 2007
    Сообщения:
    857
    Симпатии:
    5
    Morpheus, Ronchik, спасибо за помощь, с этим разобрались. Поля не кирилицей называю, привычка. А что бывают косяки из-за латинских имён полей?
     
  8. morpheus

    morpheus скриптописец

    Регистрация:
    7 авг 2006
    Сообщения:
    3.927
    Симпатии:
    0
    Для: Ерюков Алексей
    Круто, но много, да и не про сохранение велась реч ( это можно изобразить инпут валидейшенами )

    <!--QuoteBegin-kizarek+23:07:2007, 10:03 -->
    <span class="vbquote">(kizarek @ 23:07:2007, 10:03 )</span><!--QuoteEBegin-->А что бывают косяки из-за латинских имён полей?
    [snapback]73007" rel="nofollow" target="_blank[/snapback]​
    [/quote]
    Это как минимум плохой тон(кирилица)!

    Для: Ronchik
    Спасибо, незаметил
     
  9. Гость

    Для: Morpheus
    Насколько я понял надо было сделать, чтобы при невведенных данных не было выхода из документа. Я собственно и подкинул код: если Вы жмете на выход, то появляется сообщение: сохранить или нет. Если сохранить, то извольте поля заполнить, если нет - то выход
     
  10. Medevic

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

    Регистрация:
    10 дек 2004
    Сообщения:
    3.346
    Симпатии:
    2
    <!--QuoteBegin-kizarek+23:07:2007, 11:03 -->
    <span class="vbquote">(kizarek @ 23:07:2007, 11:03 )</span><!--QuoteEBegin-->А что бывают косяки из-за латинских имён полей?
    [snapback]73007" rel="nofollow" target="_blank[/snapback]​
    [/quote]
    Из-за латинских как раз не бывают. Из-за русских были.
     
Загрузка...
Похожие Темы - Валидация
  1. Nerkon
    Ответов:
    0
    Просмотров:
    982
  2. Eugen
    Ответов:
    5
    Просмотров:
    2.120
  3. xKlonx
    Ответов:
    9
    Просмотров:
    2.388
  4. vital
    Ответов:
    3
    Просмотров:
    2.637
  5. LuMee
    Ответов:
    4
    Просмотров:
    3.285

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