Небольшой пример шаблона

Clarion, Clarion 7

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

Правила форума
При написании вопроса или обсуждении проблемы, не забывайте указывать версию Clarion который Вы используете.
А так же пользуйтесь спец. тегами при вставке исходников!!!
Ответить
Аватара пользователя
Admin
Администратор
Сообщения: 3959
Зарегистрирован: 05 Июль 2005, 15:59
Откуда: Хабаровск
Благодарил (а): 25 раз
Поблагодарили: 22 раза
Контактная информация:

Небольшой пример шаблона

Сообщение Admin »

Просто обычно кнопки привязывают к конкретному бровзу, и тогда просто без вашего выбора файлов получают %Primary файл из родительского шаблона.
Также можно привязываться не к бровзу а к любому шаблону, к примеру к SaveButton(ABC) - extension на форме.

Вот пример шаблона и картинки:

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

#TEMPLATE(TestABC,'Test ABC'),FAMILY('ABC')
#CONTROL(BrowseSomeButton,'Browse Some Button'),REQ(BrowseBox(ABC))
  CONTROLS
    BUTTON('Some button #&1'),USE(?SomeButton1)
    BUTTON('Some button #&2'),USE(?SomeButton2)
  END
#ATSTART
  #DECLARE(%SomeControl1)
  #DECLARE(%SomeControl2)
  #FOR(%Control),WHERE(%ControlInstance = %ActiveTemplateInstance)
    #IF(%ControlOriginal = '?SomeButton1')
      #SET(%SomeControl1,%Control)
    #END
    #IF(%ControlOriginal = '?SomeButton2')
      #SET(%SomeControl2,%Control)
    #END
  #ENDFOR
  #FIX(%File, %Primary)
#ENDAT
#AT(%ControlEventHandling, %SomeControl1, 'Accepted'),PRIORITY(6000)
  ! %%Primary - файл бровза, %%PrimaryKey - ключ бровза
  MESSAGE('%%Primary: %Primary<13,10>%%PrimaryKey: %PrimaryKey')
#ENDAT
#AT(%ControlEventHandling, %SomeControl2, 'Accepted'),PRIORITY(6000)
  ! %%FilePrefix - префикс файла, %%FilePrimaryKey - основной ключ бровза (может быть не равен %%PrimaryKey
  ! все ключи перебрать по %%Key
  #! повторно фиксируем для наглядности
  #FIX(%File, %Primary) #!
  #FOR(%Key)
  ! ключ: %Key
  #ENDFOR
  MESSAGE('%%FilePrefix: %FilePrefix<13,10>%%FilePrimaryKey: %FilePrimaryKey')
#ENDAT
Вид в дереве шаблонов на окне
2022-04-05_22-04-59.png
2022-04-05_22-04-59.png (5 КБ) 1148 просмотров
Кнопки на окне (шаблон привязан к бровзу)
2022-04-05_22-05-26.png
2022-04-05_22-05-26.png (4.46 КБ) 1148 просмотров
Тут видно что расширение привязано к бровзу
2022-04-05_22-04-32.png
2022-04-05_22-04-32.png (21.5 КБ) 1148 просмотров
генерится примерно такой код:

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

...
CASE ACCEPTED()                                                                                           
OF ?SomeButton1:2                                                                                         
  ThisWindow.Update()                                                                                     
    ! %Primary - файл бровза, %PrimaryKey - ключ бровза                                                   
    MESSAGE('%Primary: Demo<13,10>%PrimaryKey: Dem:PrimaryKey')                                           
OF ?SomeButton2:2                                                                                         
  ThisWindow.Update()                                                                                     
    ! %FilePrefix - префикс файла, %FilePrimaryKey - основной ключ бровза (может быть не равен %PrimaryKey
    ! все ключи перебрать по %Key                                                                         
    ! ключ: Dem:PrimaryKey                                                                                
    MESSAGE('%FilePrefix: Dem<13,10>%FilePrimaryKey: ')                                                   
END                                                                                                       
...
Русская дока к шаблонам. Старая но я по ней учился.
Template lang (russian).zip
(154.84 КБ) 130 скачиваний
Рай совершает ошибки ничуть не реже чем ад. Просто у него хорошая пресса
Ответить