Содержание

Этап разработки справочников LSS проекта

lss

Введение

На этом этапе мы разработаем справочники 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.