AXForum  
Вернуться   AXForum > Microsoft Dynamics NAV > NAV: Программирование
All
Забыли пароль?
Зарегистрироваться Правила Справка Пользователи Сообщения за день Поиск

 
 
Опции темы Поиск в этой теме Опции просмотра
Старый 16.12.2010, 15:17   #6  
Kadawrik is offline
Kadawrik
Участник
 
279 / 11 (1) +
Регистрация: 04.11.2010
Цитата:
Сообщение от AlexB Посмотреть сообщение
Весь фокус в том, что ChangeLog-функционал реагирует/срабатывает только на изменения, вносимые user'ом руками и на изменения из программного кода не реагирует,
( типа customer.MODIFY(TRUE); что вам как раз и нужно.
Сделала как Вы сказали. В CU 423 процедуру изменила след. образом: (мои "нововведения" выделены синим)

LogModification(VAR RecRef : RecordRef;VAR xRecRef : RecordRef)
IF NOT IsLogActive(RecRef.NUMBER,0,1) THEN
EXIT;

IF RecRef.NUMBER = 18 THEN BEGIN // Machen das nur für Tabelle 18 - Customer
BenutzerEinrRec.GET(USERID);
xFldRef := xRecRef.FIELDINDEX(65); //65 - Index vom Feld "Resposibility Center"
CustRespCtr := xFldRef.VALUE;
END;


FOR i := 1 TO RecRef.FIELDCOUNT DO BEGIN
FldRef := RecRef.FIELDINDEX(i);
xFldRef := xRecRef.FIELDINDEX(i);
IF IsNormalField(RecRef.NUMBER,FldRef.NUMBER) THEN
IF FORMAT(FldRef.VALUE) <> FORMAT(xFldRef.VALUE) THEN

//SSG.JK. BEGIN
IF RecRef.NUMBER = 18 THEN BEGIN
IF (BenutzerEinrRec."Sales Resp. Ctr. Filter" <> '') THEN
IF (FldRef.NAME <> 'Information') AND (FldRef.NAME <> 'Note') AND (FldRef.NAME <> 'Last Date Modified') THEN
IF (STRPOS(BenutzerEinrRec."Sales Resp. Ctr. Filter",COPYSTR(CustRespCtr,1,4)) = 0)
THEN BEGIN
ERROR('Änderung von %1 nicht möglich: Dieser Debitor ist einer anderen Zuständigkeitseinheit zugeordnet!',FldRef.NAME);
EXIT;
END;
END;
//SSG.JK.


IF IsLogActive(RecRef.NUMBER,FldRef.NUMBER,1) THEN
InsertLogEntry(FldRef,xFldRef,RecRef,1);
END;

Теперь при попытке покинуть измененную карточку клиента выдается сообщение об ошибке. НО! тем не менее изменения сохраняются и если мы еще раз выйдем из карточки клиента, то уже система не "мявкает",т.к. по ее логике уже ничего и не поменялось. В рез-те имеем: измененное поле в карточке клиента, которое на самом деле менять было нельзя. ;-/
Что делать?
Переносить-такии код в др.место или ...? Какие есть варианты? Где я опять накосячила?
 


Ваши права в разделе
Вы не можете создавать новые темы
Вы не можете отвечать в темах
Вы не можете прикреплять вложения
Вы не можете редактировать свои сообщения

BB коды Вкл.
Смайлы Вкл.
[IMG] код Вкл.
HTML код Выкл.
Быстрый переход

Рейтинг@Mail.ru
Часовой пояс GMT +3, время: 04:43.