Isnewnote

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

  1. Medevic

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

    Регистрация:
    10 дек 2004
    Сообщения:
    3.346
    Симпатии:
    2
    Парочка багов (или фич?).
    Первый:
    Событие QuerySave пустое. В PostSave пишем:
    Код (Text):
    If source.Document.IsNewNote Then Msgbox "true" Else Msgbox "false"
    В результате с запущенным дебаггером мы получим сообщение true, без него - false.

    Второй:
    В QuerySave пишем, например:
    Код (Text):
    Sub Querysave(Source As Notesuidocument, Continue As Variant)
    If Source.Document.Test(0) = "asdas" Then Sleep(1)' на форме есть поле Test
    Continue = True
    End Sub
    В результате получаем false. Если заремарить условие, то true.

    Это что такое?

    Причем во всех случаях происходит сохранение документа. Т.е. в PostSave IsNewNote должно быть всегда False. Или нет?
     
  2. Medevic

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

    Регистрация:
    10 дек 2004
    Сообщения:
    3.346
    Симпатии:
    2
    Оказывается, первый работает только в локальной базе.
    Второй - везде.
     
  3. Fossil Code

    Fossil Code Гость

    А endif намеренно пропущен? Ну и что, что синтаксис позволяет...
     
  4. Medevic

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

    Регистрация:
    10 дек 2004
    Сообщения:
    3.346
    Симпатии:
    2
    Для: Fossil Code
    В смысле пропущен? Не понял вопроса. :rolleyes:
     
  5. morpheus

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

    Регистрация:
    7 авг 2006
    Сообщения:
    3.927
    Симпатии:
    0
    Для: Fossil Code
    +1 к непонявшим вапрос :rolleyes:
     
  6. Hedg

    Hedg Гость

    Ну и чё тут не понятного ?? Fossil Code обратил внимание на то, что оператор if не закрыт endif'ом.
     
  7. Medevic

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

    Регистрация:
    10 дек 2004
    Сообщения:
    3.346
    Симпатии:
    2
    Для: Hedg
    В соответствие с синтаксисом End If мало того, что не нужен, так он не может быть там.
     
  8. Fossil Code

    Fossil Code Гость

    Ну, раззадорили, право!

    Проверил и Ваш вариант и следующий

    Sub Querysave(Source As Notesuidocument, Continue As Variant)
    If Source.Document.Test(0) = "asdas" Then
    Sleep(1)
    End If
    Continue = True
    End Sub

    Преимущество последнего в том, что гораздо проще судить в отладчике, выполняется условие, или нет.

    Впрочем, это лирическое отступление. Так вот, не вижу, почему Вы решили, что "В результате получаем false. Если заремарить условие, то true." False не было вовсе, как и полагает код, т.к. при любом значении поля Test документ сохранялся. Отработка паузы по значению поля также работала правильно... R.7.0.2
     
  9. Medevic

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

    Регистрация:
    10 дек 2004
    Сообщения:
    3.346
    Симпатии:
    2
    <!--QuoteBegin-Fossil Code+9:02:2007, 16:31 -->
    <span class="vbquote">(Fossil Code @ 9:02:2007, 16:31 )</span><!--QuoteEBegin-->Так вот, не вижу, почему Вы решили, что "В результате получаем false. Если заремарить условие, то true." False не было вовсе, как и полагает код, т.к. при любом значении поля Test документ сохранялся.
    [snapback]55646" rel="nofollow" target="_blank[/snapback]​
    [/quote]
    Само условие в QuerySave не имеет значения. Важно то, что происходит потом в событии PostSave
    Сделай так.
    Код (Text):
    Sub Querysave(Source As Notesuidocument, Continue As Variant)
    Msgbox Source.Document.UniversalID
    Continue = True
    End Sub
    Sub Postsave(Source As Notesuidocument)
    If source.Document.IsNewNote Then Msgbox "true" Else Msgbox "false"
    End Sub
    А потом так (заремарина строка):
    Код (Text):
    Sub Querysave(Source As Notesuidocument, Continue As Variant)
    '   Msgbox Source.Document.UniversalID
    Continue = True
    End Sub
    Sub Postsave(Source As Notesuidocument)
    If source.Document.IsNewNote Then Msgbox "true" Else Msgbox "false"
    End Sub
    Так вот в первом случае появится сообщение "true", а во втором "false". Вот и вся багофича.
     
  10. Fossil Code

    Fossil Code Гость

    Понятно. Не так Вас сначала понял. Показалось, что речь иде о двух _разных_ багах. И обусуждал изолированный второй. Заблуждение подкрепилось Вашим вторым постом :)
     
Загрузка...
Похожие Темы - Isnewnote
  1. Cleric-Lviv
    Ответов:
    19
    Просмотров:
    5.310

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