Редактирование собственной организации
Модераторы: m0p3e, edward_K, Модераторы
Редактирование собственной организации
Как то получается у пользователей отредактировать собственную организацию.
Как бы настроить так, чтобы они не могли это делать ?
Подскажите
Как бы настроить так, чтобы они не могли это делать ?
Подскажите
Re: Редактирование собственной организации
Попробуйте докомпилировать интерфейс katorg запретите событие cmedit для своей организации.
Re: Редактирование собственной организации
Спасибо. Попробуемoiko писал(а):Попробуйте докомпилировать интерфейс katorg запретите событие cmedit для своей организации.
Re: Редактирование собственной организации
У нас исходных текстов ((((
-
- Заслуженный деятель интернет-сообщества
- Сообщения: 5188
- Зарегистрирован: 29 мар 2005, 17:49
- Откуда: SPB galaxy spb
Re: Редактирование собственной организации
Добавьте свою функцию
Function CanEditTbl : boolean;
например
Ну помимо очевидных способов
Добавьте обработку в
Procedure ProcessMyPick;
Procedure OnUpdateRecord;
в событие окна редактирования
cmAttrib:
Procedure OnPositionChanged;
там есть кстати такой кусок
Ну и можно еще дополнить процедурой SetEditMode(_canEdit :boolean) например на базе установки прав в cmInit интерфейса
Тут запрет, в своей процедуре вы должны также обеспечить его отмену. Обратите на переменную IsReadOnly - вам ее тоже нужно бы переключать туда/сюда.
Вообще здесь большинство контролей идет на базе настройки RghTbl.NoUpdate.KatOrg - можно при старте интерфейса запомнить ее значение, потом менять ее значение для своих нужд, при выходе из интерфейса восстановить значение.
в Procedure OnSetDefault; вам нужно будет отменять все сделанные вами ограничения.
Function CanEditTbl : boolean;
например
Ну помимо очевидных способов
Код: Выделить всё
TableEvent KatOrgImp
cmPositionChanged :
{ ProtetRecord(#KatOrgImp, not CanEditTbl);
if Inherited::HandleEvent(cmPositionChanged)=heAbort abort;
}
cmUpdateRecord :
{ if not CanEditTbl
{ message....
ReReadRecord(#KatOrgImp);
Exit;
}
if Inherited::HandleEvent(cmUpdateRecord)=heAbort abort;
}
cmDeleteRecord :
{ if not CanEditTbl
{ message....
ReReadRecord(#KatOrgImp);
Exit;
}
if Inherited::HandleEvent(cmDeleteRecord)=heAbort abort;
}
end;
Procedure ProcessMyPick;
Procedure OnUpdateRecord;
в событие окна редактирования
cmAttrib:
Procedure OnPositionChanged;
там есть кстати такой кусок
Код: Выделить всё
if boGetTune('RghTbl.NoUpdate.KatOrg')
{
ProtectRecord(#KatOrgImp , TRUE);
ProtectRecord(#KatOrg , TRUE);
ProtectRecord(#KatOrgDescr, TRUE);
}
Тут запрет, в своей процедуре вы должны также обеспечить его отмену. Обратите на переменную IsReadOnly - вам ее тоже нужно бы переключать туда/сюда.
Код: Выделить всё
if ( boGetTune('RghTbl.NoUpdate.KatOrg') )
{
IsReadOnly := TRUE;
InfoProtector.LinkTo(cfsGetCurrentContainerSelf, 'wKatOrg');
InfoProtector.SetProtected(TRUE);
DisableCommand(cmDelete);
DisableCommand(cmInsert);
DisableCommand(cmAddNewRec);
DisableCommand(cmAltInsert);
DisableCommand(cmInsLowLevel);
DisableCommand(cmSaveDoc);
DisableCommand(cmRestoreDoc);
DisableCommand(cmValue20);
DisableCommand(cmValue28);
}
в Procedure OnSetDefault; вам нужно будет отменять все сделанные вами ограничения.
-
- Местный житель
- Сообщения: 1089
- Зарегистрирован: 04 сен 2008, 11:27
- Откуда: Москва
- Контактная информация:
Re: Редактирование собственной организации
зачем такие сложности ? именно эту запись по Nrec в протекте защитите.. katorg+ groupkatrog (ิили вроде того)
Время ведет!
Re: Редактирование собственной организации
У меня не получилось.Masygreen писал(а):зачем такие сложности ? именно эту запись по Nrec в протекте защитите.. katorg+ groupkatrog (ิили вроде того)
ТП добавит настройку