<pre><font face = arial>
<b>HB_Tutorial_Company</b>
<u>Цель проекта:</u>
- Изучить работу с отображением связных таблиц, на примере таблицы компаний и
связанной с ней таблицы сотрудников этих компаний. Изучить работу со сплиттером.
- Создание отчета.
- Исследовать возможность добавления такой функциональности, как автоматическое
увеличение индекса при вставке новой записи.
- Поэкспериментировать с установками Delete Action.
<u>Формальное описание проекта:</u>
Создать две таблицы:
- таблица, содержащая информацию о компании (идентификатор и название компании);
- таблица, содержащая информацию о сотрудниках работающих в компаниях из первой
таблицы (идентификатор компании, идентификатор сотрудника, имя сотрудника)
Таблицы связаны по полю идентификатор компании
Далее необходимо создать форму для отображения этой информации в следующем виде:
Два Grid Control’а разделенных сплиттером. При выборе в одном из них компании во втором
появляется список ее сотрудников.
В форме также должна быть предусмотрена возможность вывода отчета по всем компаниям и
их сотрудникам в виде соответствующей кнопки.
При вставке новой записи поле индекса должно увеличиваться автоматически, как в первом,
так и во втором Grid Control’е.
При удалении записи в таблице компании, удаляются также все записи сотрудников этой
компании из таблицы сотрудников.
<u>Детали реализации:</u>

Добавлены следующие вспомогательные типы:
<B>HB_Tutorial_EmpolyeeName</b> – Для хранения имени сотрудника. На основе типа String.
<b>HB_Tutorial_CompanyName</b> – Для хранения названия компании. На основе типа String.
<b>HB_Tutorial_EmployeeID</b> – Для хранения идентификатора сотрудника На основе типа integer.
<b>HB_Tutorial_CompanyID</b> – Для хранения идентификатора компании. На основе типа integer.
Добавлена связь (Relation) на поле таблицы идентификатора компании.
Созданы 2 таблицы:
<B>HB_Tutorial_Company</b>
ID
Name
Override:
InitValue – для автоматического увеличения индекса. Более подробно в базе знаний:
<A href="http://www.axforum.info/forums/showthread.php?s=&threadid=256">“Автоматическое увеличение значения поля при создании новой записи"</a>
Delete Action:
<b>HB_Tutorial_Employee</b> - type: <i>Cascade</i> - подробное описание исследования о типах
Delete Action их влияния на удаление записей в связанных таблицах в статье базе знаний:
<a href=http://www.axforum.info/forums/showthread.php?s=&threadid=257>“Исследование - Как работают разные типы Delete Actions.”</a>
<b>HB_Tutorial_Employee</b>
CompanyID -> HB_Tutorial_Company.ID
EmploeeID
EmploeeName
Форма отображения информации:
<b>HB_Tutorial_CompanyEmployeeForm</b>
Override:
ClassDeclaration – объявление переменной класса сплиттера.
Init – инициализация сплиттера (в качестве сплиттера используется элемент формы Split)
Data sources:
<b>HB_Tutorial_Company</b>
<b>HB_Tutorial_Employee</b>
Joint source - <b>HB_Tutorial_Company.</b>
Override:
InitValue - для автоматического увеличения индекса. Более подробно в базе знаний:
<A href="http://www.axforum.info/forums/showthread.php?s=&threadid=256">“Автоматическое увеличение значения поля при создании новой записи"</a>
Design:
Group::Split – сплиттер.
Override:
MouseUp
MouseDown
MouseMove – работа мышкой со сплиттером
<u>Отчет:</u>
<b>HB_Tutorial_CompanyEmpReport</b>
Просто и быстро создан на основе Wizarda. Затем создан Menu Items->Display для соответствующего
отчета и помещен в соответствующий ButtonGroup формы.
<u>Результаты:</u>
Две статьи добавлены в базу знаний:
<A href="http://www.axforum.info/forums/showthread.php?s=&threadid=256">“Автоматическое увеличение значения поля при создании новой записи"</a>
<a href=http://www.axforum.info/forums/showthread.php?s=&threadid=257>“Исследование - Как работают разные типы Delete Actions.”</a>
</font></pre>