Маленький вопрос по Querymodechange

Тема в разделе "Lotus - Программирование", создана пользователем SOFTOBZOR.ru, 15 янв 2007.

Статус темы:
Закрыта.
  1. SOFTOBZOR.ru

    SOFTOBZOR.ru Гость

    Мне необходимо что-бы если док. редактирют (начинают редактировать) значение 1 поля очищалось.
    Делаю так:

    Код (Text):
    Dim doc As NotesDocument
    Dim item As NotesItem
    Set item = doc.ReplaceItemValue _
    ( "Pole", "" )
    'Call doc.Save( True, True )
    Ругаеться....
     
  2. Medevic

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

    Регистрация:
    10 дек 2004
    Сообщения:
    3.346
    Симпатии:
    2
    doc не определен.
     
  3. SOFTOBZOR.ru

    SOFTOBZOR.ru Гость

    Medevic, а пример для глупых :)
     
  4. oshmianski

    oshmianski Гость

    Для: SOFTOBZOR.ru
    в какой момент и где делаешь? как ругается?


    ммм, в QueryModeChange. мимо пролетело. извиняюсь.
    как ругается?
     
  5. SOFTOBZOR.ru

    SOFTOBZOR.ru Гость

    Засунул в Querymodechange
    В документе есть кнопка [редактировать]
    Тыкаю в нее
    Код (Text):
    ---------------------------
    Lotus Notes
    ---------------------------
    Object variable not set
    ---------------------------
    ОК  
    ---------------------------
     
  6. morpheus

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

    Регистрация:
    7 авг 2006
    Сообщения:
    3.927
    Симпатии:
    0
    <!--QuoteBegin-SOFTOBZOR.ru+15:01:2007, 11:51 -->
    <span class="vbquote">(SOFTOBZOR.ru @ 15:01:2007, 11:51 )</span><!--QuoteEBegin-->а пример для глупых
    [snapback]53164" rel="nofollow" target="_blank[/snapback]​
    [/quote]
    Код (Text):
     Dim workspace As New NotesUIWorkspace
    Dim uidoc As NotesUIDocument
    Dim doc As NotesDocument
    Set uidoc = workspace.CurrentDocument
    Set doc = uidoc.Document
    ....
     
  7. Kee_Keekkenen

    Kee_Keekkenen Well-Known Member

    Регистрация:
    5 сен 2006
    Сообщения:
    616
    Симпатии:
    4
    в декларашионс формы, объяви uidoc и doc, в постопен их (uidoc и doc) инициализируй,
    а в кверимодченч уже используй твой doc
     
  8. oshmianski

    oshmianski Гость

    Для: Morpheus
    Для: Kee_Keekkenen
    вот, е-мае. шустрые ребята. я только покурить вышел... :)
     
  9. SOFTOBZOR.ru

    SOFTOBZOR.ru Гость

    Мужики спасибо работает, но криво!

    Код (Text):
    Sub Querymodechange(Source As Notesuidocument, Continue As Variant)

    Dim workspace As New NotesUIWorkspace
    Dim uidoc As NotesUIDocument
    Dim doc As NotesDocument
    Set uidoc = workspace.CurrentDocument
    Set doc = uidoc.Document
    Dim item As NotesItem

    Set item = doc.ReplaceItemValue( "Factor", "" )
    Call doc.Save( True, True )
    Call workspace.ViewRefresh

    End Sub
    Получается такая бяка, открываю док.
    Есть в нем поле - текстовое, редактируемое которое и нужно очистить.
    Если сделать так [Редактировать] [Закрыть] [Открыть] - то поле очищено
    А если так [Редактировать] [Сохранить] [Закрыть] [Открыть] - то поле не очищено

    Что может быть?
    Т.е. мне надо когда док открыли на редактирование что бы поле это было чистиньким.
     
  10. oshmianski

    oshmianski Гость

    Для: SOFTOBZOR.ru
    поле Factor редактируемое или вычисляемое? какое значение у этого поля по-умолчанию?
    смотри скрипт на QuerySave.
     
  11. SOFTOBZOR.ru

    SOFTOBZOR.ru Гость

    Factor это редактируемое поле, значение по умолчанию = ""
    Когда создаеться документ это поле обязательное для ввода.

    Создают, вводят Foctor, сохраняют, когда редактируют, нужно что-бы это поле очистилось для ввода новых данных и сохраняли.

    Тут хитрость в том что это поле имеет следующий смысл [причина редактирования] есть другое поле в которое заносяться все причины, редактирования данного документа.
    То есть

    [Factor] = "Прична такак-то"

    [FactorLog] = FactorLog+Factor
     
  12. Kee_Keekkenen

    Kee_Keekkenen Well-Known Member

    Регистрация:
    5 сен 2006
    Сообщения:
    616
    Симпатии:
    4
    лучше сделай так
    Код (Text):
    Sub Postmodechange(Source As Notesuidocument)
    Call source.Fieldsettext("Factor","")
    source.Refresh
    End Sub
    если нужно, то сохраняй текущее состояние
     
  13. Fossil Code

    Fossil Code Гость

    Для начала чисто техническое замечание: вот этого всего не нужно по определению.

    Dim workspace As New NotesUIWorkspace
    Dim uidoc As NotesUIDocument
    Dim doc As NotesDocument
    Set uidoc = workspace.CurrentDocument
    Set doc = uidoc.Document

    Вполне довольно Set doc = source.Document. Ведь сорс уже передан как параметр.

    Второе, кто будет писать Continue = FALSE/TRUE? А то бедное событие не может понять, отрабатывать ему или нет.

    Наконец, есть свойство

    To get: flag = notesUIDocument.EditMode
    To set: notesUIDocument.EditMode = flag
    Legal values
    True indicates that the document is in Edit mode.

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

    Удачи!
     
Загрузка...
Статус темы:
Закрыта.

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