Поймать измениние полей ( Edit/comput/cfd/cwc )

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

  1. morpheus

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

    Регистрация:
    7 авг 2006
    Сообщения:
    3.927
    Симпатии:
    0
    Доброе время суток
    вопрос как отловить что значение поля было изменено ( в УИ пользователя )

    идея на event Onchanged поля записывать глоб. переменную чтонить и при сохранении дока протоколировать всесь этот хлам.

    а как же быть с компутедными/cfd/cwc полями? Сам нотес ведь както отлавливает что в док. были изменены хоть какието поля и просить сохраниться! как это можно отловить?

    Вариант - раз просить сохранить - не совсем подходит ведь юзвер и так может нажать на кнопу сохранения. важно узнать какие поля были изменены
     
  2. Medevic

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

    Регистрация:
    10 дек 2004
    Сообщения:
    3.346
    Симпатии:
    2
    Для: Morpheus
    В PostOpen создаем специальный документ doc1 с полями из текущего документа.
    В PostSave создаем специальный документ doc2 с полями из текущего документа.
    Там же сравниваем. Создаем лог. doc1 и doc2 удаляем. :)
     
  3. morpheus

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

    Регистрация:
    7 авг 2006
    Сообщения:
    3.927
    Симпатии:
    0
    Для: Medevic
    ДУмал, біло дело - но вот не зочеться плодить доки, хотелось бы както отловить именно ивентами или может есть скрытые поля ... ун сам же нотес гад както отлавливает
     
  4. Medevic

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

    Регистрация:
    10 дек 2004
    Сообщения:
    3.346
    Симпатии:
    2
    Для: Morpheus
    Посмотрел как у меня сделано. :)
    Сохранять-то доки (doc1 и doc2) необязательно. Они в памяти. Значит и удалять не нужно. Ничего не плодится.
     
  5. Omh

    Omh Lotus team
    Lotus team

    Регистрация:
    4 июл 2007
    Сообщения:
    2.210
    Симпатии:
    0
    Ну можно не делать лишних доков: мне самому этот подход не очень нравиться.
    У меня это дело реализовано библиотекой с типом и процедурами, обрабатывающими этот тип.
    В initialize дефайню, какие поля надо отслеживать.
    На PostOpen зачитываю, в нужный момент проверяю соответсвие зачитанных полей с реальными данными.

    Это немного не то, что тебе надо (т.к. отслеживаются не все поля, а только предефайненные), но идея вполне понятна :)

    Я так понимаю, тебе хочется воспользоваться чем-то более низкоуровневым :)
     
  6. morpheus

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

    Регистрация:
    7 авг 2006
    Сообщения:
    3.927
    Симпатии:
    0
    <!--QuoteBegin-Omh+19:09:2007, 10:19 -->
    <span class="vbquote">(Omh @ 19:09:2007, 10:19 )</span><!--QuoteEBegin-->Я так понимаю, тебе хочется воспользоваться чем-то более низкоуровневым
    [snapback]78770" rel="nofollow" target="_blank[/snapback]​
    [/quote]
    именноо.. хочу схватить именно сам факт изменения! тот каканный ФЛАГ
     
  7. medin84

    medin84 Well-Known Member

    Регистрация:
    27 июн 2007
    Сообщения:
    106
    Симпатии:
    0
    <!--QuoteBegin-Morpheus+19:09:2007, 12:59 -->
    <span class="vbquote">(Morpheus @ 19:09:2007, 12:59 )</span><!--QuoteEBegin-->важно узнать какие поля были изменены
    [snapback]78763" rel="nofollow" target="_blank[/snapback]​
    [/quote]
    Я не профи.
    Но все же. Я както делал через notes.ini
    В PostOpen записывал значения всех полей, потом при выходе сравнивал значения.
     
  8. Constantin A Chervonenko

    Constantin A Chervonenko Well-Known Member

    Регистрация:
    30 май 2006
    Сообщения:
    1.288
    Симпатии:
    0
    В background-е (т.е. ПОСЛЕ сохранения в базу) измененные поля можно отловить по свойству LastModified
     
  9. morpheus

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

    Регистрация:
    7 авг 2006
    Сообщения:
    3.927
    Симпатии:
    0
    Для: Constantin A Chervonenko
    знаю, но мне надо в УИ до сохранения желательно, я так понимаю это никак беюз сравнения дока с открытия и до сохранения
     
  10. Omh

    Omh Lotus team
    Lotus team

    Регистрация:
    4 июл 2007
    Сообщения:
    2.210
    Симпатии:
    0
    Для: Morpheus
    Очевидно никак B)
     
  11. azat20

    azat20 Well-Known Member

    Регистрация:
    22 июл 2008
    Сообщения:
    244
    Симпатии:
    0
    не могли бы написать что написать в initialize и какая проверка на postopen
     
  12. Omh

    Omh Lotus team
    Lotus team

    Регистрация:
    4 июл 2007
    Сообщения:
    2.210
    Симпатии:
    0
    У меня там тип состоящий из 2-х мемберов: ItemName и ItemText + процедуры обрабатывающие эти типы.
    А initilaize я декларю массив моего типа и заполняю всем элементам мембер ItemName (что бы знать, какие айтемы отслеживать)
    На посопене заполняю массив.

    Сейчас вижу, что это дело проще сдеать list'ом, где tag - имя айтема, а значение, соответсвенно, значение айтема.
    Видимо, писал библиотечку, когда ещё не научился готовить листы :)
     
  13. morpheus

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

    Регистрация:
    7 авг 2006
    Сообщения:
    3.927
    Симпатии:
    0
    да лист удобнейшая вещь )))
     
  14. azat20

    azat20 Well-Known Member

    Регистрация:
    22 июл 2008
    Сообщения:
    244
    Симпатии:
    0
    list... ни разу не сталкивался!напишите,пожалуйста,что это такое и с чем его едят
     
  15. Omh

    Omh Lotus team
    Lotus team

    Регистрация:
    4 июл 2007
    Сообщения:
    2.210
    Симпатии:
    0
    Так это, domino designer help установлен?
     
Загрузка...
Похожие Темы - Поймать измениние полей
  1. vitte
    Ответов:
    17
    Просмотров:
    1.109
  2. fedotxxl
    Ответов:
    8
    Просмотров:
    4.024

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