Страница 1 из 1
Получить список используемых полей в созданом окне
Добавлено: 12 Февраль 2015, 14:40
gopstop2007
Как получить список имен(переменных) полей описанных в БД для созданного W- окна. С последующим использованием этого списка для обработки по условию указаных полей перед открытием W- окна. Это необходимо, чтобы в зависимости от прав доступа, присвоить свойства (hide,disable) или значения для этих полей. Буду рад любой подсказке.
Получить список используемых полей в созданом окне
Добавлено: 12 Февраль 2015, 16:22
kreator
Чего только люди не хотят?
Первое. Перед открытием окна ничего, вообще, получить нельзя.
Второе. После открытия. У каждого контрола есть "Use"-значение. Теоретически должно начинаться с 1 (единицы). Практически можно сделать цикл от первого контрола до последнего (только если контролы не создаются динамически). У каждого контрола в зависимости от типа есть свой набор свойств. Честно говоря, сомневаюсь, что, например, если в дизайнере окна кнопка помечена как "?Button1", то это название можно вытянуть.
Третье. Я бы сузил задачу, больно общий механизм. Зачем контролировать панели, группы и т.д. Контролировать кнопки ещё более-менее реально.
Получить список используемых полей в созданом окне
Добавлено: 12 Февраль 2015, 17:04
Дед Пахом
Вообще-то для того шаблоны и придуманы
Получить список используемых полей в созданом окне
Добавлено: 13 Февраль 2015, 3:29
Admin
kreator писал(а): Честно говоря, сомневаюсь, что, например, если в дизайнере окна кнопка помечена как "?Button1", то это название можно вытянуть.
Кто то писал что была недокументированная функция. Yufil кажется. Мне нужно было но так и не воспользовался.
Дед Пахом писал(а): Вообще-то для того шаблоны и придуманы
Именно. Шаблоны - наше все!
Получить список используемых полей в созданом окне
Добавлено: 13 Февраль 2015, 11:45
gopstop2007
kreator писал(а):Чего только люди не хотят?

Этим и живем, что чего то хотим
kreator писал(а):Первое. Перед открытием окна ничего, вообще, получить нельзя.
Ну если загнать список контролов через шаблон(template) или еще как... что я и пытаюсь в данной теме узнать от уважаемого сообщества. Если бы кто черканул пару строк такого текста в виде шаблона
Код: Выделить всё
CQ Queue
Lbl String(40)
Feq Long
End
CODE
X# = ?MYF:Field1{PROP:FEQ}
CQ.Lbl = 'MYF:Field1' ! получить метку(label) поля
CQ.Feq = X#
Add(CQ)
и как это вытащить при открытии окна
kreator писал(а):Второе. После открытия. У каждого контрола есть "Use"-значение. Теоретически должно начинаться с 1 (единицы). Практически можно сделать цикл от первого контрола до последнего (только если контролы не создаются динамически). У каждого контрола в зависимости от типа есть свой набор свойств. Честно говоря, сомневаюсь, что, например, если в дизайнере окна кнопка помечена как "?Button1", то это название можно вытянуть.
Ну почему, можно явно назначить номера полей всех элементов управления, которые вы хотите динамически выбирать. Пример: USE(MyVar1,100), USE(MyVar2,101) и т.д. Может возможны варианты о которых я не знаю и кто-то поделится

Получить список используемых полей в созданом окне
Добавлено: 13 Февраль 2015, 12:47
kreator
А зачем шаблон? После открытия окна и так всё известно. Вот мой пример (реально работает):
Код: Выделить всё
loop i#=?Файл to ?ПомощьОпрограмме by -1
if (Есть доступ к пункту)
i#{prop:Disable} = False
else
i#{prop:Disable} = True
end
end
"(Есть доступ к пункту)" - условность, на самом деле здесь идёт вызов функции, которая проверяет доступ пользователя к конкретному пункту меню фрейма (естественно, есть в БД таблица с этими данными).
И ещё есть текст, в котором идёт проверка на появление нового пункта меню и автоматического добавления его в БД. Для идентификации использую метку prop:HLP.
Получить список используемых полей в созданом окне
Добавлено: 13 Февраль 2015, 13:56
gopstop2007
Admin писал(а): Кто то писал что была недокументированная функция. Yufil кажется. Мне нужно было но так и не воспользовался.
спасибо за подсказку, вот нашел
Код: Выделить всё
ClaFieldName(LONG),NAME('Cla$FieldName'),CSTRING,PROC
передаешь ей FEQ поля и она тебе возвращает ?Button1 и т.д
вот еще по теме
http://forum.clarionlife.net/phpbb/view ... ?f=1&t=369