![]() |
#6 |
Участник
|
Цитата:
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; Теперь при попытке покинуть измененную карточку клиента выдается сообщение об ошибке. НО! тем не менее изменения сохраняются и если мы еще раз выйдем из карточки клиента, то уже система не "мявкает",т.к. по ее логике уже ничего и не поменялось. В рез-те имеем: измененное поле в карточке клиента, которое на самом деле менять было нельзя. ;-/ Что делать? Переносить-такии код в др.место или ...? Какие есть варианты? Где я опять накосячила? |
|