Редактирование собственной организации

Администрирование баз данных (Pervasive.SQL, MS SQL, Oracle, утилита Support)

Модераторы: m0p3e, edward_K, Модераторы

Редактирование собственной организации

Сообщение maikl » Пт май 15, 2020 01:51

Как то получается у пользователей отредактировать собственную организацию.
Как бы настроить так, чтобы они не могли это делать ?
Подскажите
maikl
Местный житель
 
Сообщения: 1503
Зарегистрирован: Вт мар 29, 2005 17:49
Откуда: Тверь
Reputation point: 1

Re: Редактирование собственной организации

Сообщение oiko » Пт май 15, 2020 14:17

Попробуйте докомпилировать интерфейс katorg запретите событие cmedit для своей организации.
oiko
Местный житель
 
Сообщения: 409
Зарегистрирован: Вт мар 29, 2005 17:49
Reputation point: 11

Re: Редактирование собственной организации

Сообщение maikl » Пт май 15, 2020 18:14

oiko писал(а):Попробуйте докомпилировать интерфейс katorg запретите событие cmedit для своей организации.

Спасибо. Попробуем
maikl
Местный житель
 
Сообщения: 1503
Зарегистрирован: Вт мар 29, 2005 17:49
Откуда: Тверь
Reputation point: 1

Re: Редактирование собственной организации

Сообщение maikl » Пн май 18, 2020 13:02

У нас исходных текстов ((((
maikl
Местный житель
 
Сообщения: 1503
Зарегистрирован: Вт мар 29, 2005 17:49
Откуда: Тверь
Reputation point: 1

Re: Редактирование собственной организации

Сообщение edward_K » Вс май 31, 2020 10:54

Добавьте свою функцию
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);
    }


Ну и можно еще дополнить процедурой SetEditMode(_canEdit :boolean) например на базе установки прав в cmInit интерфейса
Тут запрет, в своей процедуре вы должны также обеспечить его отмену. Обратите на переменную 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);
    }


Вообще здесь большинство контролей идет на базе настройки RghTbl.NoUpdate.KatOrg - можно при старте интерфейса запомнить ее значение, потом менять ее значение для своих нужд, при выходе из интерфейса восстановить значение.
в Procedure OnSetDefault; вам нужно будет отменять все сделанные вами ограничения.
edward_K
Заслуженный деятель интернет-сообщества
 
Сообщения: 5164
Зарегистрирован: Вт мар 29, 2005 17:49
Откуда: SPB galaxy spb
Reputation point: 115

Re: Редактирование собственной организации

Сообщение Masygreen » Вт июн 23, 2020 20:33

зачем такие сложности ? именно эту запись по Nrec в протекте защитите.. katorg+ groupkatrog (ิили вроде того)
Время ведет!
Masygreen
Местный житель
 
Сообщения: 1088
Зарегистрирован: Чт сен 04, 2008 11:27
Откуда: Москва
Reputation point: 26

Re: Редактирование собственной организации

Сообщение maikl » Вт июн 23, 2020 21:07

Masygreen писал(а):зачем такие сложности ? именно эту запись по Nrec в протекте защитите.. katorg+ groupkatrog (ิили вроде того)

У меня не получилось.
ТП добавит настройку
maikl
Местный житель
 
Сообщения: 1503
Зарегистрирован: Вт мар 29, 2005 17:49
Откуда: Тверь
Reputation point: 1


Вернуться в Администрирование

Кто сейчас на конференции

Сейчас этот форум просматривают: нет зарегистрированных пользователей и гости: 1


cron