На этом этапе мы разработаем справочники LSS проекта - контроллеры источников данных DataSource, экранные формы, пункты меню для вызова экранных форм. Для наглядности заполним содержимое справочников тестовыми значениями.
Описатели экранных форм справочников размещены в папке php/forms/ref. Имя подпапки ref следует воспринимать как пространство имен.
Экранные формы справочников просты, для них используется стандартный контроллер FormController, размещенный в php/lss-server/lib/form-controller.php. Соответственно, описание экранных форм задается одним только XML шаблоном.
Подробнее о XML описании экранной формы можно посмотреть в соответствующем разделе описания LSS протокола.
Рассмотрим, например, XML шаблон экранной формы formRepair - виды ремонта:
<form name="%form%" caption="Виды ремонта">
<rowsets>
<rowset name="repair"/>
</rowsets>
<panels>
<panel>
<panel type="grid" rowset="repair">
<toolbar menu="1">
<request rowset="#this" name="undo"/>
<request rowset="#this" name="save"/>
<request rowset="#this" name="refresh"/>
<separator/>
<request rowset="#this" name="append"/>
<request rowset="#this" name="delete"/>
</toolbar>
<fields>
<field name="name"/>
</fields>
</panel>
</panel>
</panels>
</form>
где:
Шаблон экранной формы formDepartment чуть сложнее:
<form name="%form%" caption="Структура предприятия">
<rowsets>
<rowset name="department">
<rowset name="sector">
<param name="filter.departmentid" js_value="get('department.id')"/>
</rowset>
</rowset>
</rowsets>
<panels>
<panel>
<panel type="grid" rowset="department" align="top" height="50%" splitter="1">
<toolbar menu="1">
<request rowset="#this" name="undo"/>
<request rowset="#this" name="save"/>
<request rowset="#this" name="refresh"/>
<separator/>
<request rowset="#this" name="append"/>
<request rowset="#this" name="delete"/>
</toolbar>
<fields>
<field name="name"/>
</fields>
</panel>
<panel type="grid" rowset="sector">
<toolbar menu="1">
<request rowset="#this" name="undo"/>
<request rowset="#this" name="save"/>
<request rowset="#this" name="refresh"/>
<separator/>
<request rowset="#this" name="append"/>
<request rowset="#this" name="delete"/>
</toolbar>
<fields>
<field name="name"/>
</fields>
</panel>
</panel>
</panels>
</form>
где:
Контроллеры источников данных DataSource размещаются в папке php/datasources. В подпапке autogen размещаются контроллеры, автоматически сформированные по описанию структуры данных, см Этап создания структуры базы данных LSS проекта. Для автоматического формирования этих контроллеров следует использовать экранную форму Разработка/Структура базы, вызвав в ней пункт меню Пересчет/Генератор классов DataSource.
В корне папки php/datasources можно размещать контроллеры, унаследованные от автоматически сформированных, переопределяя заданные там методы и свойства.
Главное меню проекта описывается в XML файле php/config/appmenu.xml. Скорректируем его описателями для вызова экранных форм справочников:
<node name="Справочники" icon="reffolder"> <node name="Структура предприятия" icon="ref" form="ref.formDepartment"/> <node name="Виды ремонта" icon="ref" form="ref.formRepair"/> <node name="Типы оборудования" icon="ref" form="ref.formMachineType"/> <node name="Состояния оборудования" icon="ref" form="ref.formMachineStatus"/> </node>
где:
Работу главного меню системы обеспечивает источник данных systreexmlmenu расположенный в файле php/lss-server/datasources/systreexmlmenu.php. Этот источник задействован в главной экранной форме приложения, расположенной в папке php/forms/formMain.
Демонстрационные примеры доступны в режиме «только чтение». Для входа используйте логин root, пароль 1.