Версии: 3+
Зайдите в систему под пользователем с правами администратора.
Откройте раздел Администрирование → Таблицы. Добавьте новую таблицу для справочника.
- Название в БД — название таблицы в базе данных, используйте префикс iris_.
- Название — это название будет отображаться, например, в отчётах, используйте простые понятные названия.
- Справочник (код) — XML описание файла будет храниться в файле с таким названием.
- Группа справочников — используется для группировки справочников в разделе Администрирование → Справочники.
Откройте только что созданную таблицу и нажмите на заголовке пункт Создать справочник.
Убедитесь, что процесс веб сервера может добавлять файлы в каталог config/dictionary.
На предложение «Будет создан справочник mydict для таблицы iris_mydict» ответьте Продолжить.
Значения в справочник можно добавить в разделе Администрирование → Справочники.
Если необходимо в справочник добавить дополнительные поля, то используйте конфигуратор или API XML справочников.
Версии: 2.x.
В системе имеется множество справочников. Все справочники собраны в разделе «Администрирование» → «Справочники». Рассмотрим, каким образом можно создать справочник, аналогичный справочнику «Типы компаний» и поместить его в данный раздел.
Рассмотрим процесс создания нового справочника. Создадим справочник «Типы транспортных средств». Создание элементов в системе сводится к двум этапам.
- Создание объектов БД (новых таблиц и полей).
- Создание и изменение файлов конфигурации.
Таким образом, для создания справочника необходимо сперва создать таблицу в БД, а потом XML файл с его описанием. Создадим справочник типы услуг. SQL скрипт создания таблицы будет выглядеть так (база данных PostgreSQL):
CREATE TABLE iris_autotype
(
id character varying(36) NOT NULL,
createid character varying(36),
createdate timestamp without time zone,
modifyid character varying(36),
modifydate timestamp without time zone,
name character varying(150),
description character varying(500),
CONSTRAINT pk_iris_autotype PRIMARY KEY (id)
)
Здесь id — это поле первичного ключа, а поля createid, createdate, modifyid, modifydate — служебные поля для аудита. Поля для нашего справочника — это поля name и description. Для создания любой новой таблицы можно использовать данный скрипт в качестве шаблона, убрав лишь колонки name и description
Создадим файл описания справочника config/dictionary/autotype.xml.
Внимание! Создаваемый файл должен быть в кодировке UTF-8. Так как все справочники имеют примерно одинаковую структуру, то для ускорения процесса создания справочника можно скопировать файл другого справочника и изменить его содержимое.
После того, как файл создан, внесем в него содержимое следующего вида.
<?xml version="1.0"?>
<DICT>
<DICTONARY table="iris_autotype">
<GRID_WND caption="Типы ТС" width="600" height="275">
<COLUMNS>
<ITEM caption="Название" db_field="Name"
width="50%" row_type="common"/>
<ITEM caption="Название" db_field="Description"
width="50%" row_type="common"/>
</COLUMNS>
</GRID_WND>
<EDITCARD name="dc_SpaceState" caption="Тип транспортного средства"
width="450" height="130" layout="1, 1">
<ELEMENTS>
<FIELD elem_type="text" caption="Название" db_field="Name"
mandatory="yes" datatype="string" row_type="common"/>
<FIELD elem_type="textarea" caption="Описание" db_field="Description"
mandatory="no" datatype="string" row_type="common" textarea_rows="2"/>
</ELEMENTS>
</EDITCARD>
</DICTONARY>
</DICT>
Остановимся подробнее и разберемся, что означает каждый тег в данном файле.
- Тег DICTONARY содержит в себе все остальные теги описания справочника. У этого тега имеется атрибут table. В нем указывается имя таблицы, с которой необходимо взаимодействовать (мы указываем имя созданной нами ранее таблицы).
-
Далее следует тег GRID_WND. Он описывает таблицу записей справочника. В нем атрибут caption это название окна таблицы, атрибуты width и height ширина и высота окна таблицы соответственно. Два тега ITEM описывают поля, которые будут отображаться в таблице записей. В данном случае это простые текстовые поля (могут быть ссылки и т.д.), поэтому указываем для них название, поле таблицы БД, ширину (можно задавать в процентах (
%
) и пикселях (px
)). - Тег EDITCARD описывает карточку справочника. В нем, аналогично тегу GRID_WND, присутствуют атрибуты caption, width и height, а также атрибут layout. Данный атрибут отвечает за внешний вид карточки (примеры использования будут в других статьях). Два тега FIELD, находящиеся внутри EDITCARD описывают поля, которые размещены на карточке. Поле name текстовое, а description — текстовая область (подробнее о типах полей будет в других статьях). Стоит обратить внимание на атрибут mandatory тегов FIELD. Данный атрибут указывает, обязательно ли данное поле для заполнение или нет. Если атрибут имеет значение
yes
, то при сохранении карточки автоматически будет проводиться проверка заполнения данного поля.
Осталось внести наш справочник в раздел «Администрирование» → «Справочники». Это нестандартный раздел. За его прорисовку отвечает функция GenerateDictHTML()
файла config/sections/dictionaryes/u_dict.php. Данная функция просто выводит HTML с ссылками, по которым открываются справочники. Чтобы вызвать наш справочник, нужно добавить в него вывод такой ссылки.
<a href="#" onclick=‘opengridwindow("", "", "dict", "autotype")’>Типы ТС</a>
Для этого, в функции GenerateDictHTML()
в конце вывода всех справочников допишем следующую строку.
<?php
echo ‘<br/><a href="#" onclick=’.chr(39).‘opengridwindow("", "", "dict", "autotype")’.chr(39).‘>Типы ТС</a>‘;
Оператором echo мы выводим перевод строки, а затем саму ссылку. Функция chr(39)
— это символ одинарной кавычки.
Теперь зайдя в систему мы увидим в этом разделе наш справочник.
Нажав на ссылку откроется окно таблицы записей в окне. В нем можно создавать, изменять и удалять значения справочника.
Таким образом, для создания справочника нам понадобилось следующее.
- Выполнить скрипт созднаия таблицы.
- Создать XML файл с описанием справочника
- Дописать строку кода в файле u_dict.php.