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

  • Автор темы morpheus
  • Дата начала
M

morpheus

Доброе время суток
вопрос как отловить что значение поля было изменено ( в УИ пользователя )

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

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

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

Medevic

Что это ? :)
Green Team
10.12.2004
3 334
1
BIT
6
Для: Morpheus
В PostOpen создаем специальный документ doc1 с полями из текущего документа.
В PostSave создаем специальный документ doc2 с полями из текущего документа.
Там же сравниваем. Создаем лог. doc1 и doc2 удаляем. :)
 
M

morpheus

Для: Medevic
ДУмал, біло дело - но вот не зочеться плодить доки, хотелось бы както отловить именно ивентами или может есть скрытые поля ... ун сам же нотес гад както отлавливает
 

Medevic

Что это ? :)
Green Team
10.12.2004
3 334
1
BIT
6
Для: Morpheus
Посмотрел как у меня сделано. :)
Сохранять-то доки (doc1 и doc2) необязательно. Они в памяти. Значит и удалять не нужно. Ничего не плодится.
 
O

Omh

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

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

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

morpheus

<!--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]
именноо.. хочу схватить именно сам факт изменения! тот каканный ФЛАГ
 
M

medin84

<!--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 записывал значения всех полей, потом при выходе сравнивал значения.
 
30.05.2006
1 345
12
BIT
0
В background-е (т.е. ПОСЛЕ сохранения в базу) измененные поля можно отловить по свойству LastModified
 
M

morpheus

Для: Constantin A Chervonenko
знаю, но мне надо в УИ до сохранения желательно, я так понимаю это никак беюз сравнения дока с открытия и до сохранения
 
A

azat20

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

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

не могли бы написать что написать в initialize и какая проверка на postopen
 
O

Omh

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

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

azat20

list... ни разу не сталкивался!напишите,пожалуйста,что это такое и с чем его едят
 
Мы в соцсетях:

Обучение наступательной кибербезопасности в игровой форме. Начать игру!