Создание справочника
  • 16 Oct 2022
  • 2 Minutes to read
  • Contributors
  • Dark
    Light
  • PDF

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

  • Dark
    Light
  • PDF

Для создания своего собственного справочника придется немного "покодить"😉 

Создать свой справочник вы можете через Администрирование - Исходные коды

Интерфейс раздела "Исходные коды"  

1. Создание пакета


Пакеты являются аналогом папок для хранения справочников. Ограничения по количеству пакетов нет. 

Справочник не может существовать без пакета, поэтому, если список справочников еще пуст, создайте пакет:

Создание пакета

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


 Для начала создадим справочник. Производим те же действия, что с пакетом, но в названии указываем расширение ".bl", например:

Файл: ExampleDictionary.bl

И выбираем пакет, в который поместим справочник.

Файл создали, теперь его нужно заполнить. 

Самый простой способ создать справочник - взять готовый код существующего справочника и изменить необходимые поля.

Разберем поэтапное наполнение справочника

Импорты. 

Всегда указываем импорты, приведенные ниже: 

import org.zenframework.z8.base.table.Table;
import pro.doczilla.dictionary.importFile.CsvDictionaryImportAction;


Дополнительно вписываем импорты типов данных, которыми будем пользоваться в справочнике. В справочнике планируется колонка "Имя"? Значит нужно текстовое поле, импортируем - 

import org.zenframework.z8.base.table.value. StringField;


Полный список импортов в таблице ниже


Класс

Описание

Строка импорта

StringField

Строка

import org.zenframework.z8.base.table.value. StringField;

TextField

Текст

import org.zenframework.z8.base.table.value. TextField;

DateField

Дата

import org.zenframework.z8.base.table.value. DateField;

DatetimeField

Дата и время

import org.zenframework.z8.base.table.value. DatetimeField;

BoolField

Логическое

import org.zenframework.z8.base.table.value. BoolField;

IntField

Целое число

import org.zenframework.z8.base.table.value. IntField;

DecimalField

Число

import org.zenframework.z8.base.table.value.DecimalField;

Шапка справочника


[generatable]
[dictionary]
[request true]
[name "ExampleDictionary"]
[displayName "Название справочника"]
public class ExampleDictionary extends Table {
}


При задании класса указываем в скобках [] следующие атрибуты:

  • name – название справочника, такое же, как вы указали при создании
  • displayName – название справочника для пользователей
  • public class ExampleDictionary extends Table - также нужно указать наименование справочника

Столбцы справочника

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

   [name "ADDRESS"]
   [displayName "Адрес регистрации"]
   public StringField address;
   address.length = 200;
   address.colSpan = 2;
  • name – системное наименование колонки таблицы справочника;
  • displayName – отображаемое наименование столбца справочника для пользователя;
  • StringField – тип поля справочника (для каждого типа поля должна быть добавлена соответствующая строка импорта в класс). Здесь же указывается системное наименование столбца = name;
  • address.length - максимальная длина поля. не забываем подменить "address" на свое наименование;
  • address.colSpan - ширина столбца (на примере 2/12 экрана).

Таким образом прописываются все столбцы справочника.

Порядок отображения колонок справочника

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

columns = { firstField, secondField }; 
controls = { firstField, secondField };
  • columns - в {} перечисляем колонки в порядку, в котором поля войдут в справочник.

Таким образом, вы можете добавлять и убирать поля, не убирая их из кода. А также переопределять порядок полей.

Итоговый пример справочника

import org.zenframework.z8.base.table.Table;
import org.zenframework.z8.base.table.value.StringField;
import pro.doczilla.dictionary.importFile.CsvDictionaryImportAction;

[generatable]
[dictionary]
[request true]
[name "test123"]
[displayName "Справочник"]
public class test123 extends Table {

        [name "NamePerson"]
	[displayName "ФИО Уполномоченного"]
	public StringField nameperson;
	nameperson.length = 200;
	nameperson.colSpan = 1;

	[name "PositionPerson"]
	[displayName "Должность Уполномоченного"]
	public StringField positionperson;
	positionperson.length = 200;
	positionperson.colSpan = 1;

        [name "FoundationDocument"]
	[displayName "Документ основания"]
	public StringField foundationdocument;
	foundationdocument.length = 200;
	foundationdocument.colSpan = 1;

	[name "Banned"]
	[displayName "Заблокирован"]
	public StringField banned;
	banned.length = 200;
	banned.colSpan = 1;


	columns = {nameperson, positionperson, foundationdocument, banned};

	controls = {nameperson, positionperson, foundationdocument, banned};

	CsvDictionaryImportAction importAction;
	actions = {importAction};
     
}

Очистка справочника

Для очистки справочника, необходимо дополнительно импортировать класс:

import pro.doczilla.dictionary.action.ClearAction;

И строки в конце кода:


CsvDictionaryImportAction importAction;
actions = {importAction};

Переделать следующим образом:


CsvDictionaryImportAction importAction;
ClearAction clearAction;
actions = {clearAction,  importAction};  

3. Добавление справочника


Когда код справочника написан, необходимо запустить его в работу. 

Запуск компиляции

Генерация схемы данных (Администрирование - Генерация схемы данных)

Включение справочника в разделе Настрйоки - Справочники


Поздравляем! Теперь справочник виден пользователям и готов к работе!



Was this article helpful?