Получить список используемых полей в созданом окне
Модератор: Дед Пахом
Правила форума
При написании вопроса или обсуждении проблемы, не забывайте указывать версию Clarion который Вы используете.
А так же пользуйтесь спец. тегами при вставке исходников!!!
При написании вопроса или обсуждении проблемы, не забывайте указывать версию Clarion который Вы используете.
А так же пользуйтесь спец. тегами при вставке исходников!!!
-
- Полимат
- Сообщения: 1810
- Зарегистрирован: 25 Март 2009, 21:55
- Благодарил (а): 24 раза
- Поблагодарили: 10 раз
Получить список используемых полей в созданом окне
Как получить список имен(переменных) полей описанных в БД для созданного W- окна. С последующим использованием этого списка для обработки по условию указаных полей перед открытием W- окна. Это необходимо, чтобы в зависимости от прав доступа, присвоить свойства (hide,disable) или значения для этих полей. Буду рад любой подсказке.
“Есть всего 2 типа языков: те, на которые все жалуются и те, которыми никто не пользуется.” — Бьерн Страуструп
-
- ✯ Ветеран ✯
- Сообщения: 5160
- Зарегистрирован: 28 Май 2009, 15:54
- Откуда: Москва
- Благодарил (а): 11 раз
- Поблагодарили: 26 раз
Получить список используемых полей в созданом окне
Чего только люди не хотят?
Первое. Перед открытием окна ничего, вообще, получить нельзя.
Второе. После открытия. У каждого контрола есть "Use"-значение. Теоретически должно начинаться с 1 (единицы). Практически можно сделать цикл от первого контрола до последнего (только если контролы не создаются динамически). У каждого контрола в зависимости от типа есть свой набор свойств. Честно говоря, сомневаюсь, что, например, если в дизайнере окна кнопка помечена как "?Button1", то это название можно вытянуть.
Третье. Я бы сузил задачу, больно общий механизм. Зачем контролировать панели, группы и т.д. Контролировать кнопки ещё более-менее реально.

Первое. Перед открытием окна ничего, вообще, получить нельзя.
Второе. После открытия. У каждого контрола есть "Use"-значение. Теоретически должно начинаться с 1 (единицы). Практически можно сделать цикл от первого контрола до последнего (только если контролы не создаются динамически). У каждого контрола в зависимости от типа есть свой набор свойств. Честно говоря, сомневаюсь, что, например, если в дизайнере окна кнопка помечена как "?Button1", то это название можно вытянуть.
Третье. Я бы сузил задачу, больно общий механизм. Зачем контролировать панели, группы и т.д. Контролировать кнопки ещё более-менее реально.
We are hard at work… for you. 

- Дед Пахом
- Старичок
- Сообщения: 3289
- Зарегистрирован: 07 Июль 2005, 16:51
- Откуда: Москва, Россия
- Благодарил (а): 15 раз
- Поблагодарили: 49 раз
- Контактная информация:
Получить список используемых полей в созданом окне
Вообще-то для того шаблоны и придуманы
С уважением, ДП
- Admin
- Администратор
- Сообщения: 4010
- Зарегистрирован: 05 Июль 2005, 15:59
- Откуда: Хабаровск
- Благодарил (а): 53 раза
- Поблагодарили: 33 раза
- Контактная информация:
Получить список используемых полей в созданом окне
Кто то писал что была недокументированная функция. Yufil кажется. Мне нужно было но так и не воспользовался.
Именно. Шаблоны - наше все!
Рай совершает ошибки ничуть не реже чем ад. Просто у него хорошая пресса
-
- Полимат
- Сообщения: 1810
- Зарегистрирован: 25 Март 2009, 21:55
- Благодарил (а): 24 раза
- Поблагодарили: 10 раз
Получить список используемых полей в созданом окне
Этим и живем, что чего то хотимkreator писал(а):Чего только люди не хотят?

Ну если загнать список контролов через шаблон(template) или еще как... что я и пытаюсь в данной теме узнать от уважаемого сообщества. Если бы кто черканул пару строк такого текста в виде шаблонаkreator писал(а):Первое. Перед открытием окна ничего, вообще, получить нельзя.

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

“Есть всего 2 типа языков: те, на которые все жалуются и те, которыми никто не пользуется.” — Бьерн Страуструп
-
- ✯ Ветеран ✯
- Сообщения: 5160
- Зарегистрирован: 28 Май 2009, 15:54
- Откуда: Москва
- Благодарил (а): 11 раз
- Поблагодарили: 26 раз
Получить список используемых полей в созданом окне
А зачем шаблон? После открытия окна и так всё известно. Вот мой пример (реально работает):
"(Есть доступ к пункту)" - условность, на самом деле здесь идёт вызов функции, которая проверяет доступ пользователя к конкретному пункту меню фрейма (естественно, есть в БД таблица с этими данными).
И ещё есть текст, в котором идёт проверка на появление нового пункта меню и автоматического добавления его в БД. Для идентификации использую метку prop:HLP.
Код: Выделить всё
loop i#=?Файл to ?ПомощьОпрограмме by -1
if (Есть доступ к пункту)
i#{prop:Disable} = False
else
i#{prop:Disable} = True
end
end
И ещё есть текст, в котором идёт проверка на появление нового пункта меню и автоматического добавления его в БД. Для идентификации использую метку prop:HLP.
We are hard at work… for you. 

-
- Полимат
- Сообщения: 1810
- Зарегистрирован: 25 Март 2009, 21:55
- Благодарил (а): 24 раза
- Поблагодарили: 10 раз
Получить список используемых полей в созданом окне
спасибо за подсказку, вот нашел
Код: Выделить всё
ClaFieldName(LONG),NAME('Cla$FieldName'),CSTRING,PROC
вот еще по теме http://forum.clarionlife.net/phpbb/view ... ?f=1&t=369
“Есть всего 2 типа языков: те, на которые все жалуются и те, которыми никто не пользуется.” — Бьерн Страуструп