В информационном окне отражаются сведения о загрузке и применении метаданных.
Структура данных представлена тремя модулями: База, БизнесМодель, CRM.
База – общий функционал, независимо от предметной области (права, меню, отчеты, импорт и т.д.). При заведении объектных параметров и списков можно использовать только классы модуля База. Дочерние классы можно создавать любых модулей.
БизнесМодель – функционал предметного решения (предметные классы, диаграммы). При заведении объектных параметров и списков можно использовать классы модуля База и БизнесМодель. Дочерние классы можно создавать только модуля БизнесМодель.
CRM - модуль почтовых рассылок. При заведении объектных параметров и списков можно использовать классы модуля База и CRM. Дочерние классы можно создавать только модуля CRM.
Вверху окна расположен раскрывающийся список модулей и кнопка , вызывающая меню (Рис. 2).
Раскрывающийся список содержит список модулей, включенных в метаданные. Выбранный модуль используется для создания нового класса, класс создается с учетом логики, описанной выше. Классы, не относящиеся к текущему модулю, будут выделены в дереве серым цветом.
По кнопке можно настроить отображающиеся в дереве классы: отображать классы только текущего модуля, показывать удаленные.
Отображать классы тек. модуля - Если опция меню отмечена, то при выборе модуля из раскрывающегося списка модулей, в дереве классов будут отображены только классы, принадлежащие выбранному модулю. Если опция не выбрана, то в дереве классов будут показаны все классы, независимо от их модульной принадлежности, но классы, не относящиеся к текущему модулю, будут неактивны, то есть будут выделены в дереве серым цветом. Если у класса, не принадлежащего текущему модулю, есть классы-наследники, принадлежащие текущему модулю, то класс-родитель выделяется в дереве классов синим цветом.
Показывать удаленные - При выборе этой опции меню в дереве классов будут отображены все классы, включая удаленные ранее классы. Удаленные классы выделяются в дереве красным цветом.
Классы, принадлежащие текущему модулю (модулю, выбранному из раскрывающегося списка), отображаются в дереве стандартным черным цветом. Классы, не принадлежащие текущему модулю, отображаются серым цветом. Однако, если у класса, не принадлежащего текущему модулю, хотя бы один потомок принадлежит текущему модулю, то класс-родитель отображается в дереве классов синим цветом. Такая подсветка классов позволяет легко ориентироваться в большой и многоуровневой иерархии классов. Для удобства чтения информации о классе, у каждого класса есть пиктограммы. Их значения описаны в Таблица 1 Пиктограммы классов. Все действия с классами производятся из контекстного меню дерева классов, описание пунктов контекстного меню приведено в Таблица 2 Контекстное меню дерева классов.
Пиктограмма | Значение |
---|---|
Класс - потомок класса "Классы". | |
Перечисление - потомок типа "Перечисления". | |
Класс - потомок класса "Элементы списков". | |
Наличие этого элемента в пиктограмме означает, что класс допускает хранимые ссылки. | |
Наличие этого элемента в пиктограмме означает, что класс нехранимый. | |
Наличие этого элемента в пиктограмме означает, что класс системный, доступен только для просмотра. | |
Наличие этого элемента в пиктограмме означает, что класс пользовательский, есть возможность редактирования. |
Пункт меню | Описание |
---|---|
Добавить | Добавляет класс на том же уровне, где находится текущий класс. Другими словами, новый класс будет иметь тот же класс-родитель, что и текущий класс, и принадлежать текущему модулю, который выбран в списке модулей. |
Добавить от текущего | Добавляет класс уровнем ниже текущего класса. То есть текущий класс будет являться классом-родителем для нового класса, и новый класс будет принадлежать текущему модулю, который выбран в списке модулей. |
Редактировать | Вызывает форму "Свойства класса" для просмотра и редактирования названия класса, набора системных и дополнительных опций. Для системных классов доступно только добавление новых дополнительных опций и их редактирование. |
Удалить | Удаляет текущий класс, оставляя возможность восстановления командой "Восстановить" контекстного меню строки класса. |
Удалить полностью | Удаляет текущий класс полностью, без возможности восстановления. |
Восстановить | Восстанавливает ранее удаленный класс. |
Найти | Выводит форму для задания настроек поиска класса или параметра (задаётся название и область поиска: по классам, по параметрам или по классам и параметрам) и запуска поиска. При успешном поиске найденный класс или параметр становится текущим. |
Найти далее | Продолжает поиск с заданными ранее настройками (название и область поиска). |
Поиск ссылок на класс | Поиск классов, имеющих ссылки на текущий класс. |
Форма "Свойства класса" (Рис. 3) вызывается при добавлении нового класса, редактировании или просмотре существующего. Создание и редактирование возможно только для пользовательских классов, к их названию добавляется префикс usr_. Вызов класса на редактирование осуществляется выбором пункта контекстного меню.
Все пользовательские справочники рекомендуется создавать в классе База.Справочники.
Имя пользовательского класса должно состоять из букв, цифр и знаков подчеркивания. Начинаться такие имена могут с буквы или со знака подчеркивания.
Вкладка "Опции" недоступна для изменений. Пользовательские классы и пользовательские элементы списков всегда хранимые.
На вкладке "Доп. опции" определяется набор дополнительных опций класса. Из контекстного меню можно вносить доп. опции по категориям. Поддерживается мультистрочный ввод значений дополнительных опций. Удаление опции производится из контекстного меню выбором пункта "Удалить строку". Описание дополнительных опций класса приведено в Таблица 3 Дополнительные опции класса.
Для системных классов часть дополнительных опций уже заполнена по умолчанию, такие дополнительные опции недоступны для редактирования и выделяются на вкладке "Доп. опции" серым цветом. Все остальные дополнительные опции для системных классов доступны для заполнения.
Для пользовательских классов все дополнительные опции доступны для заполнения.
На вкладке "Ключи" задаются ключи для класса - как простые (уникальность проверяется по одному параметру), так и составные (уникальность проверяется по сочетанию нескольких параметров). Удаление ключа производится из контекстного меню по пункту "Удалить строку".
На вкладке "Значения" устанавливаются значения параметров по умолчанию во вновь создаваемом объекте класса. Для параметров с типом Перечисление (см. Свойства перечисления) значение по умолчанию может быть задано как перечислением наименований выбранных по умолчанию элементов перечисления через запятую, так и в бинарном виде - числом, равным сумме параметров Значение этих элементов перечисления.
Для класса обязательно задание значений по умолчанию для параметров guid и Название. Значения могут быть сгенерированы автоматически на основе текущего названия класса с помощью нажатия на кнопку "Задать умолчания" в окне добавления/редактирования класса.
На вкладке "Описание" дается многострочное описание функционального назначения класса и его места в объектной иерархии.
Название | Тип | Назначение |
---|---|---|
Категория "ПоказКласса" | ||
ПоказКласса.Заголовок | Строка | Опция класса, содержит Заголовок класса, который будет показываться в стандартных формах в заголовке. Если значение доп. опции не задано или доп. опция отсутствует на вкладке "Доп. опции" - берется ПолноеНаименование класса. |
ПоказКласса.ТолькоЧтение | Логика | Объект класса нельзя модифицировать, независимо от настроек прав. |
ПоказКласса.Видимый | Логика | Для показа по умолчанию в формах выбора справочника (Нет - класс будет показан только после включения опции "Показывать все"), а также для показа в Навигаторе объектов (Нет - класс не будет показан в Навигаторе объектов кроме ситуации, когда он выведен на отдельной вкладке). |
ПоказКласса.Иконка | Строка | Иконка класса для показа в формах выбора справочников. Могут использоваться как иконки присутствующие в составе программы по умолчанию - для них требуемое значение этого параметра совпадает с нумерацией соответствующих графических файлов из папки objects, которая находится по следующему пути: <Каталог установки Business Studio>\BS_Portal\www\img\objects\ (например, C:\Program Files\STU-Soft\Business Studio 4.2\BS_Portal\www\img\objects\), так и иконки из своих библиотек - для них требуемое значение этого параметра включает путь к библиотеке с иконками и её индекс, подробнее о назначении для пользовательских классов таких иконок см. в примере Пример задания с помощью MetaEdit для пользовательского класса своей иконки. |
ПоказКласса.ГлавныйКлюч | Имя главного ключа, по нему осуществляется автоматический импорт/экспорт и автогенерация объектов импорта. | |
ПоказКласса.Иерархический | Логика | Используется для импорта, для стандартных форм. Если значение опции Да - разрешается создавать группы в стандартных формах. При импорте объекты создаются группами, если этот момент не указан особо. Нет - Не разрешается создавать группы в стандартных формах. При импорте объекты создаются не группами, если этот момент не указан особо. |
ПоказКласса.ЗависимыеКлассы | Строка | Значение - перечень зависимых классов, которые хотелось бы открыть из данного класса. Обычно в зависимых классах есть объектный параметр исходного класса. |
ПоказКласса.ПолныйДоступ | Логика | Да - полный Доступ/Модификация объекта класса есть всегда, независимо от настроек прав. |
ПоказКласса.Авторазмер | Логика | Если значение опции Нет - то авторазмер сетки снимается, и размер каждой колонки подбирается автоматически (появляется горизонтальная прокрутка). По умолчанию - Да (если значение доп. опции не задано или доп. опция отсутствует на вкладке "Доп. опции"). |
ПоказКласса.Синхронизировать | Логика | Определяет, будет ли на форме включена кнопка синхронизации. В формах списков объектов и форме редактирования объекта синхронизация включена по умолчанию. |
Категория "EPC" | ||
EPC.Position | Строка | В качестве значения задаётся число, соответствующее позиции иконки данного класса на панели элементов диаграммы EPC (чем выше число - тем ниже иконка). |
EPC.Shape | Строка | Для пользовательских классов можно задавать пользовательские фигуры (шейпы) для отображения их объектов на диаграммах нотации EPC, используя содержащий их набор элементов MS Visio формата vss/vssx, подробнее о данной возможности см. в примере Пример задания с помощью MetaEdit для пользовательского класса своего шейпа для отображения его объектов на диаграммах нотации EPC. |
При создании нового класса, требуется вручную завести для него ключи на одноименной вкладке в окне редактирования класса, если на этот класс будут ссылаться с помощью параметров типа "Объект" из других классов.
Это требование применимо, если класс создается в качестве потомка от класса, не имеющего ключей (например, от "Элементы списков"). При создании же класса от родителя, имеющего ключи (например, "Объекты системы" - ключ "guid"), отдельно создавать ключи не требуется.
Пример: создание для класса из числа потомков класса "Элементы списков" вложенного списка/структуры (получается, что во вложенном списке/структуре окажется объектный параметр «Владелец» со ссылкой на родительский класс).
В случае, если для любого класса из числа потомков класса "Элементы списков" (для определённости назовём его "Класс 1") создаётся параметр с типом "Список" или "Структура", необходимо для этого класса сделать следующее:
Это справедливо и для случаев, когда уровней вложенности несколько: например, если у класса "Класс 1" из числа потомков класса "Элементы списков" есть список, ссылающийся на класс "Класс 2", а у того - список, ссылающийся на класс "Класс 3", то описанное выше следует сделать для классов "Класс 1" и "Класс 2".
Параметры выделенного класса отображаются в списке "Параметры". При создании параметров необходимо учитывать принцип наследования, описанный в Термины и понятия. Не нужно создавать в классе параметры, дублирующие параметры класса-родителя.
Параметры также имеют пиктограммы, значения которых приведены в таблице ниже.
Пиктограмма | Значение |
---|---|
Параметр класса. | |
Наличие этого элемента в пиктограмме означает, что этот параметр не хранимый, то есть рассчитываемый, пользователь не сможет изменять его в программе. | |
Наличие этого элемента в пиктограмме означает, что параметр системный, доступен только для просмотра. | |
Наличие этого элемента в пиктограмме означает, что параметр пользовательский, есть возможность редактирования. |
Все действия с параметрами классов производятся из контекстного меню списка параметров.
Пункт меню | Описание |
---|---|
Добавить | Добавляет параметр в текущем классе. |
Удалить | Удаляет текущий параметр. |
Редактировать параметр | Вызывает форму "Настройки параметра класса" для просмотра и редактирования названия параметра, типа, набора дополнительных опций и описания параметра. |
Перейти по ссылке | Пункт меню доступен для не простых параметров (объектный, список, структура, перечисление). При выборе пункта осуществляется переход к классу, указанному в типе параметра. Таким образом, производится быстрая и наглядная навигация по дереву классов. |
Форма "Настройки параметров класса" (Рис. 4) вызывается при добавлении нового параметра или редактировании существующего. Создание и редактирование возможно только для пользовательских параметров, к их названию добавляется префикс usr_.
Имя пользовательского параметра должно состоять из букв, цифр и знаков подчеркивания. Начинаться такие имена могут с буквы или со знака подчеркивания.
Вызов параметра на редактирование осуществляется либо выбором соответствующей опции всплывающего меню, либо двойным щелчком на параметре левой кнопкой мыши.
На вкладке "Опции" необходимо выбрать тип параметра: простой, объектный, список, структура, перечисление.
Если тип параметра Простой, то необходимо уточнить его тип: логический, целый, строка, вещественный, датавремя, изображение, бинарный или текст. Для параметра типа Строка необходимо указать длину, максимум 4000 символов. Для параметра типа Вещественный необходимо указать общую длину и длину дробной части (количество знаков после запятой), максимум 28 символов. Если тип параметра Объектный, то необходимо указать класс, который будет являться типом объектов, на которые будет ссылаться этот параметр.
Если тип параметра Список или Структура, то необходимо указать элементы списка, которые будут являться типом объектов, на которые будет ссылаться этот параметр. Указанные таким образом классы должны быть конечными (не иметь потомков) и не должны быть созданы под классами, уже указанными в каких-либо параметрах с типом Список или Структура.
Если тип параметра Перечисление, то в качестве типа объектов указывается перечисление. Тип параметра выбирается по кнопке .
Общая длина (сумма длин всех параметров) класса, заданных на одном уровне в иерархии классов, не должна превышать 8000 Байт. Длина параметров различных типов в байтах приведена ниже в Таблица 6 Длина в байтах для различных типов параметров.
Тип параметра | Длина в байтах | |
---|---|---|
Логический | 1 | |
Целый | 4 | |
Строка [Длина] | Длина*2 + 2 | |
Вещественный [Общая длина, Длина дробной части] | Общая длина | Длина в байтах |
1 - 9 | 5 | |
10-19 | 9 | |
20-28 | 13 | |
ДатаВремя | 8 | |
Изображение | 16 | |
Бинарный | 16 | |
Текст | 16 | |
Объектный | 31 | |
Список | 0 | |
Структура | 0 | |
Перечисление | 4 |
Опции параметра Только для чтения, История и Наследуемый недоступны для изменений, т.к. пользовательские параметры всегда редактируемые, без истории, не наследуемые.
Пользовательский параметр может быть не хранимым, т.е. он может сам не хранить информацию, а использоваться для вывода данных, хранящихся в других параметрах системы. Примеры создания таких параметров см. в Примеры создания не хранимых параметров с помощью MetaEdit.
На вкладке "Доп. опции" определяется набор дополнительных опций параметра класса. Они позволяют указывать заголовки, управлять порядком и видимостью по умолчанию, настраивать действия. Из контекстного меню можно вносить доп. опции по категориям. Удаление опции производится из контекстного меню выбором пункта "Удалить выделенные строки". Описание дополнительных опций параметра приведено в Таблица 7 Дополнительные опции параметров классов.
Для системных параметров часть дополнительных опций уже заполнена по умолчанию, такие дополнительные опции недоступны для редактирования и выделяются на вкладке "Доп. опции" серым цветом. Все остальные дополнительные опции для системных параметров доступны для заполнения.
Для пользовательских параметров все дополнительные опции доступны для заполнения.
На вкладке "Описание" можно дать многострочное описание функционального назначения параметра класса и его места в объектной иерархии.
Название | Тип | Назначение |
---|---|---|
Категория "Показ" | ||
Показ.Заголовок | Строка | Содержит Заголовок параметра, который будет показываться в стандартных формах. Если значение не задано, берется Наименование параметра. |
Показ.Видимый | Логика | Если значение опции Да - то параметр показывается в форме списка. Если значение доп. опции не заполнено или доп. опция отсутствует на вкладке "Доп. опции" - Да. |
Показ.ВидимыйОб | Логика | Если значение опции Да - то параметр показывается в форме единичного показа. Если значение доп. опции не заполнено или доп. опция отсутствует на вкладке "Доп. опции" - используется значение опции "Видимый". |
Показ.НаВкладке | Логика | Указывается для параметров-списков. Если значение опции Да, то список отображается на вкладке в форме единичного показа. Если опция не заполнена - Нет. |
Показ.Редактирование | Логика | Если значение опции Да - то параметр редактируется в форме списка. Если значение доп. опции не заполнено или доп. опция отсутствует на вкладке "Доп. опции" - Нет. |
Показ.РедактированиеОб | Логика | Если значение опции Да - то параметр редактируется в форме единичного показа. Если значение доп. опции не заполнено или доп. опция отсутствует на вкладке "Доп. опции" - Нет. |
Показ.Обязательный | Логика | Да/Нет. Служит для выделения параметров, обязательных для ввода. |
Показ.Номер | Целое | Показывает порядковый номер расположения параметра на форме списка объектов. Внимание! В системе есть возможность добавлять/убирать колонки, используя специальную форму. Если вы хотите, чтобы параметр не показывался по умолчанию, но пользователь в дальнейшем имел возможность вывести его на показ, нужно проставить Показ.Номер = -1. Тем самым параметр появится в форме настройки колонок и можно его перетащить на основную форму. Следует отметить, что в отличие от формы настройки колонок скрытые колонки загружаются, что снижает быстродействие. |
Показ.НомерОб | Целое | Задает порядковый номер расположения параметра на форме единичного показа объекта. Для параметров-списков - порядковый номер вкладки. Внимание! Если значение доп. опции не заполнено или доп. опция отсутствует на вкладке "Доп. опции", то порядковый номер заполнится от Показ.Номер. |
Показ.МинРазмер | Целое | Минимальный размер колонки, по умолчанию 0. Необходимо, например, при авторазмере, когда нужно, чтобы название обязательно было полностью видимым. |
Показ.Размер | Целое | Задает размер колонки в сетке в форме списка объектов. |
Показ.Сортировка | Строка | Возможные значения: Возрастание, Убывание. Используется для сортировки по параметру в форме списка. |
Показ.Формат | Строка | Значение - формат вывода значения параметра в формате C# (см. Руководство пользователя, глава Нумераторы классов). Выводит значение параметра в заданном формате в форме списка. |
Показ.ФорматОб | Строка | Значение - формат вывода значения параметра в формате C#. Выводит значение параметра в заданном формате в форме редактирования объекта. |
Показ.Превью | Логика | Параметр, у которого стоит значение Да, появится в виде поля превью под строкой (если заполнен), например, комментарий. Внимание! Чтобы этот параметр показывался в виде поля превью под строкой, но не показывался при этом в виде колонки в форме списка, нужно для него установить Показ.Номер = -1. Также, если хотите, чтобы это поле показывалось в форме показа объекта - проставьте Показ.НомерОб = 100 (например). Следовательно, данную опцию нужно заполнять, когда порядок в единичной форме показа отличается от формы списка, например Комментарий, который не показывается в форме списка (Показ.Номер=-1), но показывается в форме единичного показа Показ.НомерОб = 100. |
Показ.Префикс | Строка | Может указываться для не хранимых параметров. Значение - ссылка на параметр объекта. Предназначен для вывода вложенных параметров, например Версия.Автор. Пример создания такого параметра см. в Пример создания не хранимого параметра. Внимание! Тип параметра, для которого задается данная доп. опция, обязательно должен совпадать с типом параметра, на который идет ссылка. |
Показ.ФорматСводный | Строка | Может указываться для не хранимых параметров с типом "Строка". Значение - комбинация из ссылок на параметры объекта с типом "Строка", каждая из которых заключена в квадратные скобки, и произвольного текста. Пример создания такого параметра см. в Пример создания не хранимого сводного параметра. |
Категория "Редактирование" | ||
Редактирование.Эдитор | Строка | Задает эдитор на экранных формах списков, отличный от стандартного (по умолчанию) для формы списка объектов. Например, для параметра типа Текст эдитор может быть MemoEdit (с просмотром содержимого) или RichEdit (текст в формате RTF), по умолчанию привязан эдитор MemoEditEx - без просмотра содержимого в сетке. Примечание: Эдитор MemoEdit может быть привязан и к параметру типа строка, если нужно автоматически увеличивать высоту ячейки, если строка не помещается. Пользоваться этой возможностью нужно осторожно - нельзя позволять редактировать строку этим эдитором (только просмотр) - так как пользователь может вставить перевод строки. Возможные значения: - MemoEdit, RichEdit (вместо MemoEditEx по умолчанию); - PictureEdit (вместо ImageEdit по умолчанию); - ButtonEdit (для привязки эдитора для выбора, при нажатии на кнопку которого должен выполниться метод, описанный в опции ДействиеПоКнопке). |
Редактирование.ЭдиторОб | Строка | Задает эдитор на экранных формах объекта, отличный от стандартного (по умолчанию) для формы редактирования объекта. |
Редактирование.Действие-ПоКнопке | Строка | В качестве значения используется имя метода, который будет запускаться на исполнение при нажатии кнопки "…" эдитора (переопределенного в опции Эдитор, либо ЭдиторОб в значение ButtonEdit). |
Редактирование.Действие-ПоКнопкеУдалить | Строка | В качестве значения используется имя метода, который будет запускаться на исполнение при нажатии кнопки с крестом эдитора (переопределенного в опции Эдитор, либо ЭдиторОб в значение ButtonEdit). |
Категория "Связи" | ||
Связи.Синхронизировать | Логика | Если значение опции Да, то по этому объектному полю будет синхронизироваться форма редактирования объекта данного класса. Если значение Нет - синхронизация не используется. |
Прочее | ||
Название доп. опции | Тип доп. опции | Значение опции: =<Название доп. опции данного или одного из вышележащих классов>. В случае использования данного механизма доп. опции параметра класса присваивается значение указанной произвольной опции (переменной) данного или одного из вышележащих классов. Если опция определена в одном из вышележащих классов и в одном из классов-потомков ее значение переопределено - доп. опции будет присвоено переопределенное значение. Механизм может применяться, например, для управления видимостью параметров в классах-потомках (в одних потомках параметр виден, в других - нет). |
После создания в метаданных параметра с типом "Структура" и применения этих метаданных к базе необходимо для этой базы запустить команду пересохранения структур класса, в котором такой параметр был добавлен.
Вид командной строки: /runcmd="База.КлиентскиеУтилиты.ПересохранитьСтруктурыКласса СИСТЕМНОЕ_ИМЯ_КЛАССА"
Аргументы:
СИСТЕМНОЕ_ИМЯ_КЛАССА - полное системное имя класса Business Studio (например, БизнесМодель.Процессы), в котором был добавлен параметр с типом "Структура". Системное имя класса отображается в Объектной модели.
Подробнее о работе с командной строкой см. Командная строка.
Форма "Свойства перечисления" (Рис. 5) вызывается при добавлении нового перечисления или редактировании существующего. Создание и редактирование возможно только для пользовательских перечислений, к их названию добавляется префикс usr_. Вызов перечисления на редактирование осуществляется выбором соответствующей опции контекстного меню.
На вкладке "Элементы" задается список элементов перечисления. Параметры перечисления: значение, наименование, описание. Значение - подставляемое значение, название - системное название элемента, описание - подставляемое название элемента. Удаление элемента перечисления осуществляется из контекстного меню.
Параметр Множество позволяет задавать параметру объекта несколько значений из перечисления. При изменении параметра Множество во включенное состояние для уже созданных объектов, информация в базе не теряется. При отключении параметра Множество информация в базе по параметрам объектов этого перечисления утратится.
Для независимых элементов перечисления-множества, необходимо значениям элементов присваивать степени двойки: 1,2,4,8,…
На вкладке "Описание" дается многострочное описание перечисления.