AXForum  
Вернуться   AXForum > Microsoft Dynamics NAV > NAV: Программирование
All
Забыли пароль?
Зарегистрироваться Правила Справка Пользователи Сообщения за день Поиск

 
 
Опции темы Поиск в этой теме Опции просмотра
Старый 31.01.2011, 15:12   #1  
jopagames2 is offline
jopagames2
Участник
 
151 / 11 (1) +
Регистрация: 11.02.2010
Привет всем!

У меня есть некая форма (точнее, 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 можно до них всех добраться?)
 


Ваши права в разделе
Вы не можете создавать новые темы
Вы не можете отвечать в темах
Вы не можете прикреплять вложения
Вы не можете редактировать свои сообщения

BB коды Вкл.
Смайлы Вкл.
[IMG] код Вкл.
HTML код Выкл.
Быстрый переход

Рейтинг@Mail.ru
Часовой пояс GMT +3, время: 10:46.