Создание справочника
    • 28 Jul 2023
    • 2 Minutes to read
    • Contributors
    • Dark
      Light
    • PDF

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

    • Dark
      Light
    • PDF

    Article summary

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

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

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

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


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

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

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

    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?