воскресенье, 9 декабря 2007 г.

Форма: this is my first time, часть 2

[id:56]

Разберем подробнее, а что было, собственно, сделано на предыдущем шаге. Мы создали форму VeryFirstForm.

Форма в Аксапте — это класс с готовым функционалом, который умеет работать с таблицами базы данных, используя своих помощников — источники данных. Класс формы состоит из трех частей: Составляющие формы

Источник данных, или датасорс, или datasource — тоже класс, посредник между элементами пользовательского интерфейса (форма, гриды, поля ввода …) и таблицами базы данных. Датасорсов может быть много, а может не быть вовсе, но каждый всегда привязан только к одной таблице. Мы можете создать методы на источнике данных и даже на отдельных его полях. Но сейчас это не так важно.
Как вы понимаете, нет никаких «полей датасорса». Есть поля таблицы, которую он «представляет».

Методы формы ничем не отличаются от методов любого другого класса.

Дизайн (ветка Design) — внешний вид формы. Заметили, что в предыдущем шаге мы вообще не заморачивались с расположением контролов? Единственно, что было задано нами, это иерархия контролов. Однако все элементы на форме упорядочились сами по себе. Это называется «технологией IntelliMorph», она думает за вас и выравнивает контролы по своему разумению с учетом ваших подсказок.

Вы можете вручную, как обычно делается в других средах разработки, расставить все элементы интерфейса попиксельно. Но в мире Аксапты за такое крутят у виска, а иногда дают канделябром по ушам.

Можно спорить является ли недостатком Аксапты такое унылое однообразие форм, стандартизованность и унифицированность (как результат работы IntelliMorph). Скажу одно, в своей ежедневной работе только 1/10 процента всех шевелений мозговых извилин приходится на задачи проектирования пользовательского интерфейса. Я более сосредоточен на корректной автоматизации бизнес-процессов моего заказачика. А эстетство и эксперименты с юзабилити не приветствуются в условиях сжатых сроков реализации проекта.

Еще немного про элементы интерфейса. Вы помните, мы создали единственную кнопку closeForm в ветке ButtonGroup дизайна формы? Это не просто кнопка (Button), это CommandButton! А значит к ней можно привязать команду. Мы это и сделали через свойство Command. Нажимая на нее, выполняется команда закрытия текущей формы. А IntelliMorph позаботился о том, чтобы на кнопке отображался текст «Закрыть» (свойство "Text" мы не задавали).

Итог

Пользовательский интерфейс в Аксапте — забота технологии IntelliMorph, а не разработчика.

Комментариев нет: