Создание справочника

Версии: 3+

Зайдите в систему под пользователем с правами администратора.

Откройте раздел Администрирование → Таблицы. Добавьте новую таблицу для справочника.

Таблица: новая запись

  • Название в БД — название таблицы в базе данных, используйте префикс iris_.
  • Название — это название будет отображаться, например, в отчётах, используйте простые понятные названия.
  • Справочник (код) — XML описание файла будет храниться в файле с таким названием.
  • Группа справочников — используется для группировки справочников в разделе Администрирование → Справочники.

Откройте только что созданную таблицу и нажмите на заголовке пункт Создать справочник.

Убедитесь, что процесс веб сервера может добавлять файлы в каталог config/dictionary.

На предложение «Будет создан справочник mydict для таблицы iris_mydict» ответьте Продолжить.

Значения в справочник можно добавить в разделе Администрирование → Справочники.

Если необходимо в справочник добавить дополнительные поля, то используйте конфигуратор или API XML справочников.

Версии: 2.x.

В системе имеется множество справочников. Все справочники собраны в разделе «Администрирование» → «Справочники». Рассмотрим, каким образом можно создать справочник, аналогичный справочнику «Типы компаний» и поместить его в данный раздел.

Карточка в разделе Справочники IRIS CRM

Рассмотрим процесс создания нового справочника. Создадим справочник «Типы транспортных средств». Создание элементов в системе сводится к двум этапам.

  1. Создание объектов БД (новых таблиц и полей).
  2. Создание и изменение файлов конфигурации.

Таким образом, для создания справочника необходимо сперва создать таблицу в БД, а потом 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) — это символ одинарной кавычки.

Теперь зайдя в систему мы увидим в этом разделе наш справочник.

Справочник IRIS CRM

Нажав на ссылку откроется окно таблицы записей в окне. В нем можно создавать, изменять и удалять значения справочника.

Таким образом, для создания справочника нам понадобилось следующее.

  1. Выполнить скрипт созднаия таблицы.
  2. Создать XML файл с описанием справочника
  3. Дописать строку кода в файле u_dict.php.