Помощь - Поиск - Пользователи - Календарь
Полная версия этой страницы: Поймать измениние полей ( Edit/comput/cfd/cwc )
Форум программистов > Базы данных и администрирование > Lotus > Lotus - Программирование
Morpheus
Доброе время суток
вопрос как отловить что значение поля было изменено ( в УИ пользователя )

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

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

Вариант - раз просить сохранить - не совсем подходит ведь юзвер и так может нажать на кнопу сохранения. важно узнать какие поля были изменены
Medevic
Для: Morpheus
В PostOpen создаем специальный документ doc1 с полями из текущего документа.
В PostSave создаем специальный документ doc2 с полями из текущего документа.
Там же сравниваем. Создаем лог. doc1 и doc2 удаляем. smile.gif
Morpheus
Для: Medevic
ДУмал, біло дело - но вот не зочеться плодить доки, хотелось бы както отловить именно ивентами или может есть скрытые поля ... ун сам же нотес гад както отлавливает
Medevic
Для: Morpheus
Посмотрел как у меня сделано. smile.gif
Сохранять-то доки (doc1 и doc2) необязательно. Они в памяти. Значит и удалять не нужно. Ничего не плодится.
Omh
Ну можно не делать лишних доков: мне самому этот подход не очень нравиться.
У меня это дело реализовано библиотекой с типом и процедурами, обрабатывающими этот тип.
В initialize дефайню, какие поля надо отслеживать.
На PostOpen зачитываю, в нужный момент проверяю соответсвие зачитанных полей с реальными данными.

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

Я так понимаю, тебе хочется воспользоваться чем-то более низкоуровневым smile.gif
Morpheus
Цитата(Omh @ 19:09:2007, 10:19 )
Я так понимаю, тебе хочется воспользоваться чем-то более низкоуровневым
*

именноо.. хочу схватить именно сам факт изменения! тот каканный ФЛАГ
medin84
Цитата(Morpheus @ 19:09:2007, 12:59 )
важно узнать какие поля были изменены
*

Я не профи.
Но все же. Я както делал через notes.ini
В PostOpen записывал значения всех полей, потом при выходе сравнивал значения.
Constantin A Chervonenko
В background-е (т.е. ПОСЛЕ сохранения в базу) измененные поля можно отловить по свойству LastModified
Morpheus
Для: Constantin A Chervonenko
знаю, но мне надо в УИ до сохранения желательно, я так понимаю это никак беюз сравнения дока с открытия и до сохранения
Omh
Для: Morpheus
Очевидно никак smile.gif
Azat
Цитата(Omh @ 19:09:2007 - 07:19) *
Ну можно не делать лишних доков: мне самому этот подход не очень нравиться.
У меня это дело реализовано библиотекой с типом и процедурами, обрабатывающими этот тип.
В initialize дефайню, какие поля надо отслеживать.
На PostOpen зачитываю, в нужный момент проверяю соответсвие зачитанных полей с реальными данными.

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


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

Сейчас вижу, что это дело проще сдеать list'ом, где tag - имя айтема, а значение, соответсвенно, значение айтема.
Видимо, писал библиотечку, когда ещё не научился готовить листы smile.gif
Morpheus
Цитата(Omh @ 25:08:2008 - 15:29) *
Сейчас вижу, что это дело проще сдеать list'ом, где tag - имя айтема, а значение, соответсвенно, значение айтема.

да лист удобнейшая вещь )))
Azat
list... ни разу не сталкивался!напишите,пожалуйста,что это такое и с чем его едят
Omh
Так это, domino designer help установлен?
Для просмотра полной версии этой страницы, пожалуйста, пройдите по ссылке.
Форум IP.Board © 2001-2008 IPS, Inc.