Проблема. Сохранение и переоткрытие документа.

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

  1. NeoSimvolist

    NeoSimvolist Гость

    Задача в следующем:
    Пользователь открывает документ. Нажимает кнопочку н-р: "зарегистрировать".
    1) производятся некоторые изменения в текущем документе. (независимо от того, в режиме редактирования или просмотра док.)
    2) изменения сохраняются. (прозрачно для пользователя)
    3) документ переоткрывается чтоб изменения отобразились.

    Вот наткнулся на такой код:

    While Not doc.Save(False,False) ' Между делом поясните мне смысл этой нетривиалльно конструкции? зачем сохранять до тех пор пока не тРу?
    Wend
    Call uidoc.Close(True)
    Call ws.EditDocument(False,doc)

    Он работает как надо, но при выполнении этого кода сохраненный док открывается в новом окне!
     
  2. hosm

    hosm * so what *

    Регистрация:
    18 май 2009
    Сообщения:
    2.450
    Симпатии:
    7
    есть какой-то там по счету параметр - newInstance, отвечающий за открытие в том же\новом окне, посмотрите внимательно параметры.
     
  3. lmike

    lmike нет, пердело совершенство
    Команда форума Lotus team

    Регистрация:
    27 авг 2008
    Сообщения:
    6.073
    Симпатии:
    299
    зекундочку - а чё за фокус - ведь закрыли окно (Close)! Следующее будет новым :welcome: - не?
     
  4. VladSh

    VladSh начинающий
    Lotus team

    Регистрация:
    11 дек 2009
    Сообщения:
    1.251
    Симпатии:
    2
    Я точно изменил бы этот код, т.к. если док после отображения на экране изменил агент, то True не вернётся никогда, т.е. код застынет в бесконечном цикле, а потом выпадет по ошибке.
    Если такого ни разу ещё не случалось, то это не гарантирует что в будущем такое не случится.
     
  5. NeoSimvolist

    NeoSimvolist Гость

    Ребяты, мне нужно сделать так, чтобы нажав на кнопочку в контексте открытого дока (независимо от того в режиме просмотра или в режиме редактирования), в определенные поля вбились данные и док сохранился сразуже.
    А если программно не сохранять, то пользователь может закрыть документ не сохраняя и толку от того, что нажимали кнопку нема!.
    und?
     
  6. alik86

    alik86 Lotus team
    Lotus team

    Регистрация:
    20 ноя 2008
    Сообщения:
    465
    Симпатии:
    0
    А добавьте в кнопку конструкцию типа если не EditMode то переводить в EditMode, теперь вбиваете в определенные поля данные, тут же сохраняете документ... Что-то вроде:
    Код (Text):
    Set DocUI = Wsp.CurrentDocument
    Set Doc = DocUI.Document
    DocUI.EditMode = True
    'вносите изменения
    Call DocUI.Refresh 
    Call Doc.save( True, True, True)       
    DocUI.EditMode = False
     
  7. VladSh

    VladSh начинающий
    Lotus team

    Регистрация:
    11 дек 2009
    Сообщения:
    1.251
    Симпатии:
    2
    Это неправильно [Save(True, True)], т.к.
    - во-1, пользователю не даётся возможности отменить своё действие (это может быть оправдано только для режима чтения);
    - во-2, открывается возможность создания конфликта, а также возможность затереть данные записанные другим процессом от этого же пользовате6ля.

    И это правильно, т.к.
    - если пользователь будет закрывать документ без сохранения, то ему вылетит сообщение о том, что док не сохранён, и он сможет это сделать (если это нужно) или не сделать (если он передумал), т.е. есть возможность самому принять решение;
    - уменьшается вероятность возникновения ситуаций, в которых возможны "недоразумения"..

    Если уж так хочется отобрать у пользователя возможность отменить действие (правда я не понимаю, зачем?), то для режима редактирования нужно пытаться сохранять документ соответствующим ему методом, т.к. NotesUIDocument.Save().
     
Загрузка...
Похожие Темы - Проблема Сохранение переоткрытие
  1. c0de3r
    Ответов:
    5
    Просмотров:
    119
  2. DobermannTT
    Ответов:
    10
    Просмотров:
    134
  3. SoulPaladin
    Ответов:
    4
    Просмотров:
    128
  4. Artael
    Ответов:
    1
    Просмотров:
    109
  5. ENSLER
    Ответов:
    0
    Просмотров:
    102

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