Как вставить код в точку вставки внутри Routine при написании шаблона

Clarion, Clarion 7

Модератор: Дед Пахом

Правила форума
При написании вопроса или обсуждении проблемы, не забывайте указывать версию Clarion который Вы используете.
А так же пользуйтесь спец. тегами при вставке исходников!!!
Аватара пользователя
finsoftrz
✯ Ветеран ✯
Сообщения: 5644
Зарегистрирован: 06 Ноябрь 2014, 12:48
Благодарил (а): 20 раз
Поблагодарили: 82 раза

Как вставить код в точку вставки внутри Routine при написании шаблона

Сообщение finsoftrz »

Выглядит как 3 разрозненных части.
Надо начинать с того, что хотите в итоге получить. Я оставлю несколько замечаний.
1. Все свои символы лучше начинать с какого-то своего префикса, например, вместо %FIELDSelect использовать %mpnFIELDSelect. Чтобы в дальнейшем избегать конфликтов в названиях. Аналогично для названий самих шаблонов.
2. Если контрол шаблон имеет родительский шаблон (REQ), то доступны символы из этого родительского шаблона. Например, если родительским является шаблон броуза, то метку его list контрола мы можем получить через %ListControl, а префикс рутинок через %InstancePrefix. Это все можно посмотреть в родительском шаблоне.
3. Вначале стандартно определили метку кнопки в контрол шаблоне, а затем вставляете код, никак не ассоциируясь с ней. Если нужно сделать обработку нажатия кнопки, то это будет выглядеть, к примеру, так:

Код: Выделить всё

#AT(%ControlEventHandling,%ButtonF10,'Accepted')
  ...
#ENDAT
Сделать кнопку недоступной при пустом списке в броуз:

Код: Выделить всё

#AT(%BrowseBoxEmpty,%ActiveTemplateParentInstance)  #! скрыть контролы при пустом browse
  #IF(%ButtonF10)
 %ButtonF10{Prop:Disable} = True
  #ENDIF
#ENDAT
Сделать кнопку доступной при наличии записей в броуз:

Код: Выделить всё

#AT(%BrowseBoxNotEmpty,%ActiveTemplateParentInstance)  #! раскрыть контролы, если непустой browse
  #IF(%ButtonF10)
 %ButtonF10{Prop:Disable} = False
  #ENDIF
#ENDAT
В общем, язык шаблонов очень мощный инструмент, надо только разобраться с логикой его работы. Для этого есть достаточно неплохой help и примеры практического использования в самих шаблонах.
C6/C12, ШВС, tps/btrieve.
Ответить