С5.5 ABC
Доброго дня всем. 
Давно уже работает программа, где реализованы права пользователя на Добавление/Изменение/Удаление записи следующим образом: 
В Browse прописываем примерно следующее: 
If Pr_ins=0 then SELF.InsertControl=0.
If Pr_ch=0 then SELF.ChangeControl=0.
If Pr_del=0 then  SELF.DeleteControl=0.
Недавно обнаружен следующий глюк: 
У пользователя запрет на изменение записи, права только на просмотр. 
Таким образом, SELF.InsertControl=0, SELF.ChangeControl=0, SELF.DeleteControl=0.
Доступна только лишь кнопка "Просмотр", которая открывает Update в режиме ViewRecord.
При проверке VM.Reguest = ViewRecord=6
Но в итоге получается так, что "Вьюшка" позволяет пользователю отредактировать поля и, что самое неприятное, эти изменения сохраняются при выходе из Update-а
Что это может быть? 
Заранее спасибо.
			
			
									
						Почему некорректно работает ViewRecord?
Модератор: Дед Пахом
					Правила форума
При написании вопроса или обсуждении проблемы, не забывайте указывать версию Clarion который Вы используете.
А так же пользуйтесь спец. тегами при вставке исходников!!!
	При написании вопроса или обсуждении проблемы, не забывайте указывать версию Clarion который Вы используете.
А так же пользуйтесь спец. тегами при вставке исходников!!!
- 
				optron
 - Активист
 - Сообщения: 114
 - Зарегистрирован: 29 Март 2006, 10:53
 - Откуда: Саранск
 - Контактная информация:
 
Почему некорректно работает ViewRecord?
Еще трабл - в режиме ViewRecord стандартная кнопка ?ОК должна быть Disable. У меня же она доступна. 
И конструкция:
if WM.Request = ViewRecord
Message('ViewRecord') !Для проверки
Disable(?OK)
END
кнопку не дизейблит.
Может где то есть настройка режима ViewRecord?
			
			
									
						И конструкция:
if WM.Request = ViewRecord
Message('ViewRecord') !Для проверки
Disable(?OK)
END
кнопку не дизейблит.
Может где то есть настройка режима ViewRecord?
- Игорь Столяров
 - Ветеран движения
 - Сообщения: 8269
 - Зарегистрирован: 07 Июль 2005, 10:19
 - Откуда: г. Ростов-на-ДоМу
 - Благодарил (а): 34 раза
 - Поблагодарили: 106 раз
 
Почему некорректно работает ViewRecord?
Окно в момент выполнения Disable(?OK) открыто ?
За теми, кто отстал, не возвращаться ! 
 Кодекс
			
						- 
				kreator
 - ✯ Ветеран ✯
 - Сообщения: 5235
 - Зарегистрирован: 28 Май 2009, 15:54
 - Откуда: Москва
 - Благодарил (а): 11 раз
 - Поблагодарили: 26 раз
 
Почему некорректно работает ViewRecord?
Да. Для начала надо посмотреть эти настройки. В Extensions процедуры это называется "Configure View Only form mode". Это для десятки. Для C55 не помню. Возможно там и нет. В какой версии реквест ViewRecord введён?
We are hard at work… for you.   
			
						- 
				optron
 - Активист
 - Сообщения: 114
 - Зарегистрирован: 29 Март 2006, 10:53
 - Откуда: Саранск
 - Контактная информация:
 
Почему некорректно работает ViewRecord?
Так то разобрался...
Нашел где его всё таки дизейлбнуть, но непонятно почему не отрабатывает шаблонно. Есть же там:
Код: Выделить всё
  ! Open Files
  Relate:Opechat.Open
  Relate:OtvOpechat.Open
  Relate:Podr.Open
  Relate:SprDeb.Open
  Relate:SprEI.Open
  Relate:SprKom.Open
  SELF.FilesOpened = True
  SELF.Primary &= Relate:PrihMBP
  IF SELF.Request = ViewRecord
    SELF.InsertAction = Insert:None
    SELF.DeleteAction = Delete:None
    SELF.ChangeAction = 0
    SELF.CancelAction = Cancel:Cancel
    SELF.OkControl = 0
  ELSE
    SELF.OkControl = ?OK
    IF SELF.PrimeUpdate() THEN RETURN Level:Notify.
  END
  ! [Priority 7600]
- 
				kreator
 - ✯ Ветеран ✯
 - Сообщения: 5235
 - Зарегистрирован: 28 Май 2009, 15:54
 - Откуда: Москва
 - Благодарил (а): 11 раз
 - Поблагодарили: 26 раз
 
Почему некорректно работает ViewRecord?
Скорее всего, у Вас в настройках стоит "?OK - None". Поставьте "?OK - Disable" и увидите ниже приведённого Вами текста (в том же самом методе Init) - "DISABLE(?OK)". Я всегда сам контролирую настройки "View Mode", не полагаюсь на стандартный механизм. И, по-моему, в новых версиях (в десятке и т.д.) с этим всё более-менее нормально. А в старых все контролы выставляются в "None" и непонятно зачем.
			
			
									
						We are hard at work… for you.   
			
						