![]() |
#10 |
Участник
|
Цитата:
X++: container loggedFields = [ fieldNum(T1, F1), fieldNum(T1, F2) ... ]; for(i=1; i<=conLen(loggedFields); i++) { fieldId = conPeek(loggedFields, i) if (record.(fieldId)!=record.orig().(fieldId)) changedFields += fieldId; } Цитата:
- да и как-то не оптимально каждый раз проверять изменилось ли что-либо из них, но самое главное что validateWrite() вызывается один раз для всех полей - если например использовать для ввода комментария диалог, то после сохранения изменений в строке выскакивает сразу друг за другом несколько (столько, сколько полей мы изменили) диалоговых окон
X++: Dialog d = new Dialog('comnnmants'); for(i=1;i<=conLen(changedFields);i++) { d.addField(typeId(Commant), fieldId2PName(record.table, conPeek(fields, i)); } Можно добавить новый таб с гридом с комментами по изменениями (хранить во временной таблице) |
|