31.01.2011, 15:12 | #1 |
Участник
|
Привет всем!
У меня есть некая форма (точнее, 118-General Ledger Setup) Задача состоит в том, чтобы при открытии формы почти всем пользователям запрещалось редактировать 99% контролов (а точнее, все контролы, кроме одного). И нескольким оставшимся пользователям допускалось бы редактировать сразу всё. Для этого на триггере OnOpenForm вызывается простенькая ф-ция, сравнивающая USERID с нужным И далее что-то типа CurrForm."Allow Posting From".EDITABLE:=FALSE; CurrForm."Allow Posting To".EDITABLE:=FALSE; CurrForm."Local Address Format".EDITABLE:=FALSE; ... и идёт длинное-длинное перечисление всех контролов на форме. Решение, само по себе работает, но какое-то оно "неряшливое" Можно ли как-то это оптимизировать? Фактически всё сводится к управлению одним единственным контролом, который должен быть Enabled на фоне всей остальной Disabled-формы. Но тупо присвоить всей форме Disabled, а потом одному-единственному контролу Enabled Navision мне не позволяет ;( Подскажите, как это можно оптимизировать? Чтобы не указывать в коде названия всех-всех контролов. ЗЫ: Пока додумался только переносить контролы на каждой вкладке в отдельные фреймы. И этим фреймам уже ставить св-во Disabled. Так писанины получается гораздо меньше. Но! Возможно, есть какое-то более продвинутое решение (Control ID в цикле. Или как-то через RecordRef можно до них всех добраться?) |
|