Отмена сохранения формы

Тема в разделе "Lotus - Программирование", создана пользователем LuMee, 11 авг 2006.

  1. LuMee

    LuMee Well-Known Member

    Регистрация:
    2 май 2006
    Сообщения:
    477
    Симпатии:
    0
    Есть у меня форма. При сохранении онной пользователю выдается диалог (NotesUIWorkspace.DialogBox), который пользователь должен заполнить (так я веду историю изменений документа). При этом я хочу сделать так, чтобы при нажатии "Отмена" в этом диалоге документ не сохранялся, оставаясь открытым в режиме редактирования.
    Сохранение у меня могут выполнять два action'а:
    Сохранить и закрыть:
    Код (Text):
    @If(
    @IsValid;
    @Do(
    @Command([FileSave]);
    @Command([FileCloseWindow])
    );

    ""
    )
    и Сохранить:
    Код (Text):
    @If(
    @IsValid;
    @Do(
    @Command([FileSave]);
    @Command([EditDocument]; "0")
    );

    ""
    )
    На Querysave формы пишу код такого рода:
    Код (Text):
    Dim doc As NotesDocument
    Dim db As NotesDatabase
    ...
    If (юзер сделал то, что надо отразить в истории) Then
    Set doc = New NotesDocument(db)
    If workspace.DialogBox(..., doc) Then
    ...
    Call doc.Save(True, True)
    Else
    Continue = False
    End If
    End If
    Проблема заключается в том, что если юзер жмет "Отмену" на диалоге, то, если выполняется Сохранить и закрыть, все равно выдается сообщение, не желаю ли я, мол, сохранить документ. При выполнении Сохранить Notes и вовсе торжественно зависает.
    Подскажите, плз, что же я делаю не так?
     
  2. Murtas

    Murtas Well-Known Member

    Регистрация:
    11 апр 2006
    Сообщения:
    123
    Симпатии:
    0
    не знаю про насчет зависает ... но тут сразу бросается в глаза то, что ты можешь не дать сохранить документ в Querysave ... а в кнопке Save and Close после неудачного сохранения пытаешся закрыть. Вот оно и спрашивает хочешь ли ты сохранить ... по сути нужно нужно запретить и закрытие если чего-то не сделано. Поэтому в твоем случае, видно, лучше разделить кнопки Сохранить и Закрыть.
     
  3. root

    root Гость

    Можно сделать обработку с применением SaveOptions =0
     
  4. LuMee

    LuMee Well-Known Member

    Регистрация:
    2 май 2006
    Сообщения:
    477
    Симпатии:
    0
    Почему не могу не дать сохранить в QuerySave? Он вроде для того и нужен. Кстати, на QueryClose стоит похожий обработчик (диалогов не показывает, а просто проверяет, что все правильно.. если что - Continue = False). Так что по идее он не должен закрываться в принципе.
     
  5. Murtas

    Murtas Well-Known Member

    Регистрация:
    11 апр 2006
    Сообщения:
    123
    Симпатии:
    0
    ... выполняется <!--QuoteBegin-LuMee+11:08:2006, 15:26 -->
    <span class="vbquote">(LuMee @ 11:08:2006, 15:26 )</span><!--QuoteEBegin-->@Command([FileSave]);
    @Command([FileCloseWindow])
    [snapback]42121" rel="nofollow" target="_blank[/snapback]​
    [/quote]

    и если команда @Command([FileSave]); не сохранила документ, а @Command([FileCloseWindow]) выполняется всегда, то показывается диалог.
     
  6. Elena Nefedova

    Elena Nefedova Гость

    Для Lumee:
    Лучший вариант кнопки "Сохранить и закрыть" придумала компания Lotus, когда еще не вошла в IBM:
    Код (Text):
    @If(@Command([FileSave]); @Command([FileCloseWindow]); @Success)
     
Загрузка...

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