Формы

Редактор форм состоит из палитры инструментов слева и основной рабочей области (где отображаются и редактируются элементы формы)

Навигатор

Навигатор разделен на секции. Секция «Элементы»:

Секция «Метаданные» (илл. «Метаданные»):

  • Название формы на трех языках

  • Краткое описание

  • Версия

  • Создал версию

  • Изменил версию

  • Формат

Значения полей названия и краткого описания отображается в столбцах списка форм. Кроме этого, локализованное название формы используется при отображении формы в карточках личного дела.

Выпадающий список «Версии» содержит значения всех версий сохраненной формы и ФИО пользователей, которые изменили соответствующую версию формы в формате %номер_версии% (%ДД.ММ.ГГ% %чч.мм%, %Фамилия И.О.%). По нажатию значения из списка редактор форм отображает выбранную редакцию формы.

Поле «Создал версию» - содержит ФИО автора выбранной версии, а поле «Изменил версию» - ФИО пользователя, который изменил данную версию последним. Оба эти поля недоступны для редактирования, а их значения отображаются в формате: %Фамилия И.О.%

Если форма была создана, но не изменена, то автор версии также является пользователем, изменившим версию последним. При импорте формы в качестве автора и пользователя, изменившего версию последним, указывается ФИО разработчика Synergy, импортировавшего эту форму.

Поле «Формат» содержит формат формы, зависящий от версии Synergy, в которой была создана форма:

  • если форма была создана в Synergy версии 3.13 и ниже, то поле «Формат» имеет значение 0 или пусто;

  • если форма была создана в Synergy версии 3.14 и выше, то поле «Формат» имеет значение 1.

Формат формы не изменяется.

Рисунок 4.23. Метаданные

Метаданные

Секция «Параметры» содержит:

  • поле выбора цвета: задается HTML-код цвета для фона формы (есть возможность выбрать цвет из представленной палитры). По умолчанию, цвет установлен в белый (#ffffff). Если не задать фон, тогда форма (и в режиме чтения, и в режиме редактирования) будет прозрачной, т.е. будет принимать фон родительского компонента.

  • флаг «Фиксированные размеры таблицы», регулирующий отображение компонентов, ширина которых превышает ширину столбца, в котором они расположены. Для форм, созданных в версии Synergy 3.14 и выше (в метаданных формы в поле «Формат» содержится значение 1), флаг по умолчанию включен, для остальных форм - отключен.

Рисунок 4.24. Параметры

Параметры

Поведение основной таблицы формы и компонентов на ней при включенном флаге:

  • ширина не указана ни в одном столбце формы: столбцы растягиваются на всю ширину формы пропорционально их количеству; если в каком-либо столбце есть компонент, заданная ширина которого превышает рассчитанную для столбца, то компонент обрезается (его перекрывает соседний столбец);

  • ширина указана в некоторых столбцах: столбцы с указанной шириной отображаются с этой шириной, оставшееся место поделено поровну между остальными столбцами; если в каком-либо столбце есть компонент, заданная ширина которого превышает явно указанную или рассчитанную для столбца, то компонент обрезается (его перекрывает соседний столбец);

  • ширина указана во всех столбцах: форма не растягивается и отображается с шириной, равной сумме ширины всех столбцов; если в каком-либо столбце есть компонент, заданная ширина которого превышает указанную для столбца, то компонент обрезается (его перекрывает соседний столбец).

Поведение основной таблицы формы и компонентов на ней при отключенном флаге:

  • ширина не указана ни в одном столбце формы: столбцы растягиваются на всю ширину формы пропорционально их количеству; если в каком-либо столбце есть компонент, заданная ширина которого превышает рассчитанную для столбца, то он перекрывает соседний столбец;

  • ширина указана в некоторых столбцах: столбцы с указанной шириной отображаются с этой шириной, оставшееся место поделено поровну между остальными столбцами; если в каком-либо столбце есть компонент, заданная ширина которого превышает явно указанную или рассчитанную для столбца, то он перекрывает соседний столбец;

  • ширина указана во всех столбцах: форма не растягивается и отображается с шириной, равной сумме ширины всех столбцов; если в каком-либо столбце есть компонент, заданная ширина которого превышает указанную для столбца, то он перекрывает соседний столбец.

Примечание:

Если компонент перекрывает соседний столбец, то в режиме конструктора форм правая часть компонента, перекрывающая соседние ячейки, не кликабельна, и это может вызвать проблемы с указанием значения компонента по умолчанию. Например, если ширина компонента «Ссылка на реестр» больше, чем ширина столбца, в котором он расположен, то при попытке нажать на правую часть компонента с кнопкой <...> будет выделяться ячейка справа. Такое поведение означает, что форма была неправильно сконфигурирована, и не является ошибкой Synergy.

Состояние параметра для всей формы не влияет на поведение вложенных таблиц формы.

Секция «Показатели» (илл. «Показатели»). В эту группу параметров можно добавлять и удалять показатели формы, представляющие собой группы настроек следующего вида:

Название Тип Назначение

Код показателя

Текстовое поле

Ввод простого текста (с учётом символьных ограничений на код показателя), и/или одну либо несколько подстановок вида ${componentID} либо $*{nondyntable.componentID}, которые в результирующем коде показателя будут заменены на значения соответствующих компонентов. Если показатель с таким кодом уже присутствует в системе, то значение будет введено в него; в противном случае, будет создан показатель типа «внешний»), и в него будет введено значение.

Значение показателя

Выпадающий список

Выбор идентификатора одного из компонентов формы (включая находящиеся в статических таблицах, но исключая сами таблицы и компоненты внутри динамических таблиц). Значение этого компонента используется процессом для ввода в соответствующий показатель.

Граничные значения показателя

Переключатель, активирующий два поля ввода

Настройка, полностью аналогичная таковой при создании показателя через «Справочник показателей».

Рисунок 4.25. Показатели

Показатели

Секция «Представления». В эту группу параметров можно добавлять и удалять представления формы: основное и печатное. Основное представление формы создается вместе с самой формой и его нельзя удалить.

Для добавления представления разработчик Synergy нажимает на кнопку «Добавить представление»: на выбор предоставляется единственный вариант «Печатное» (илл. «Представления формы»).

Рисунок 4.26. Представления формы

Представления формы

Для выбора разработчик Synergy нажимает по данному поля, для отмены выбора - по любому другому месту окна.

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

Примечание

В редакторе форм раскрытой отображается только одна секция. По умолчанию это «Элементы».

Переключение между секциями осуществляется кликом по соответствующему заголовку секции.

Основная рабочая область и представления

Основная рабочая область. Основное представление.

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

Каждый компонент имеет поле для ввода названия элемента. Это производится по нажатию по строке «Нажмите, чтобы ввести название»: во всплывающем окне вводится название, нажимается «Принять».

В редакторе форм есть возможность задания и сохранения значений по умолчанию компонентов формы, если они редактируемы в режиме конструктора. Для этого нужно при создании или редактировании форм добавить компонент и задать его значение. После сохранения заданные значения отобразятся в создаваемых файлах по форме.

Основная рабочая область. Мобильное представление.

Примечание:

В Synergy версии 3.14 и выше поддержка мобильного представления отсутствует.

Мобильное представление формы по отношению к основному имеет следующие ограничения:

  • основная таблица формы может содержать только один столбец;

  • набор компонентов, которые можно использовать в мобильном представлении, ограничен:

    • «Неизменяемый текст»

    • «Однострочное поле»

    • «Многострочный текст»

    • “Выпадающий список

  • компонент, добавленный в строку основной таблицы представления, должен занимать 100% ее площади.

«Неизменяемый текст» должен всегда добавляться только как новый компонент, все остальные - только в качестве использованных в основном представлении формы.

Основная рабочая область. Печатное представление.

Печатное представление имеет меню «Шаблон печати», в основной рабочей области пусто (илл. «Печатное представление»):

  • стандартный компонент выбора файла с компьютера (кнопка «Выберите файл» и лейбл «Файл не выбран» / название выбранного файла);

  • кнопка «Удалить шаблон», которая удаляет выбранный шаблон;

  • кнопка «Скачать шаблон», которая скачивает текущий шаблон с сервера на компьютер;

  • формат печати - любая комбинация из следующего набора пунктов:

    • PDF

    • ODT

    • DOC

    • DOCX

  • опция «Печать по умолчанию» в виде выпадающего списка со следующими значениями:

    • Последнее действие (по умолчанию)

    • HTML

    • список включенных форматов печати

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

При сохранении формы в настройках шаблона печати как минимум 1 флажок из четырех должен быть обязательно включенным, иначе необходимо не выполнять сохранение, оставаться на данном экране и выдавать сообщение-ошибку:

Выберите хотя бы 1 формат печати

Опция «Печать по умолчанию» позволяет указать в каком формате будет происходить печать формы по нажатию непосредственно на кнопку «Печать». При выборе пункта «Последнее действие» печать производится в том формате, в котором происходила печать в данном браузере данным пользователем в последний раз. При отсутствии последнего действия печать производится в формате HTML.

Если у формы отсутствует настроенное печатное представление, то по нажатию на кнопку «Печать» производится печать формы в HTML.

При отключении формата печати, который используется при печати по умолчанию, появляется браузерное окно с сообщением:

Был отключен формат печати %значение%, который использовался в печати по умолчанию. Будет произведен сброс значения до стандартного "Последнее действие". Продолжить?

При подтверждении действия - опция «Печать по умолчанию» принимает значение «Последнее действие», при отмене - отключение формата печати не принимается.

Рисунок 4.27. Печатное представление

Печатное представление

Файл шаблона может быть только в формате *.odt, не должен быть создан в Microsoft Office. Создание и редактирование шаблона необходимо осуществлять только в LibreOffice / OpenOffice. Особенности печатного представления:

  • Форматирование компонентов, настроенных на форме, в печатном представлении не сохраняется. Таким образом, форматирование печатного представления для каждой формы необходимо настраивать отдельно и с нуля.

  • Нельзя форматировать часть поля, содержащего данные из формы (т.е. у таких полей должно быть только цельное форматирование).

  • Идентификаторы компонентов, вводимые в поле шаблона, должны быть того же регистра, что идентификаторы компонента на форме.

  • Печатное представление не локалезависимо. Данные в ней будут в той локали, с которой файл по форме последний раз сохраняли.

  • Если вызывается печать файла по форме с еще несохраненными изменениями, необходимо выдавать браузерное диалоговое окно с предупреждением:

    Сохранить внесенные изменения?

    и кнопками:

    • «Да» - происходит сохранение файла по форме, на печать отправляется последняя версия файла по форме;

    • «Нет» - сохранение не происходит, на печать отправляется последняя сохраненная версия файла по форме;

    • «Отмена» - сохранение не происходит, файл по форме на печать не отправляется.

    Примечание: если данные по форме не были созданы, то, в зависимости от свойств компонента, будет напечатано либо пустое значение, либо останутся значения, которые были введены в качестве идентификатора компонента в поле.

Ограничение печатного представления:

  • Идентификаторы компонентов (поле «Имя компонента») не должны содержать точки.

Компоненты конструктора форм, которые можно использовать в шаблоне печатного представления:

Компоненты формы Поддерживаются ли в шаблоне

Таблица

не поддерживается (необходимо использовать штатную таблицу редактора)

Страница

не поддерживается (необходимо использовать штатные разрывы страниц редактора)

Неизменяемый текст

не поддерживается (необходимо использовать обычный ввод текста в редакторе)

Однострочное поле

поддерживается

Числовое поле

поддерживается

Многострочный текст

поддерживается

HTD-редактор

поддерживается (безо всяких HTML-тегов)

Выпадающий список

поддерживается

Дата/время

поддерживается (последнее сохраненное на форме значение)

Выбор вариантов

поддерживается (через запятую и пробел)

Переключатель вариантов

поддерживается

Изображение

не поддерживается (для использования непосредственно изображения необходимо использовать штатную вставку изображений редактора)

Файл

поддерживается (имя файла)

Ссылка

поддерживается (url ссылки)

Объекты Synergy

поддерживается (значение поля)

Номер

поддерживается (значение поля)

Лист подписей

поддерживается нестандартно (см. ниже)

Лист резолюций

поддерживается нестандартно (см. ниже)

Ход выполнения

поддерживается нестандартно (см. ниже)

Ссылка на документ

не поддерживается

Период повторения

не поддерживается

Ссылка на проект/портфель

поддерживается (значение поля)

Ссылка на реестр

поддерживается (значение поля)

Ссылка на адресную книгу

поддерживается (значение поля)

Свойства документа

поддерживается

Чтобы вставить поле данных (на примере LibreOffice), которое будет брать значение непосредственно из формы, необходимо выполнить следующую цепочку действий: «Вставка» -> «Поля» -> «Дополнительно» -> откроется диалоговое окно «Поля». В нем перейти во вкладку «Функции» - подраздел «Тип» -> «Поле ввода» -> нажать кнопку «Вставить» -> откроется окно «Поле ввода». В поле с моргающим курсивом необходимо ввести идентификатор компонента формы и нажать на кнопку «Да». Поле данных автоматически вставится в шаблон.

Таблица:

  • Компоненты, находящиеся внутри статической таблицы на форме, можно использовать в качестве полей и вне таблицы в шаблоне.

  • И наоборот, компоненты, находящиеся вне статической таблицы на форме, в шаблоне можно объединять в произвольную (также статическую) таблицу.

  • Если в печатном представлении необходимо настроить таблицу как на форме, необходимо создать обычную таблицу в редакторе. Название таблицы в шаблоне (при создании таблицы: «Вставить таблицу» -> подраздел «Общие» -> «Имя», при редактировании свойств таблицы: «Свойства таблицы» -> вкладка «Таблица» -> подраздел «Свойства» -> «Название») должен совпадать с идентификатором таблицы на форме.

  • Столбцы статических таблиц могут содержать компоненты в формате:

    «id1»

    где id1 - это поле данных (имя компонента в таблице формы).

  • Таблица, динамическая на форме, в шаблоне может содержать произвольное количество заголовков (шапок) и подвал (т.е. таблица не обязательно должна заканчиваться строкой с данными полей из формы (идентификаторами), может и произвольным текстом). В подвале нельзя использовать идентификаторы из любой динамической таблицы на форме (т.е. можно использовать произвольный текст и остальные идентификаторы).

    Значения же идентификаторов компонентов непосредственно из динамической таблицы должны вводиться в формате:

    «dyntable.id1»

    где dyntable - это идентификатор динамической таблицы, а id1 - это поле данных (имя компонента в таблице формы).

    Кроме того, строка со значениями идентификаторов компонентов из динамической таблицы не обязательно должна быть единственной, можно ее разбить не несколько строк. Строки со значениями компонентов из динамической таблицы должны вставляться этими блоками.

    Нельзя использовать идентификаторы компонентов не из данной динамической таблицы. Также нельзя использовать одну и ту же динамическую таблицу формы в шаблоне 2 и более раз.

  • Присутствует поддержка форматной строки и разделителя свёртки для динамических таблиц. Для этого в шаблоне печати вне таблиц (внутри абзацного текста) необходимо использовать поле данных в формате:

    «dyntable»

    где dyntable - это идентификатор динамической таблицы.

  • Присутствует поддержка вставки столбца динамической таблицы как списка. Для этого в шаблоне печати вне таблиц (внутри нумерованного или маркированного списка) необходимо использовать поле данных в формате:

    «dyntable.id1»

    где dyntable - это идентификатор динамической таблицы, а id1 - это поле данных (имя компонента в таблице формы).

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

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

    1.1   `произвольный текст`
    1.2   `«id1»`
    1.3   `произвольный текст + «id1»`
    1.4   `«id1» + «id2»`
    1.5   `произвольный текст + «id1» + произвольный текст + «id2»`
    

    где произвольный текст - это произвольная надпись, а id1 и id2 - это поля данных (имена компонентов формы). Причем для динамической таблицы id1 и id2 - это обязательно компоненты внутри этой динамической таблицы.

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

Для точного воспроизведения компонента «Лист подписей» в шаблоне печатного представления необходимо создать таблицу с именем, соответствующим идентификатору компонента на форме (в примере - m1), и следующим содержимым:

№ п/п Фамилия И.О. Должность Дата Тип подписи Комментарий Подпись

m1.number

m1.full_name

m1.position

m1.date

m1.signature_type

m1.comment

m1.signature

Для точного воспроизведения компонента «Лист согласования» в шаблоне печатного представления необходимо создать таблицу с именем, соответствующим идентификатору компонента на форме (в примере - m2), и следующим содержимым:

№ п/п ФИО согласующего Должность согласующего Дата согласования Результат согласования Комментарий согласующего

m2.number

m2.full_name

m2.position

m2.consent_date

m2.consent_result

m2.consent_comment

Для точного воспроизведения компонента «Лист утверждения» в шаблоне печатного представления необходимо создать таблицу с именем, соответствующим идентификатору компонента на форме (в примере - m3), и следующим содержимым:

№ п/п ФИО утверждающего Должность утверждающего Дата утверждения Результат утверждения Комментарий утверждающего

m3.number

m3.full_name

m3.position

m3.approval_date

m3.approval_result

m3.approval_comment

Для точного воспроизведения компонента «Лист ознакомления» в шаблоне печатного представления необходимо создать таблицу с именем, соответствующим идентификатору компонента на форме (в примере - m4), и следующим содержимым:

№ п/п Фамилия И.О. Должность Дата ознакомления Результат ознакомления

m4.number

m4.full_name

m4.position

m4.acquaintance_date

m4.acquaintance_result

Для точного воспроизведения компонента «Лист резолюций» в шаблоне печатного представления необходимо создать таблицу с именем, соответствующим идентификатору компонента на форме (в примере - m5), и следующим содержимым:

Автор Название Ответственный Исполнители Завершение

m5.author

m5.name

m5.assignee

m5.executors

m5.completion

Для точного воспроизведения компонента «Ход выполнения» в шаблоне печатного представления необходимо создать таблицу с именем, соответствующим идентификатору компонента на форме (в примере - m6), и следующим содержимым:

Название Ответственный Автор Начало Завершение Завершил Комментарий

m6.name

m6.assignee

m6.author

m6.start

m6.completion

m6.finished

m6.comment

Примечание для хода выполнения:

  • вместо выделения строки серым цветом к названию будущей работы должно быть добавлено: (будущая работа);

  • вместо перечеркивания к названию удаленной работы должно быть добавлено: (удаленная работа).

Многострочный текст:

  • Если текст в компоненте не содержит абзацев, то значение будет напечатано в месте вставки компонента в шаблоне.

  • Если текст в компоненте содержит хотя бы 1 абзац, то значение будет напечатано с новой строки от места вставки компонента в шаблоне.

Печать QR-кода

Предварительно в БД Synergy необходимо выполнить запрос:

insert into options (id, value, type) values ('check_for_print_qr_code', 'true', 2);

Далее в файле печатного представления: - вставить в нужное место любую картинку (квадратной формы желаемого размера, рекомендуется от 4х4 до 7х7 сантиметров) - указать привязку изображения «как символ» - в контекстном меню картинки выбрать пункт «Изображение» - вкладка «Параметры» - указать название изображения qrcode

Итоговый QR код будет содержать ссылку на соответствующий документ, сведения из РКК документа и список подписей из карточки документа.

Результатом печати формы по вышеописанному шаблону будет файл в выбранном расширении, преобразованный с помощью Libre/OpenOffice из исходного ODT-файла с соответствующим в шаблоне форматированием (отступы, шрифты, размеры, стили), а также со вставленными значениями полей и дополнительной обработкой (таблицы). Этот файл будет сгенерирован и выдан в браузер пользователя при нажатии кнопки «Печать».

Примечание: используемые в шаблоне шрифты должны быть видны экземпляру Libre/OpenOffice, установленному на сервере, в котором происходит преобразование.

Верхняя панель редактора форм

Для версий Synergy от 3.14 и выше верхняя панель редактора содержит кнопки:

Режимы просмотра формы

Начиная с версии Synergy 3.14, доступна возможность просмотра создаваемой формы, не выходя из конструктора. Режимы отображения формы переключаются в правой части верхней панели конструктора.

Пиктограммы режимов:

  • - конструктор

  • - редактирование (заполнение)

  • - просмотр

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

При наведении на каждую из кнопок отображается соответствующий тултип:

  • «Конструктор»

  • «Просмотр»

  • «Редактирование»

По умолчанию форма открывается в режиме «Конструктор»:

При переключении между режимами отображаемая область не меняется: координаты верхнего левого угла формы (без учёта управляющих элементов) остаются постоянными.

В режиме просмотра формы (илл. «Пример формы в режиме просмотра»):

  • для компонента «Файл» отображается имя файла, выбранного в компоненте (данный файл можно открыть стандартным системным просмотрщиком).

В режиме заполнения (илл. «Пример формы в режиме заполнения»):

  • для компонента «Таблица» можно увидеть наличие / отсутствие функции добавления строк в таблицу (кнопка «+»);

  • для компонента «Файл» отображается кнопка «Добавить файл» с тремя пунктами: «С компьютера» / «Из хранилища» / «Создать новый» (добавленный файл можно открыть стандартным системным просмотрщиком).

Замечание

В клиентской части при открытии файла по форме режимы по умолчанию для файлов по форме:

  • в режиме редактирования - при создании файла по форме (создание записи реестра, создание документа из потоков работ);

  • в режиме просмотра - во всех остальных случаях.

Выделение ячеек формы

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

  • Выделить одну ячейку: одинарный клик ЛКМ.

  • Выделить несколько смежных ячеек: с зажатой клавишей Shift выделить ЛКМ первую и последнюю ячейки диапазона.

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

Система запоминает ячейку, выделенную первой. При последовательном выделении ячеек с зажатой клавишей Shift итоговая выделенная область вычисляется относительно первой и последней выбранных ячеек.

  • Выделить несколько разрозненных ячеек - с зажатой клавишей Ctrl выделить ЛКМ все нужные ячейки.

  • Выделить всю строку/ весь столбец таблицы верстки или таблицы-компонента - кликнуть на левый край строки/ верх столбца соответственно.

Если выделено несколько ячеек, то при клике ЛКМ на выделенную ячейку при зажатой Ctrl выделение с нее снимается.

Если в выделенной ячейке есть таблица, то выделяются все ее элементы.

Добавление нового компонента при одновременном выделении нескольких ячеек невозможно. В этом случае система выдает сообщение: «Должна быть выделена ровно одна ячейка», действие не выполняется.

Выделение ячеек, в том числе множественное - это вспомогательная функция, обеспечивающая объединение ячеек формы и массовые действия с настройками компонентов в них.

Объединение и разъединение ячеек формы

Функции объединения/разъединения ячеек работают аналогично как для ячеек таблиц-компонентов, так и для основной таблицы формы.

Кнопки «Объединить ячейки» и «Разъединить ячейки» расположены на верхней панели редактора форм. При наведении на кнопку отображается тултип «Объединить ячейки»/«Разъединить ячейки» соответственно.

Доступность кнопок зависит от выделенной области:

Состояние выделенной области «Объединить» «Разъединить»

Выделены смежные одинарные ячейки (прямоугольная область)

доступна

не доступна

Нет выделенных ячеек или выделена только одна одинарная ячейка

не доступна

не доступна

Выделена объединенная ячейка

не доступна

доступна

Выделена прямоугольная область, содержащая только объединенные ячейки

доступна

доступна

Выделена прямоугольная область, содержащая одновременно и объединенные, и одинарные ячейки

доступна

доступна

Объединение ячеек

Объединяются только выделенные ячейки, образующие прямоугольную область. После объединения полученная ячейка выделена.

При объединении пустых ячеек результатом объединения является пустая ячейка.

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

Если объединяются ячейки, среди которых хотя бы две содержат компоненты, то система выдает сообщение:

«При объединении сохранится только компонент в верхней левой непустой ячейке. Продолжить?»

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

Если пользователь отклоняет действие, то оно не выполняется, выделенная область не изменяется.

Ранее объединенные ячейки объединяются по тем же правилам, что и одинарные.

Разъединение ячеек

Разъединяются только ранее объединенные ячейки. Результатом разъединения являются одинарные ячейки, самая верхняя левая из полученных одинарных ячеек выделена.

Доступно одновременное разъединение нескольких объединенных ячеек. В этом случае после разъединения будут выделены:

  1. для каждой ранее объединенной ячейки: самая верхняя левая одинарная ячейка;

  2. все одинарные ячейки, которые находились в области разделения.

Если разъединяемая ячейка содержала компонент, то после разъединения он располагается в самой верхней левой ячейке выделенной области.

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

Отмена и возврат действий

Кнопки «Отменить действие» и «Вернуть действие» расположены на верхней панели редактора форм. При наведении на кнопки отображается тултип «Отменить действие» / «Вернуть действие» соответственно.

Помимо кнопок на панели, отмена выполняется по нажатию на Ctrl+Z, возврат - по нажатию на Ctrl+Y.

Для каждой формы одновременно хранится не более 50 последних ее состояний. При этом отменой можно вернуть форму максимум к последнему сохраненному состоянию (если с момента сохранения с формой было выполнено не более 50 действий).

Каждое выполняемое действие с компонентами формы сохраняется как отдельное состояние формы. Массовые действия с компонентами (изменение параметров компонентов или их удаление при мультивыборе; объединение ячеек, содержащих компоненты) сохраняются, как один шаг.

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

Отмена

При отмене все компоненты формы и все ячейки таблиц (как основной таблицы, так и вложенных) возвращаются в предыдущее состояние. Если последним шагом было добавление или вставка компонента на форму, то в результате отмены этот компонент удаляется. Если же последний шаг удалял или заменял компонент на форме (в том числе в результате объединения ячеек, среди которых как минимум две содержали компоненты), то в результате отмены все удаленные за предыдущий шаг компоненты возвращаются на форму со всеми своими параметрами и настройками.

Аналогично в предыдущее состояние возвращаются все таблицы формы.

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

Доступность кнопки «Отменить действие» зависит от наличия шагов, доступных для отмены: если для формы не сохранено ее предыдущего состояния, или форма находится в последнем сохраненном состоянии, то отмена недоступна.

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

Возврат

Функция возврата работает аналогично отмене, при этом в результате возврата форма переходит в следующее сохраненное состояние.

Кнопка «Вернуть действие» доступна только в том случае, если для формы сохранены ранее отмененные состояния.

Копирование/вставка компонентов формы

Копирование и вырезание компонентов в ячейках

Копирование компонента, расположенного в выделенной ячейке, осуществляется по нажатию на клавиши Ctrl+C. При этом копируется компонент со своим значением и всеми параметрами, связями и настройками, компонент в выделенной ячейке не изменяется.

Вырезание компонента из выделенной ячейки осуществляется по нажатию на клавиши Ctrl+X. При этом копируется компонент со своим значением и всеми параметрами, связями и настройками, а выделенная ячейка очищается.

Копирование или вырезание компонентов выполняется только для одной ячейки (как одинарной, так и ранее объединенной). Если в момент копирования или вырезания выделено несколько ячеек, то выполняется альтернативный поток событий 1.

Если в копируемой/вырезаемой ячейке располагается таблица, то в буфере обмена сохраняется ее структура и параметры, а также все расположенные в таблице элементы со своими значениями, параметрами, связями и настройками.

Вставка в ячейку

Вставка компонента в одну выделенную ячейку выполняется по нажатию на клавиши Ctrl+V. Выделенная ячейка может быть как одинарной, так и ранее объединенной. Если в момент вставки выделено несколько ячеек, то выполняется альтернативный поток событий 1.

При вставке в выделенную ячейку добавляется компонент, который был скопирован/вырезан последним, при этом буфер обмена не очищается. Если в момент вставки выделенная ячейка содержала какой-либо объект, то выполняется альтернативный поток событий 2.

Постфиксы для вставляемых компонентов

При вставке компонента его код сравнивается с кодами других объектов:

  1. Если компонент вставляется на форму (не в динамическую таблицу), то проверяется уникальность его кода среди других компонентов формы, исключая компоненты в динамических таблицах.

  2. Если компонент вставляется внутрь динамической таблицы, то проверяется уникальность его кода только среди других компонентов этой таблицы.

Если код вставляемого компонента не уникален в своей области, то к нему прибавляется постфикс вида _copy%N%, где N - натуральное число.

Примечание:

Постфикс _copy%N% прибавляется к префиксу кода компонента, не содержащему подстроку вида _copy%N%.

Альтернативные потоки событий

Альтернативный поток 1. В момент копирования, вырезания или вставки выделено несколько ячеек или не выделено ни одной.

Система выдает сообщение: «Должна быть выделена ровно одна ячейка формы», действие не выполняется.

Альтернативный поток 2. В момент вставки выделенная ячейка содержит другой объект.

Система выдает сообщение: «В ячейке уже имеется компонент. Заменить?»

Если пользователь подтверждает замену, то предыдущий объект в ячейке удаляется, в выделенной ячейке размещается объект из буфера обмена.

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

Компоненты формы

Настройки компонентов.

Для любого компонента формы, кроме компонентов структуры (таблица и страница), можно задать основные настройки компонента. Доступ к этим настройкам осуществляется с помощью всплывающего (inline) редактора

Редактор содержит:

  • настройки компонентов:

  • имя (идентификатор) компонента;

Примечание.

Имя компонента не должно содержать точек и заканчиваться на -b[{d,0+}]$ (например, не должно быть cmp-zxczxc-b1). Кроме того, не рекомендуется в качестве имени компонента использовать значения status, created, activated, чтобы избежать проблем при использовании некоторых API.

  • ширину и высоту компонента (вручную, в px);

  • выравнивание компонента внутри ячейки (варианты: по левому краю - по умолчанию / по центру / по правому краю / по ширине);

  • шрифт, используемый в компоненте: тип шрифта (на выбор: Arial - по умолчанию / Courier New / Tahoma / Times New Roman / Trebuchet / Verdana), размер (вручную, 12 - по умолчанию), начертание (жирный / курсив / подчеркнутый / перечеркнутый, по умолчанию ни один не выбран).

  • пиктограмму перехода к свойствам компонента ;

  • пиктограмму добавления строк и столбцов ;

  • если компонент расположен во вложенной таблице, то отображается пиктограмма выделения таблицы, содержащей компонент :

  • во всех случаях отображается пиктограмма удаления компонента .

Если одновременно выделено несколько компонентов формы (среди которых нет таблиц), то редактор содержит только общие для всех компонентов настройки и функции:

Настройки, указанные в редакторе для нескольких компонентов, применяются одновременно для всех выделенных компонентов.

Обязательность заполнения.

Для любого компонента формы, кроме компонентов структуры (таблица и страница) есть возможность задать свойство обязательности заполнения. Для этого нажимается иконка , в открывшемся диалоговом окне настроек компонента включается флажок «Обязательное поле» (по умолчанию, он выключен). Для принятия настроек нажимается «Готово».

Обязательность заполнения никак не влияет на его отображение в файле по форме. В случае, если при сохранении файла по форме не заполнены поля с признаком заполнения «обязательно», то при отсутствии специфичных ошибок компонентов выдается общая ошибка формы:

Заполните обязательные поля

Эти поля подсвечиваются красным цветом.

Локаль для компонентов формы.

В редакторе форм реализована возможность указания локали для некоторых компонентов формы: «Дата/время», «Выпадающий список», «Выбор вариантов», «Переключатель вариантов», «Объекты Synergy», «Лист подписей», «Ход выполнения», «Ссылка на документ», «Период повторения», «Ссылка на проект/портфель). Значения локали:»Не указан" (по умолчанию), «Казахский», «Русский», «Английский».

Если выбрано «Не указан», то используется локаль пользователя.

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

Код скрипта.

В настройках всех компонентов, за исключением «страницы», присутствует вкладка «Код скрипта», которая содержит многострочный текст для размещения в нем исполняемого кода. Поле ввода не является обязательным для заполнения. Логика компонента должна быть написана в коде скрипта. Отсутствие кода на компонент не влияет.

Код скриптинга выполняется сразу при отрисовке в форме. Скриптинг в формах должен удовлетворять следующим требованиям:

  • Проигрыватель формы сообщает о наступлении того или иного события, а скриптинг должен позволять их обрабатывать и выполнять код до или после наступления самого события.

    Примечание.

    Необходимо иметь ввиду, что события срабатывают только в случае, когда открыт проигрыватель формы.

  • Скриптинг позволяет манипулировать следующими свойствами компонента:

    • делать его доступным либо недоступным для изменения;

    • отображать либо перестать отображать его;

    • делать его обязательным либо не обязательным для заполнения;

    • добавлять либо удалять блоки динамической таблицы;

    • скрывать столбцы таблицы (статической, динамической).

  • Скриптинг позволяет получать и манипулировать внешним видом (равно как HTML-кодом) компонента.

  • Скриптинг позволяет получать и задавать новые значения компонента.

Анимация загрузки данных.

В случае, если процесс загрузки данных в каких-либо объектах проигрывателя форм (в т.ч. во всех порождаемых им диалоговых окнах) происходит не мгновенно, то он сопровождается анимацией загрузки:

Примеры использования анимации:

  • подгрузка данных при открытии формы;

  • подгрузка списка групп и пользователей при выделении всех групп в компоненте «Пользователи»;

  • подгрузка записей реестра в компоненте «Ссылка на реестр» (в т.ч. при перелистывании страниц);

  • загрузка файла с компьютера в компоненте «Файл».

Структура
Компонент «Таблица»

Компонент формы «Таблица» используется для разметки всей формы. В одну ячейку таблицы можно добавить один произвольный компонент формы, в т.ч. вложенную таблицу. Таблица может находиться в одном из двух состояний: статическая или динамическая.

Настраиваемые параметры столбца для всех таблиц на форме, включая исходную таблицу-разметку:

  • Ширина колонки

Таблица-компонент имеет специальный всплывающий редактор (илл. “Всплывающий редактор таблицы), содержащий элементы:

  • Поле ввода идентификатора компонента

  • пиктограмму перехода к настройкам таблицы ;

  • пиктограмму добавления строк и столбцов ;

  • пиктограмму очистки таблицы : в результате очистки в таблице остается одна пустая выделенная ячейка;

  • пиктограмму удаления компонента .

Редактор таблицы отображается, если выделена ячейка, содержащая эту таблицу, и не выделено никаких других ячеек (в том числе с другими таблицами). Выделить ячейку таблицы можно двумя способами:

  1. кликом ЛКМ по пиктограмме выделения таблицы ;

  2. с помошью всплывающего редактора компонента, расположенного в таблице, кликнув по пиктограмме .

Настройки таблицы (илл. «Настройки таблицы-компонента»):

  • Фиксированные размеры таблицы

  • Отобразить границы

  • Выводить содержимое в виде абзаца при просмотре/печати

  • Добавлять строки в режиме заполнения

  • Добавить заголовок таблицы

  • Количество отображаемых строк при создании

  • Форматная строка

  • Разделитель свертки

Примечание:

Для исходной таблицы-разметки настройка «Фиксированные размеры таблицы» расположена во вкладке «Параметры», остальные настройки для нее отсутствуют.

Рисунок 4.28. Настройки таблицы-компонента

Настройки таблицы-компонента

Флаг «Фиксированные размеры таблицы» означает, что при одновременном указании ширины столбца и компонента в этом столбце максимумом считается ширина столбца.

Для форм, созданных в версии Synergy 3.14 и выше (имеющих формат 1), этот параметр по умолчанию включен. Если форма была создана в редакторе версии 3.13 и ниже (имеет формат 0), то параметр «Фиксированные размеры таблицы» отключен по умолчанию. При этом отображение компонентов в таблице аналогично отображению компонентов в основной форме (флаг на вкладке «Параметры» в навигаторе).

Флажок «Отобразить границы» позволяет установить внешнюю рамку и линии внутри таблицы. Распространяется как на редактор форм, так и на проигрыватель форм в режимах просмотра (при отсутствии свертки) и редактирования. Доступно и для статической, и для динамической таблицы.

Флажок «Выводить содержимое в виде абзаца при просмотре/печати» позволяет настроить вид отображения содержимого таблицы в режиме просмотра файла по форме. Доступно и для статической, и для динамической таблицы.

Флажок «Добавлять строки в режиме заполнения» позволяет задать компоненту дополнительные свойства динамической таблицы.

Для включенного флажка активируются флажок «Добавить заголовок таблицы» и текстовое поле «Количество отображаемых строк при создании». Имеют смысл только для динамической таблицы.

При включении флажка «Добавить заголовок таблицы» в таблицу добавляется особая первая строка - заголовок. Заголовок нельзя удалить стандартным способом, а также добавить строки выше, она также не повторяется при добавлении новых блоков в режиме редактирования. В каждую ячейку этой строки в редакторе форм можно добавить компонент (добавление компонентов, отличных от «Неизменяемый текст», не рекомендуется) и настроить его. Заголовок выводится во всех режимах отображения файла по форме.

Поле ввода «Количество отображаемых строк при создании» определяет, сколько строк будет создано автоматически при создании файла по форме. Значение по умолчанию - 0.

Поля ввода «Форматная строка» и «Разделитель свертки» доступны для ввода и редактирования всегда, но имеют смысл только для включенного флажка «Выводить содержимое в виде абзаца при просмотре/печати». Вид «отображения в виде абзаца» задается с помощью форматной строки. Все варианты подобных сверток имеют выравнивание текста строго по ширине и изменить это нельзя.

В форматной строке можно использовать следующие подстановки.

  • %Пустое_значение%

    Все компоненты статической таблицы «склеиваются» (без добавления, например, пробела между ними) слева-направо и сверху-вниз.

    Динамическая таблица в таком случае не принимает вид абзаца вовсе.

Приведенные далее требования имеют смысл только для динамической таблицы. Статическая же таблица игнорирует наличие какой-либо форматной строки и свертки, т.е. всегда выполняется вышеописанное «склеивание».

  • ${конкретный id компонента таблицы}

    Например: ${cmp1-b1}

    Подставляется непосредственное текстовое значение компонента.

    Примечание

    Номер b1 для компонента cmp1 берется не по порядку нахождения его в первой строке, а по порядку создания этой строки. Т.е. если первая созданная строка будет удалена, а затем на её месте будет создана новая строка, то нужный id не будет равен cmp1-b1.

  • [${общий id компонента таблицы} возможен произвольный текст ${общий id другого компонента} и так далее]

    Например: [сначала ${cmp2}, затем ${cmp3}]

    Подставляется результат свёртки всех значений этой подстановки в виде строкового значения, формируемого следующим образом:

    • берутся N (по числу строк динамической таблицы) подстрок, содержимое которых определяется содержимым [];

    • в каждую такую подстроку вместо ${id компонента таблицы} подставляется конкретное значение этого компонента;

    • подстроки соединяются в общую результирующую строку с помощью разделителя свертки, указанного в соответствующем поле, а при отсутствии разделителя свертки - с помощью переноса строки.

  • А также произвольные сочетания на их основе.

    Например: Произвольный текст ${cmp1-b1}, снова текст, [потом ${cmp2}, затем ${cmp3}]. Текст и снова компоненты [${cmp4-b3} + ${cmp5}]. Заканчиваем еще текстом.

Поведение компонента.

При создании новой формы основная рабочая область, по умолчанию, имеет одну ячейку. Ячейки в таблицу можно добавлять вправо / влево, вверх / вниз от текущей выделенной, нажав на соответствующие стрелочки, расположенные по краям ячейки. Вправо / влево ячейки добавляются только внутри разрыва страницы (если таковой имеется). При добавлении новой строки или столбца выделение ячейки должно переместиться на верхнюю левую среди новых добавленных.

Разработчик Synergy выделяет ячейку, выбирает из секции «Элементы» необходимый компонент формы. В выделенной ячейке появляется выбранный компонент.

Примечание

В случае, если в выделенную ячейку таблицы, где уже вставлен какой-либо компонент, вставляется другой компонент, открывается браузерное диалоговое окно с сообщением:

  • В ячейке уже имеется компонент. Заменить?

Разработчик Synergy либо подтверждает замену («ОК»), либо отменяет действие («Отмена»).

По умолчанию, столбцы имеют одинаково пропорциональную ширину. При этом любому столбцу можно задать ширину вручную, нажав на иконку настройки столбца , расположенную в левом верхнем углу заголовка столбца. Во всплывающем окне в поле ввода «Ширина колонки» вводится значение ширины (по умолчанию, в пикселях px, можно указать единицу измерения: высота заглавных букв em, высота прописных букв ex, пункты pt, пики pc, дюймы in, миллиметры mm, сантиметры cm, либо меру %).

По умолчанию, добавленный компонент растягивается на всю ширину ячейки. Заданная ширина компонента может растянуть компонент в ширину не более, чем задано шириной колонки. Если же ширина столбцов не задана, ширина столбца растягивается по максимальной заданной ширине среди всех компонентов данного столбца.

Высота строки таблицы определяется контентом.

Компоненты внутри таблицы имеют выравнивание, заданное их собственными настройками.

Любую строку / столбец (за исключением последней строки и/или столбца) можно удалить, нажав на иконку корзины , расположенную по центру заголовка строки / столбца. Система предоставит браузерное диалоговое окно с сообщением:

  • Вы уверены, что хотите удалить столбец? - при удалении столбца

  • Вы уверены, что хотите удалить строку? - при удалении строки

Разработчик Synergy либо подтверждает удаление («ОК»), либо отменяет действие («Отмена»).

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

  • Удалить элемент формы?

Разработчик Synergy либо подтверждает удаление («ОК»), либо отменяет действие («Отмена»).

Можно удалить сразу все компоненты с основной рабочей области, нажав на иконку очистки страницы , расположенную в самом левом верхнем углу таблицы. Система предоставит браузерное диалоговое окно с сообщением:

  • Вы уверены, что хотите удалить все элементы?

Разработчик Synergy либо подтверждает удаление («ОК»), либо отменяет действие («Отмена»).

Особые свойства статической таблицы

  • Режим просмотра статической таблицы, если не настроен вывод содержимого таблицы в виде абзаца:

    • обычная таблица с границами (граница - одинарная сплошная линия черного цвета) или без, заголовок отсутствует;

    • ширина определяется настройками, описанными выше, высота - контентом;

    • высота строки определяется ее содержимым.

    Если же настроен вывод содержимого таблицы в виде абзаца, то в виде абзацного текста согласно описания выше.

  • Режим редактирования статической таблицы:

    • обычная таблица с границами (граница - одинарная сплошная линия черного цвета) или без, заголовок отсутствует;

    • ширина всех столбцов имеет одинаковую пропорциональную ширину, высота определяется контентом;

    • высота строки определяется ее содержимым.

Особые свойства динамической таблицы

  • Режим просмотра динамической таблицы:

    • если не настроен вывод содержимого таблицы в виде абзаца, то аналогично статической таблице; иначе - в виде абзацного текста (причем, необязательно все содержимое таблицы) согласно форматной строке и разделителю свертки;

    • возможно наличие заголовка (только при отсутствии отображения в виде абзаца): высота определяется шрифтом содержимого строки заголовка, ширина - шириной столбцов;

    • высота строки определяется ее содержимым.

  • Режим редактирования динамической таблицы:

    • при создании отображается таблица, аналогичная статической в данном режиме, но с заданным количеством строк;

    • возможно наличие заголовка: высота определяется шрифтом содержимого строки заголовка, ширина - шириной столбцов;

    • высота строки определяется ее содержимым;

    • справа от последней строки каждого блока вне таблицы отображается иконка удаления , по нажатию которой без какого-либо подтверждения соответствующая строка удаляется;

    • снизу слева вне таблицы отображается кликабельный лейбл «+ Добавить блок» для добавления новой строки или блока строк, по нажатию которого в конец таблицы добавляется одна новая строка / один новый блок строк со значениями компонентов по умолчанию;

    • лейбл «+ Добавить блок» подчеркнут, при наведении меняет типа курсора на «pointer», а также является локале зависимым.

Основные отступы ячейки в таблице с границами: сверху и снизу - 1 px, слева и справа 4 px.

Основные отступы ячейки в таблице без границ: сверху и снизу - 1 px, слева 0 px, справа 4 px.

Отступ слева у кликабельного лейбла «+ Добавить блок» - 4 px.

Рисунок 4.29. Динамическая таблица с минимальной строкой

Динамическая таблица с минимальной строкой

Рисунок 4.30. Динамическая таблица без границ

Динамическая таблица без границ

Рисунок 4.31. Динамическая таблица с границами

Динамическая таблица с границами

Рисунок 4.32. Динамическая таблица (отступы)

Динамическая таблица (отступы)

Компонент «Контейнер»

Компонент «Контейнер» является основой разметки компонентов: при вставке любого другого компонента (за исключением таблиц) в место вставки вначале добавляется контейнер, а уже в него - вставляемый компонент.

Компонент «Контейнер» является служебным: пользователь не может добавить его на форму самостоятельно - только вместе с каким-либо другим компонентом.

Параметры компонента «Контейнер»:

  • Минимальная высота - 32px.

  • Вертикальное выравнивание - по центру

  • Отступы - нет

Компонент «Страница»

Если в редакторе форм добавить компонент «Страница» (илл. «Компонент «Страница»»), то после выделенной ячейки добавится разрыв страницы.

При формировании печатной версии формы (по нажатию на кнопку «Печать») средствами браузера будет сформирован файл для печати с разрывам страниц согласно вставленному компоненту. Так же возможно формирование формируемого PDF-файла средствами браузера.

Рисунок 4.33. Компонент «Страница»

Компонент «Страница»

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

Удаление компонента «Страница» происходит при удалении последней строки или последнего столбца, содержащихся на этой странице. При этом система выдает сообщение: «Вы действительно хотите удалить эту страницу?»

Разработчик Synergy либо подтверждает удаление («ОК»), либо отменяет действие («Отмена»).

Текстовые элементы
Компонент «Неизменяемый текст»

Компонент «Неизменяемый текст» (лейбл) позволяет отображать заранее введенный текст, который является нередактируемым.

Внешне как в режиме просмотра, так и и в режиме редактирования файла по форме компонент представляет собой текстовую подпись.

Значение по умолчанию - Нажмите чтобы ввести текст. Если значение компонента не задано, то он принимает значение по умолчанию.

По нажатию на параметры открывается диалог со следующими вкладками:

  • Переводы

  • Код скрипта

На вкладке «Переводы» находится таблица с переводами неизменяемого текста соответствующая таблице, которая находится в диалоге «Переводы» мультиязычного поля ввода. Текст, который вводится на форме, должен сохраняться в качестве значения локали по умолчанию.

Рисунок 4.34. Вкладка «Переводы»

Вкладка «Переводы»

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

Поведение компонента:

  • Значение неизменяемого текста задается только в конфигураторе на этапе создания / редактирования формы. Если в конфигураторе его не задать, то компонент примет значение по умолчанию.

  • При клике мыши на компонент ничего не происходит. При табуляции неизменяемый текст пропускается.

  • С неизменяемого текста доступно копирование выделенной части в системный буфер обмена сочетаниями Ctrl+C, Ctrl+Insert, ПКМ → Копировать. В буфер попадает текстовое представление выделенной части.

Шрифт по умолчанию: Arial 12 px, цвет #333333

Компонент «Однострочное поле»

Компонент «Однострочное поле» позволяет вводить и отображать произвольное текстовое значение в одну строку (абзацы отсутствуют). Однострочное поле, кроме того, позволяет ограничивать возможности ввода определенных символов.

Внешне в режиме редактирования файла по форме компонент представляет собой поле ввода высотой в одну строку, длинный текст не расширяет это поле по высоте. По умолчанию (без маски ввода) доступен ввод всех символов и в любом количестве. В режиме просмотра компонент отображается в виде лейбла, длинный текст отображается на несколько строк.

Настраиваемые параметры компонента (илл. «Настройки однострочного поля»):

  • Обязательное поле

  • Заблокировать от изменений пользователем

  • Маска ввода

Рисунок 4.35. Настройки однострочного поля

Настройки однострочного поля

Флажок «Заблокировать от изменений пользователем» позволяет сделать недоступным ввод данных в данный компонент в режиме редактирования файла по форме.

Флажок и поле ввода «Маска ввода» определяют, какие символы и сколько может быть введено в компонент. Общее количество символов, которое может быть введено в поле, строго равно количеству символов маски ввода (за исключением escape- символов \ - обратная косая черта).

Маска ввода представляет собой строку, состоящую из обычных символов (литералов) и метасимволов. Каждый метасимвол маски ввода определяет класс символов, один из которых может быть введен в то место поля, где расположен метасимвол. Список поддерживаемых метасимволов:

  • A - любая заглавная буква Unicode, соответствующее регулярное выражение: [\p{Lu}]

  • a - любая строчная буква Unicode, соответствующее регулярное выражение: [\p{Ll}]

  • # - любая цифра, соответствующее регулярное выражение: [0-9]

  • L - любая заглавная буква латинского алфавита. Соответствующее регулярное выражение: [A-Z]

  • l - любая строчная буква латинского алфавита. Соответствующее регулярное выражение: [a-z]

  • * - любой символ. Соответствующее регулярное выражение: .

Для того, чтобы вставить в маску ввода метасимвол в качестве литерала, необходимо предварить его escape-символом \ (обратная косая черта). Для вставки косой обратной черты как литерала необходимо использовать конструкцию \\ (двойная обратная косая черта).

В компоненте «Однострочное поле» с активированной и настроенной маской ввода литералы отображаются «как есть», их нельзя изменить или удалить. Метасимволы отображаются в виде _ (подчеркивание). Вместо метасимволов можно вводить только те символы, которые попадают в класс метасимвола.

Значением компонента является его текстовое представление.

Примеры:

  • (###) ###-##-## - маска ввода для телефонного номера в Казахстане. Ей соответствуют такие номера, как (727) 333-47-47, (721) 394-03-42 и т.п.

  • LL## ** **** **** **** ** - маска ввода для IBAN (Казахстан).

Поведение компонента:

  • Значение однострочного поля по умолчанию задается в конфигураторе на этапе создания / редактирования формы (может быть пустым).

  • Пустое значение в режиме просмотра формы отображается как пустое значение (а не знаками подчеркивания, например).

  • Placeholder отсутствует.

  • При попадании фокуса на компонент кликом мыши содержимое компонента не выделяется, положение курсора - в месте клика.

    При попадании фокуса на компонент табуляцией содержимое компонента выделяется, положение курсора - в конце строки.

  • Если поле с настроенной маской не заполнено полностью (при этом неважно, обязательно ли поле для заполнения), то проверка на неполное значение выполняется:

    • при потере фокуса с компонента - поле подсвечивается красным, ошибки отсутствуют;

    • на этапе сохранения файла по форме либо при переключении режимов формы - поле также подсвечивается красным, но выводится ошибка:

      Введите корректное значение

    Сюда также относятся следующие случаи:

    • пользователь установил фокус в поле ввода, ничего не ввел и снял фокус;

    • пользователь ввел данные, затем удалил их.

    Примечание. Ввиду особенности маски ввода *, при которой возможен ввод любого символа, метасимвол в виде _ является для такой маски корректным значением и вышеописанная валидация на неполное значение не выполняется. Все это не является ошибкой Synergy.

  • Если поле отмечено как обязательное к заполнению (без настроенной маски), то проверка на пустое значение выполняется:

    • при потере фокуса с компонента - поле подсвечивается красным, ошибки отсутствуют;

    • на этапе сохранения файла по форме либо при переключении режимов формы - поле также подсвечивается красным, но выводится общая ошибка формы:

      Заполните обязательные поля

    Сюда относятся следующий случай: фокус на поле ввода отсутствовал, компонент не заполнен. В этом случае считается, что компонент имеет пустое значение.

  • С однострочного поля доступно копирование выделенной части в системный буфер обмена сочетаниями Ctrl+C, Ctrl+Insert, ПКМ → Копировать. В буфер попадает текстовое представление выделенной части.

  • С однострочного поля доступно вырезание выделенной части в системный буфер обмена сочетаниями Ctrl+X, Shift+Delete, ПКМ → Вырезать. В случае вырезания всего содержимого в поле должна установиться исходная маска ввода (не значение по умолчанию), при наличии. В буфер попадает текстовое представление выделенной части.

  • В однострочное поле без маски ввода доступна вставка данных из системного буфера обмена сочетаниями клавиш Ctrl+V, Shift+Insert, ПКМ → Вставить. По умолчанию, в данный компонент разрешено вставлять любые символы. Успешная вставка должна происходить с заменой выделенного значения и справа от положения курсора (многострочный текст вставляется в одну строку).

  • Вставка данных в однострочное поле с настроенной маской ввода, в целом, повторяет поведение обычной вставки, но со следующей особенностью: содержимое из системного буфера обмена попытается «подстроиться» под маску и вставится только в те части, что под нее подходят.

    Пример №1. Для маски ввода ***### при вставке следующего значения в начало строки:

    • АБВ123 компонент примет значение АБВ123, т.к. вставляемое значение не противоречит маске;

    • АБВ123ГДЕ456 компонент примет значение АБВ123, т.к. вставляемое значение не противоречит маске, а лишние символы (начиная с Г и далее) не вставятся;

    • 123456 компонент примет значение 123456, т.к. вставляемое значение не противоречит маске;

    • АБВГДЕ компонент примет значение АБВ___, т.к. символы ГДЕ противоречат той части маски.

    Пример №2. Для маски ввода +7-(7##)-###-##-## при вставке следующего значения в начало строки:

    • 77779552595 компонент примет значение +7-(777)-955-25-95, т.к. вставляемое значение «подстроилось» под маску (первые две совпадающие цифры 7 наложились);

    • 87779552595 компонент примет значение +7-(787)-779-55-25, здесь из-за наличия несовпадающей цифры 8 наложения не произошло, значение вставилось непосредственно в маску.

Высота однострочного поля ввода (в px) рассчитывается так:

height = heightSet + 2 * padding + 2 * border

где:

  • heightSet - это высота, заданная в настройках компонента, по умолчанию 20;

  • padding = 2;

  • border = 1;

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

Шрифт по умолчанию: Arial 12 px, цвет #333333

Рисунок 4.36. Компонент «Однострочное поле» на форме

Компонент «Однострочное поле» на форме

Компонент «Числовое поле»

Компонент формы «Числовое поле» позволяет отобразить типизированные десятичные числовые значения. Числовое поле, кроме того, позволяет выполнять простые математические вычисления: сложение, вычитание, умножение и деление. Внешне компонент аналогичен компоненту «Однострочное поле».

Настраиваемые параметры компонента (илл. «Настройки числового поля»):

  • Обязательное поле

  • Заблокировать от изменений пользователем

  • Настройки форматирования

    • Количество десятичных знаков (для включенного флажка - обяз.)

    • Разделитель дробной части (не имеет пустого значения)

    • Действия с лишними десятичными знаками (не имеет пустого значения)

    • Разделитель тысяч (для включенного флажка - обяз.)

    • Пример

  • Настройки компонента

    • Граничные значения (обяз.)

Флажок «Заблокировать от изменений пользователем» позволяет сделать недоступным ввод данных в данный компонент в режиме редактирования файла по форме.

Поле ввода «Количество десятичных знаков» определяет, сколько в текстовом представлении компонента будет отображено десятичных знаков. Значение по умолчанию: 2, валидация: целое число от 0 до 16 включительно (число, большее 16, по смыслу приравнивается к 16). При редактировании самого числового поля ограничений на количество вводимых десятичных знаков отсутствует - числовое поле должно преобразовать число согласно данной настройке и настройке «Действие с лишними десятичными знаками».

Выпадающий список «Разделитель дробной части» определяет символ, который будет отображаться в текстовом представлении числа как разделитель дробной части. Возможные значения списка - «запятая» (по умолчанию) и «точка». При редактировании числового поля доступен ввод хоть точки, хоть запятой, но при этом этот разделитель «на лету» и автоматически должен замениться на тот, что указан в данной настройке.

Пример.

Пусть разделить дробной части - запятая. Пользователь вводит в числовое поле значение 123.4 (через точку). Точка автоматически заменяется на запятую и значение принимает вид 123,4 (через запятую). Аналогично в обратную сторону.

Кроме того, должна происходить валидация на невозможность ввода нескольких разделителей дробной части (за исключением режима калькулятора).

Выпадающий список «Действия с лишними десятичными знаками» определяет то действие, которое необходимо применять в случае превышения установленного количества десятичных знаков при вводе. Возможные значения списка: «Округлить» (по умолчанию) и «Отбросить». Данная настройка влияет на текстовое представление числового поля.

Флажок и поле ввода «Разделитель тысяч» определяют, использовать ли в текстовом представлении разделитель тысяч. Значение по умолчанию: флажок выключен, поле ввода недоступно (разделение на разряды отсутствует). Для включенного флажка становится доступным поле ввода, валидация: допускается ввод любого символа, кроме цифр 0-9 и знаков «+ - * /». Кроме того, в качестве разделителя тысяч нельзя использовать настроенный разделитель дробной части.

Недоступное на редактирование поле ввода «Пример» отображает пользователю в режиме реального времени согласно настройкам пример текстового представления числового поля. Для значения настроек «Количество десятичных знаков» = 2, «Разделитель дробной части» = точка, «Действие с лишними десятичными знаками» = Округлить, «Разделитель тысяч» = пробел:

  • числовым представлением будет 1234567890.99

  • текстовым представлением будет 1 234 567 890.99

2 поля ввода «Граничные значения» определяют минимальное и максимальное текстовое представление компонента. Значения по умолчанию: -9223372036854775808 и 9223372036854775808, валидация полей ввода данной настройки: допускается ввод любых чисел, не превышающих значения по умолчанию. При редактировании самого числового поля ограничение на ввод числа отсутствует - числовое поле должно преобразовать его в текстовом представлении согласно данной настройки (см. подробнее в поведении компонента).

Примечание.

Система не гарантирует точность работы с числами, которые содержат в себе больше 11 знаков.

Рисунок 4.37. Настройки числового поля

Настройки числового поля

Разрешенные символы для ввода в компонент:

  • цифры 0-9

  • знак «=»

  • разделители дробной части «.» и «,»: в рамках одного компонента допускается ввод 2 и более не подряд идущих разделителей дробной части только в том случае, если между этими двумя разделителями расположен хотя бы 1 знак арифметической операции

Значение числового поля должно иметь два представления:

  • непосредственно число, которое будет вводиться при попадании фокуса на компонент (кликом мыши либо перемещением с помощью Tab) и использоваться в математических расчетах с участием данного компонента;

  • значение, аналогичное текстовому представлению, которое будет отображено пользователю при потере фокуса на компоненте (в т.ч. по нажатию на клавишу Enter) и в режиме просмотра формы.

Если запись в числовом поле начинается с символа =, то в компоненте включается режим калькулятора. В данном режиме пользователю доступны для ввода символы арифметических операций «+ - * /», причем нельзя подряд вводить 2 и более знаков арифметических операций, за исключением случаев, когда вторым знаком идет «-». Пользователь вводит подряд без пробелов элементарные математические формулы из доступных операций.

Расчет формулы происходит только по нажатию на Enter, при этом поле остается в фокусе (в режиме редактирования числа, формула более не хранится нигде). При переходе из режима редактирования в режим чтения (при повторном нажатии на Enter либо расфокусе) происходит преобразование числа в текстовое представление. При переходе обратно в режим редактирования отображается не формула, а число, являющееся итоговым значением формулы.

Поведение компонента:

  • Значение числового поля по умолчанию задается в конфигураторе на этапе создания / редактирования формы (может быть пустым).

  • Пустое значение в режиме просмотра формы отображается как пустое значение (а не знаками подчеркивания, например).

  • Placeholder: «Введите число».

  • Неразрешенные символы не вводятся.

  • Ноль в начале последовательности цифр удаляется.

  • По нажатию на Enter числовое поле, не содержащее формулу, отображает текстовое представление введенного числа, снимается фокус с компонента.

  • По нажатию на Enter числовое поле, содержащее формулу, отображает числовое значение формулы, фокус на компоненте остается (снятие фокуса происходит по следующему нажатию на Enter).

  • При попадании фокуса на компонент числового поля на форме (как кликом мыши, так и табуляцией) все содержимое компонента должно выделиться.

  • Если введенное число выходит за рамки граничного, то при потере фокуса числовое поле должно выделиться красным (без каких-либо ошибок), в поле должно отобразиться ближайшее граничное значение в текстовом представлении. При следующем фокусе - выделение красным цветом снимается, отображается снова то введенное число (в числовом представлении).

    На этапе сохранения файла по форме либо при переключении режимов формы с невалидным значением поле подсвечивается красным, выводится ошибка:

    Некоторые значения чисел не входят в установленный интервал

  • Если поле отмечено как обязательное к заполнению, то проверка на пустое значение выполняется:

    • при потере фокуса с компонента - поле подсвечивается красным, ошибки отсутствуют;

    • на этапе сохранения файла по форме либо при переключении режимов формы - поле также подсвечивается красным цветом, но выводится общая ошибка формы:

      Заполните обязательные поля

  • С числового поля доступно копирование выделенной части в системный буфер обмена сочетаниями Ctrl+C, Ctrl+Insert, ПКМ → Копировать. В буфер попадает текстовое представление выделенной части.

  • С числового поля доступно вырезание выделенной части в системный буфер обмена сочетаниями Ctrl+X, Shift+Delete, ПКМ → Вырезать. В случае вырезания всего содержимого в поле ничего (в т.ч. значение по умолчанию) отображаться не должно. В буфер попадает текстовое представление выделенной части.

  • В числовое поле доступна вставка только числовых данных (в т.ч. формул, начинающихся со знака =) из системного буфера обмена сочетаниями клавиш Ctrl+V, Shift+Insert, ПКМ → Вставить. В случае вставки данных, в которых содержится хотя бы один неразрешенный символ, в т.ч. второй (по отношению к уже имеющемуся в поле) разделитель дробной части, с буфера обмена в компонент числового поля должна завершиться неуспешно. Успешная вставка должна происходить с заменой выделенного значения и справа от положения курсора. Если вставлялась формула, автоматически происходит ее расчет (а не после нажатия Enter).

Высота числового поля ввода по умолчанию: 26 px

Шрифт по умолчанию: Arial 12 px, цвет #333333

Рисунок 4.38. Компонент «Числовое поле» на форме

Компонент «Числовое поле» на форме

Компонент «Многострочный текст»

Компонент «Многострочный текст» позволяет вводить и отображать произвольное текстовое значение на несколько строк.

Настраиваемые параметры компонента (илл. «Настройки многострочного поля»):

  • Обязательное поле

  • Заблокировать от изменений пользователем

  • Не удалять пробелы в начале строки

Все флажки по умолчанию выключены.

Рисунок 4.39. Настройки многострочного текста

Настройки многострочного текста

Флажок «Заблокировать от изменений пользователем» позволяет сделать недоступным ввод данных в данный компонент в режиме редактирования файла по форме.

Флажок «Не удалять пробелы в начале строки» позволяет сохранять и отображать в режиме просмотра и печатном представлении формы пробелы, введенные в начале строки.

Пример. Пусть “_" - это знак пробела.

Для введенного текста “___Текст" в режиме просмотра и печатном представлении будет отображаться исходный вариант “___Текст“.

Выключенный флажок, в свою очередь, «схлопывает» введенные в начале строки пробелы.

Пример.

Для введенного текста “___Текст" в режиме просмотра и печатном представлении будет отображаться «Текст».

Поведение компонента:

  • Значение многострочного текста по умолчанию задается в конфигураторе на этапе создания / редактирования формы (может быть пустым).

  • Пустое значение в режиме просмотра формы отображается как пустое значение (а не знаками подчеркивания, например).

  • Placeholder отсутствует.

  • При попадании фокуса на компонент кликом мыши содержимое компонента не выделяется, положение курсора - в месте клика.

    При попадании фокуса на компонент табуляцией содержимое компонента не выделяется, положение курсора - в месте последнего положения курсора (при его отсутствии - после последнего символа).

  • Если поле отмечено как обязательное к заполнению, то проверка на пустое значение выполняется:

    • при потере фокуса с компонента - поле подсвечивается красным, ошибки отсутствуют;

    • на этапе сохранения файла по форме либо при переключении режимов формы - поле также подсвечивается красным, но выводится общая ошибка формы:

      Заполните обязательные поля

  • С многострочного текста доступно копирование выделенной части в системный буфер обмена сочетаниями Ctrl+C, Ctrl+ Insert, ПКМ → Копировать. В буфер попадает текстовое представление выделенной части.

  • С многострочного текста доступно вырезание выделенной части в системный буфер обмена сочетаниями Ctrl+X, Shift+ Delete, ПКМ → Вырезать. При этом в поле ничего (в т.ч. значение по умолчанию) отображаться не должно. В буфер попадает текстовое представление выделенной части.

  • В многострочный текст доступна вставка данных из системного буфера обмена сочетаниями клавиш Ctrl+V, Shift+Insert, ПКМ → Вставить. По умолчанию, в данный компонент разрешено вставлять любые символы. Успешная вставка должна происходить с заменой выделенного значения и справа от положения курсора.

Высота многострочного поля ввода по умолчанию: 60 px. При этом в случае, когда объем заполняемого текст выходит за указанные рамки, исходная высота компонента должна «подстроиться» под этот объем.

Шрифт по умолчанию: Arial 12 px, цвет #333333

Рисунок 4.40. Компонент «Многострочное поле» на форме

Компонент «Многострочное поле» на форме

Компонент «HTD-редактор»

В качестве основы реализации компонента «HTD-редактор» используется свободный (LGPL) HTML-редактор TinyMCE с модифицированным визуальным оформлением. Его поведение и особенности описаны на официальном сайте: https://www.tinymce.com/.

В целом, в режиме редактирования компонент формы «HTD-редактор» представляет собой компонент «Многострочный текст» с панелью форматирования:

  • Шрифт

    • Arial

    • Courier New

    • Tahoma

    • Times New Roman

    • Trebushet

    • Verdana

  • Размер шрифта

    • 7px

    • 8px

    • 9px

    • 12px

    • 14px

    • 18px

    • 24px

  • Полужирный

  • Курсив

  • Подчеркнутый

  • Зачеркнутый

  • По левому краю

  • По центру

  • По правому краю

  • По ширине

  • Цвет текста

  • Цвет фона

  • Маркированный список

  • Нумерованный список

  • Уменьшить отступ

  • Увеличить отступ

  • Очистить формат

Нажатие на кнопку «Очистить формат» сбрасывает все значения в панели до первоначальных.

Ширина компонента в режиме редактирования «подстраивается» под ширину столбца, при этом итоговая ширина компонента будет не меньше, чем 200 px. Все невмещающиеся кнопки форматирования переносятся на следующую строку.

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

Внутреннее представление данных компонента - HTML.

Элементы выбора
Компонент «Выпадающий список»

Компонент формы «Выпадающий список» позволяет выбирать одно значение из раскрывающегося списка.

Внешне в режиме редактирования файла по форме компонент представляет собой нередактируемое поле ввода и кнопку вызова списка справа от нее. В режиме просмотра компонент отображается в виде лейбла. Пустое значение отображается как пустое значение (а не знаками подчеркивания, например).

Настройка списка возможных значений на этапе конфигурирования компонента происходит в окне настроек компонента, вкладка «Элементы». Значения компонента можно ввести:

  • Вручную с помощью кнопок добавления и удаления строк. Новая строка добавляется в конец списка, фокус сразу на ней. Удаление происходит без подтверждения.

  • Выбрать готовые значения из справочника. Редактировать их нельзя: кнопки добавления и удаления отсутствуют, поля ввода недоступны. Кроме того, в данному случае добавляется настройка языка компонента.

В обоих случаях отображаются два столбца: «Наименование» и «Значение». Для выбранного справочника над ними добавляется выпадающий список, содержащий столбцы выбранного справочника.

В режиме просмотра файла по форме и в режиме его заполнения используются подписи из столбца «Наименование». Значением компонента является «Значение».

Рисунок 4.41. Ввод элементов выпадающего списка

Ввод элементов выпадающего списка

Рисунок 4.42. Выбор элементов выпадающего списка из справочника

Выбор элементов выпадающего списка из справочника

Настраиваемые параметры компонента:

  • Обязательное поле

  • Заблокировать от изменений пользователем

  • Связь с компонентом

  • Позволять поиск

Все флажки по умолчанию выключены.

Флажок «Заблокировать от изменений пользователем» позволяет сделать недоступным выбор данных в данный компонент в режиме редактирования файла по форме.

Флажок «Позволять поиск» позволяет использовать текстовый поиск в компоненте. Если он включен, то в поле списка можно вводить текст, который будет использоваться как фильтр элементов списка.

Флажок и выпадающий список «Связь с компонентом». По включению флажка активируется выпадающий список. Выпадающий список содержит идентификаторы компонентов типа «Выпадающий список». В этот список не входит только настраиваемый компонент, т.е. можно настроить связи как вида «один-к-одному», так и «один-ко многим», и все они должны корректно работать.

У зависимого компонента (компонента, для которого активирована эта настройка) в диалоге редактирования элементов, в дополнение к «Наименованию» и «Значению», появляется третье поле - «Фильтр». Это поле имеется как в режиме ручного ввода, так и в случае выбора справочника:

Рисунок 4.43. Ввод элементов зависимого «Выпадающего списка»

Ввод элементов зависимого «Выпадающего списка»

Рисунок 4.44. Ввод элементов зависимого «Выпадающего списка»

Ввод элементов зависимого «Выпадающего списка»

Значение выбранного в главном компоненте (компоненте, с которым связан зависимый) элемента используется для того, чтобы определить, какие элементы доступны к выбору в зависимом компоненте - доступными к выбору из зависимого списка должны быть только те элементы, значение поля «Фильтр» которых (полностью, строково) совпадает со значением поля «Значение» выбранного в главном списке элемента.

Фильтрация элементов зависимого списка должна производиться при каждом изменении выбранного элемента в главном списке, включая изменения, вызванные сработавшим механизмом сопоставления полей форм.

Если выбранный в главном списке элемент не соответствует ни одному из элементов зависимого списка (т.е. ни один элемент зависимого списка не имеет значения поля «Фильтр», равного значению поля «Значение», выбранного в главном списке элемента), то в этом случае в зависимом списке не доступен к выбору ни один элемент, т.е. зависимый список будет пустым.

Таким образом, возможно создание цепочек связанных компонентов. Например, чтобы можно было связать следующие списки (в скобках указаны столбцы, столбец фильтра выделен курсивом, столбец значения - полужирным):

«Царство» (название, код царства) → «Тип» (название, код типа, код царства) → «Класс» (название, код класса, код типа) → Отряд (название, код отряда, код класса) → Семейство (название, код семейства, код отряда) → Род (название, код рода, код семейства) → Вид (название, код вида, код рода)

Примечание.

Вышеописанная связь будет корректно работать только для следующих случаев:

  • главный и зависимый компоненты находятся вне динамических таблиц;

  • главный и зависимый компоненты находятся внутри одной динамической таблицы;

  • главный компонент находится вне динамической таблицы, а зависимый - внутри нее.

Во всех остальных случаях (например, главный и зависимый компоненты находятся в разных динамических таблицах, либо главный компонент находится в динамической таблице, а зависимый - вне ее) - некорректно, и это не будет являться ошибкой Synergy.

Поведение компонента:

  • Ширина компонента в режиме редактирования «подстраивается» под ширину столбца, при этом итоговая ширина компонента будет не меньше, чем 80 px.

  • Значение компонента по умолчанию задается в конфигураторе на этапе создания / редактирования формы (может быть пустым, по умолчанию заполняется первым значением в списке).

    Примечание.

    Если в связанном списке значение по умолчанию (из конфигуратора) не имеет отношения к выбранному значению в главном списке, то значение в нем сбрасывается согласно связям. Если в зависимом списке отсутствуют элементы, компонент ничего не должен содержать.

    Иначе - сохраняется значение по умолчанию.

  • Пустое значение в режиме просмотра формы отображается как пустое значение (а не знаками подчеркивания, например).

  • Placeholder отсутствует.

  • Ввод в компонент отсутствует.

  • При попадании фокуса на компонент (не только на кнопку вызова списка) кликом мыши открывается список, который отображает все возможные значения.

    При повторном нажатии на компонент (не только на кнопку вызова списка) кликом мыши список закрывается.

    После выбора список возможных значений закрывается.

    Если при открытом списке прокрутить страницу, список автоматически закрывается.

  • Открытый список отображает максимум 10 записей, все остальные скрываются за вертикальным скроллом.

  • Горизонтальный скролл отсутствует, невмещающийся текст в компоненте и пунктах меню скрывается (без добавления многоточие). Полное текстовое значение пункта можно увидеть в тултипе.

  • Если поле отмечено как обязательное к заполнению, то проверка на пустое значение выполняется:

    • на этапе сохранения файла по форме либо при переключении режимов формы - поле подсвечивается красным цветом, выводится общая ошибка формы:

      Заполните обязательные поля

    Есть элемент списка не имеет «значения» (даже при наличии «наименования»), поле считается незаполненным.

  • С выпадающего списка (как из поля, так и из списка) доступно копирование выделенной части в системный буфер обмена сочетаниями Ctrl+C, Ctrl+Insert, ПКМ → Копировать. В буфер попадает текстовое представление выделенной части.

    Примечание. Для копирования значения из открытого списка после выделения необходимо, не отпуская кнопку мыши, использовать одно из вышеописанных сочетаний. Если же отпустить кнопку мыши, произойдет выбор значения, выделение отменится и список закроется.

  • Операции вырезания и вставки в/из компонента отсутствуют.

  • Если в компоненте выбрано удаленное значение справочника, при открытии файла по форме в нем продолжает отображаться сохраненное значение, но при сохранении данных по форме выводится ошибка:

    Некоторые элементы формы содержат значения, которые отсутствуют в источнике данных. Пожалуйста, выберите правильные значения и попытайтесь снова.

    Кроме того, в момент срабатывания валидации в начало некорректного значения добавляется (!), т.е. в поле и списке будет отображаться, например, (!) Удаленное_значение.

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

Шрифт по умолчанию: Arial 12 px, цвет #333333

Рисунок 4.45. Компонент «Выпадающий список»

Компонент «Выпадающий список»

Рисунок 4.46. Компонент «Выпадающий список», размеры

Компонент «Выпадающий список», размеры

Компонент «Дата/время»

Компонент формы «Дата/время» позволяет вводить значения либо только даты, либо даты и времени. При этом он хранит полную дату и время (timestamp).

Внешне в режиме редактирования файла по форме компонент для ввода даты представляет собой поле ввода в формате ГГГГ-ММ-ДД и кнопку вызова календаря справа от нее. Компонент для ввода времени отображается справа от ввода даты и представляет собой поле ввода в формате ЧЧ:ММ.

В режиме просмотра компонент отображается согласно настроенному формату даты (см. в настройках компонента) в виде лейбла. Пустое значение отображается как пустое значение (а не знаками подчеркивания, например).

Настраиваемые параметры компонента (илл. «Настройки выбора даты»):

  • Обязательное поле

  • Заблокировать от изменений пользователем

  • Заполнять текущей датой/временем

  • Язык

  • Формат даты (не обяз.)

  • Вводить время

Рисунок 4.47. Настройки выбора даты

Настройки выбора даты

Флажок «Заблокировать от изменений пользователем» позволяет сделать недоступным ввод данных в данный компонент в режиме редактирования файла по форме.

Флажок «Заполнять текущей датой/временем» позволяет в момент добавления данного компонента на форму (например, в момент создания формы или добавления строки динамической таблицы, содержащей дату/время) автоматически заполнять его текущими значениями даты/времени с сервера Synergy.

Поле ввода «Формат даты» - текстовое поле, в котором могут быть указаны форматные параметры и/или простые текстовые значения, определяющие итоговый вид значения этого компонента в режиме просмотра файла по форме.

Список форматных параметров можно посмотреть, нажав на кнопку «?» справа от поля:

  • ${yyyy} - четырехсимвольный формат года: 2013

  • ${yy} - двухсимвольный формат года: 13

  • ${mm} - двухсимвольный формат месяца: 01 - 12

  • ${m} - простой формат месяца: 1 - 12

  • ${month} - название месяца (локалезависимо), именительный падеж, ед. ч.: январь - декабрь (нижний регистр)

  • ${monthed} - название месяца (локалезависимо), родительный падеж, ед. ч.: января - декабря (нижний регистр)

  • ${monthec(param)} - название месяца в падеже, указанном в значении «param» (регистр первой буквы определяется значением справочника)

    Примечание

    Для работоспособности данной функции в системе должен существовать специальный справочник склонений месяца (Специальные справочники).

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

  • ${dd} - двухсимвольный формат дня: 01 - 31

  • ${d} - простой формат дня: 1 - 31

  • ${hh} - двухсимвольный 12-часовой формат часов: 01-12

  • ${h} - 12-часовой формат часов: 1-12

  • ${HH} - двухсимвольный 24-часовой формат часов: 00-23

  • ${H} - 24-часовой формат часов: 0-23

  • ${MM} - двухсимвольный формат минут: 00-59

  • ${M} - простой формат минут: 0-59

Значение форматной строки по умолчанию: ${yyyy}-${mm}-${dd}.

Флажок «Вводить время» позволяет сделать доступным ввод времени в данном компоненте в режиме редактирования файла по форме. Значение времени по умолчанию - 00:00.

Компонент должен хранить полную дату и время (timestamp), причем независимо от настройки «Формат даты». Если ввод времени не настроен, компонент должен хранить либо текущее время (если включена соответствующая опция), либо время по умолчанию (в противном случае).

Примечания.

Если данных для отображения времени не имеется (такая ситуация может встретиться при использовании старых форм), то время считается равным 00:00.

Общее поведение для полей ввода даты и времени:

  • Значение даты и времени по умолчанию задается в конфигураторе на этапе создания / редактирования формы (может быть пустым).

  • Пустое значение в режиме просмотра формы отображается как пустое значение (а не знаками подчеркивания, например).

  • Placeholder отсутствует. На месте ввода, при отсутствии значения, отображается маска ввода.

    Для даты: ____-__-__

    Для времени: __:__

  • Разрешенные символы для ввода в компонент: только цифры 0-9. Неразрешенные символы не вводятся.

  • С полей ввода даты и времени доступно копирование выделенной части в системный буфер обмена сочетаниями Ctrl+C, Ctrl+Insert, ПКМ → Копировать. В буфер попадает текстовое представление выделенной части.

  • С полей ввода даты и времени доступно вырезание выделенной части в системный буфер обмена сочетаниями Ctrl+X, Shift+Delete, ПКМ → Вырезать. При этом в поле ничего (в т.ч. значение по умолчанию) отображаться не должно (а поле по правилам валидации выделится красным цветом). В буфер попадает текстовое представление выделенной части.

  • В поля ввода даты и времени доступна вставка данных из системного буфера обмена сочетаниями клавиш Ctrl+V, Shift+Insert, ПКМ → Вставить. Содержимое из системного буфера обмена попытается «подстроиться» под маску даты / времени и вставится только в те части, что под нее подходят. Успешная вставка должна происходить с заменой выделенного значения и справа от положения курсора.

    В целом механизм вставки похож на аналогичную вставку в однострочном поле с настроенной маской ввода.

Поведение поля ввода даты:

  • При попадании фокуса на поле ввода кликом мыши его содержимое не выделяется, положение курсора - в месте клика. По нажатию на поле ввода либо кнопку открывается календарь (см. его описание ниже).

    При попадании фокуса на компонент табуляцией содержимое поля ввода выделяется, положение курсора - в начале строки.

  • Поле ввода даты должно валидировать введенные значения только по формату «ГГГГ-ММ-ДД». Если поле не валидное, то проверка выполняется:

    • при потере фокуса с компонента - поле подсвечивается красным, ошибки отсутствуют;

    • на этапе сохранения файла по форме либо при переключении режимов формы - поле также подсвечивается красным цветом, но выводится ошибка:

      Введите корректное значение

    Сюда также относятся следующие случаи:

    • пользователь установил фокус на поле даты, ничего не ввел и снял фокус;

    • пользователь ввел дату, затем удалил ее;

    • не введена дата, но введено пользователем время.

  • Если компонент отмечен как обязательный к заполнению, но не был заполнен (фокус на компоненте отсутствовал), то проверка на пустое значение выполняется на этапе сохранения файла по форме либо при переключении режимов формы - поле подсвечивается красным цветом, выводится общая ошибка формы:

    Заполните обязательные поля

    Сюда относятся следующий случай: фокус на поле даты отсутствовал, дата не заполнена (но, например, заполнено время по умолчанию). Считается, что компонент имеет пустое значение.

Поведение поля ввода времени:

  • При попадании фокуса на поле ввода кликом мыши его содержимое не выделяется, положение курсора - в месте клика.

    При попадании фокуса на компонент табуляцией содержимое компонента выделяется, положение курсора - в начале строки.

  • Поле ввода времени должно валидировать введенные значения только по формату ЧЧ:ММ. Если поле не валидное, то проверка выполняется:

    • при потере фокуса с компонента - поле подсвечивается красным, ошибки отсутствуют;

    • на этапе сохранения файла по форме либо при переключении режимов формы - поле также подсвечивается красным цветом, но выводится общая ошибка формы:

      Введите корректное значение

    Сюда также относятся следующие случаи:

    • пользователь установил фокус на поле времени, ничего не ввел и снял фокус;

    • пользователь ввел время, затем удалил его.

  • У поля ввода времени отсутствует ошибка про обязательность заполнения, т.к. по умолчанию имеет в себе значение, а при удалении в нем значения исполнится ошибка про некорректность значения (см. выше).

Поведение календаря:

  • Календарь открывается как по нажатию на соответствующую кнопку справа от поля ввода, так и по нажатию непосредственно по полю ввода. Календарь открывается под компонентом целиком (т.е. под полем ввода даты). Высота календаря всегда одинаковая и не зависит от количества отображаемых недель.

  • Календарь разделен на 3 части:

    • Верхняя - содержит полное название текущего месяца и год. Одновременно можно просматривать только один из списков. Справа и слева от этих надписей - кнопки переключения месяцев.

    • Центральная - содержит сетку дней выбранного месяца, может содержать от 4 до 6 недель. Свободные ячейки заполняются днями предыдущего / следующего месяца. Ячейка с текущим днем подчеркнута. Ячейка с выбранным днем выделена фоном.

      Над сеткой перечислены дни недели (для русской локали): понедельник (Пн), вторник (Вт), среда (Ср), четверг (Чт), пятница (Пт), суббота (Сб), воскресенье (Вс).

    • Нижняя - содержит подчеркнутую надпись «Сегодня».

    Все названия (месяцев, дней недели и кнопки «Сегодня») должны отображаться на языке авторизованного пользователя.

  • Наведение курсора на кнопки переключения месяцев, несвободные ячейки сетки и надпись «Сегодня» изменяет курсор на вид «pointer».

  • При открытии календарь отображает либо уже выбранную дату (при наличии), либо текущую дату сервера (если значение у компонента еще отсутствует).

  • По нажатию в верхней части на месяц открывается
    выпадающий список со всеми значениями месяцев, пример для русской локали:

    • Январь

    • Февраль

    • Март

    • Апрель

    • Май

    • Июнь

    • Июль

    • Август

    • Сентябрь

    • Октябрь

    • Ноябрь

    • Декабрь

    Возможно переключение на предыдущий месяц (относительно выбранного) с помощью кнопки .

    Аналогично, возможно переключение на следующий месяц (относительно выбранного) с помощью кнопки .

    Прокрутка вкладок нециклическая: если выбрать месяц декабрь 2016 года и переключиться на следующий месяц, то отобразится январь 2017 года.

  • По нажатию в верхней части на год открывается выпадающий список с годами: предыдущие 90 лет и последующие 20 лет (относительно текущего года).

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

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

  • По нажатию на кликабельную надпись «Сегодня» происходит выбор текущего дня на сервере, календарь закрывается, компонент принимает новое значение.

Высота и ширина полей ввода даты и времени по умолчанию не указана.

Шрифт по умолчанию: Arial 12 px, цвет #333333

Рисунок 4.48. Компонент «Дата/время» на форме

Компонент «Дата/время» на форме

Рисунок 4.49. Календарь

Календарь

Компонент «Выбор вариантов»

Компонент формы «Выбор вариантов» позволяет выбирать одно или несколько значений из списка.

Внешне в режиме редактирования файла по форме компонент представляет собой список флажков и подписей к ним. Список вертикальный, одна строка - один флажок. В режиме просмотра компонент отображается в виде лейбла. Несколько выбранных значений перечисляются через запятую с пробелом. Пустое значение отображается как пустое значение (а не знаками подчеркивания, например).

В режиме конструктора пустое значение отображается как лейбл «Выбор вариантов».

Настройка списка возможных значений на этапе конфигурирования компонента происходит в окне настроек компонента, вкладка «Элементы». Значения компонента можно ввести:

  • Вручную с помощью кнопок добавления и удаления строк. Новая строка добавляется в конец списка, фокус сразу на ней. Удаление происходит без подтверждения.

  • Выбрать готовые значения из справочника. Редактировать их нельзя: кнопки добавления и удаления отсутствуют, поля ввода недоступны. Кроме того, в данному случае добавляется настройка языка компонента.

В обоих случаях отображаются два столбца: «Наименование» и «Значение». Для выбранного справочника над ними добавляется выпадающий список, содержащий столбцы выбранного справочника.

В режиме просмотра файла по форме и в режиме его заполнения используются подписи из столбца «Наименование». Значением компонента является «Значение».

Рисунок 4.50. Ввод элементов выбора вариантов

Ввод элементов выбора вариантов

Рисунок 4.51. Выбор элементов выбора вариантов из справочника

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

Настраиваемые параметры компонента (илл. «Настройки выпадающего списка»):

  • Обязательное поле

  • Заблокировать от изменений пользователем

Все флажки по умолчанию выключены.

Рисунок 4.52. Настройки выбора вариантов

Настройки выбора вариантов

Флажок «Заблокировать от изменений пользователем» позволяет сделать недоступным выбор данных в данный компонент в режиме редактирования файла по форме.

Поведение компонента:

  • Значение компонента по умолчанию задается в конфигураторе на этапе создания / редактирования формы (может быть пустым).

  • Пустое значение в режиме просмотра формы отображается как пустое значение (а не знаками подчеркивания, например).

  • Ввод в компонент, рlaceholder и скроллы отсутствуют.

  • Внешний вид компонента браузерозависимый.

  • Включение и выключение флажков осуществляется как по нажатию непосредственно на иконку, так и по подписи справа от нее.

  • Если поле отмечено как обязательное к заполнению, то проверка на пустое значение выполняется только на этапе сохранения файла по форме либо при переключении режимов формы - поле (вся область компонента) подсвечивается красным цветом, выводится общая ошибка формы:

    Заполните обязательные поля

    Рисунок 4.53. Обязательный выбор вариантов

    Обязательный выбор вариантов

  • С компонента доступно копирование выделенной части в системный буфер обмена сочетаниями Ctrl+C, Ctrl+Insert, ПКМ → Копировать. В буфер попадает текстовое представление выделенной части. Недоступны действия вырезки и вставки.

  • Если в компоненте выбрано удаленное значение справочника, при открытии файла по форме в нем продолжает отображаться сохраненное значение, но при сохранении данных по форме выводится ошибка:

    Некоторые элементы формы содержат значения, которые отсутствуют в источнике данных. Пожалуйста, выберите правильные значения и попытайтесь снова.

    Кроме того, в момент срабатывания валидации в начало некорректного значения добавляется (!), т.е. в поле будет отображаться, например, (!) Удаленное_значение.

  • Если удален справочник целиком, на который ссылался компонент, при открытии файла по форме на месте компонента ничего не отображается.

Шрифт по умолчанию: Arial 12 px, цвет #333333

Компонент «Переключатель вариантов»

Компонент формы «Переключатель вариантов» позволяет выбирать только одно значение из списка.

Внешне в режиме редактирования файла по форме компонент представляет собой список переключателей (радиокнопок) и подписей к ним. Список вертикальный, одна строка - один переключатель. В режиме просмотра компонент отображается в виде лейбла. Пустое значение отображается как пустое значение (а не знаками подчеркивания, например).

В режиме конструктора пустое значение отображается как лейбл «Пререключатель вариантов».

Настройка списка возможных значений на этапе конфигурирования компонента происходит в окне настроек компонента, вкладка «Элементы». Значения компонента можно ввести:

  • Вручную с помощью кнопок добавления и удаления строк. Новая строка добавляется в конец списка, фокус сразу на ней. Удаление происходит без подтверждения.

  • Выбрать готовые значения из справочника. Редактировать их нельзя: кнопки добавления и удаления отсутствуют, поля ввода недоступны. Кроме того, в данному случае добавляется настройка языка компонента.

В обоих случаях отображаются два столбца: «Наименование» и «Значение». Для выбранного справочника над ними добавляется выпадающий список, содержащий столбцы выбранного справочника.

В режиме просмотра файла по форме и в режиме его заполнения используются подписи из столбца «Наименование». Значением компонента является «Значение».

Рисунок 4.54. Ввод элементов выбора вариантов

Ввод элементов выбора вариантов

Рисунок 4.55. Выбор элементов выбора вариантов из справочника

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

Настраиваемые параметры компонента (илл. «Настройки выпадающего списка»):

  • Обязательное поле

  • Заблокировать от изменений пользователем

Все флажки по умолчанию выключены.

Рисунок 4.56. Настройки выбора вариантов

Настройки выбора вариантов

Флажок «Заблокировать от изменений пользователем» позволяет сделать недоступным выбор данных в данный компонент в режиме редактирования файла по форме.

Поведение компонента:

  • Значение компонента по умолчанию задается в конфигураторе на этапе создания / редактирования формы (может быть пустым).

  • Пустое значение в режиме просмотра формы отображается как пустое значение (а не знаками подчеркивания, например).

  • Ввод в компонент, рlaceholder и скроллы отсутствуют.

  • Внешний вид компонента браузерозависимый.

  • Включение переключателей осуществляется как по нажатию непосредственно на иконку, так и по подписи справа от нее.

  • Если поле отмечено как обязательное к заполнению, то проверка на пустое значение выполняется только на этапе сохранения файла по форме либо при переключении режимов формы - поле (вся область компонента) подсвечивается красным цветом, выводится общая ошибка формы:

    Заполните обязательные поля

    Рисунок 4.57. Обязательный выбор вариантов

    Обязательный выбор вариантов

  • С компонента доступно копирование выделенной части в системный буфер обмена сочетаниями Ctrl+C, Ctrl+Insert, ПКМ → Копировать. В буфер попадает текстовое представление выделенной части. Недоступны действия вырезки и вставки.

  • Если в компоненте выбрано удаленное значение справочника, при открытии файла по форме в нем продолжает отображаться сохраненное значение, но при сохранении данных по форме выводится ошибка:

    Некоторые элементы формы содержат значения, которые отсутствуют в источнике данных. Пожалуйста, выберите правильные значения и попытайтесь снова.

    Кроме того, в момент срабатывания валидации в начало некорректного значения добавляется (!), т.е. в поле будет отображаться, например, (!) Удаленное_значение.

  • Если удален справочник целиком, на который ссылался компонент, при открытии файла по форме на месте компонента ничего не отображается.

Шрифт по умолчанию: Arial 12 px, цвет #333333

Файлы
Компонент «Изображение»

Компонент формы «Изображение» позволяет добавлять одно изображение в одну ячейку формы.

Внешне компонент всегда (и в режиме редактирования, и в режиме просмотра) отображает непосредственно выбранное изображение, а если изображение не выбрано - «заглушку»:

Рисунок 4.58. Изображение-заглушка

Изображение-заглушка

Настраиваемые параметры компонента.

  • Выбрать файл

Выбор файла изображения, отображаемого в компоненте. По нажатию на кнопку «Выберите файл» открывается попап-меню с системными кнопками выбора файла с компьютера и «Загрузить».

Диалог выбора содержит фильтр, при котором отображаются только изображения в формате GIF, JPЕG, PNG.

Поведение компонента.

Если изображение выбрано, внешний вид компонента - это непосредственно само изображение:

  • Выравнивание соответствует настройкам форматирования таблицы либо компонента (по умолчанию - по левому верхнему краю).

  • Ширина изображения зависит то того, задана ли ширина у компонента:

    • Задана ширина компонента (при этом не важно, задана ли ширина столбца). Изображение, большее чем задано настройками ширины/высоты компонента, пропорционально сжимается по наибольшему параметру.

    • Задана ширина столбца (но не компонента), а также для случая, когда ширина не задана ни в компоненте, ни в столбце. Изображение отображается во всю свою ширину.

  • Компонент на форме всегда заблокирован от изменений пользователем.

Выбранное изображение присутствует при отображении всех файлов по этой версии форм.

Компонент «Файл»

Компонент формы «Файл» позволяет прикреплять к форме копию файла как из хранилища или с компьютера, так и создать новый файл прямо из формы.

Внешне в режиме редактирования компонент представляет собой пустое значение либо кнопку «Выбрать файл», если файл еще не выбран, либо ссылка на файл / изображение. Значение компонента в конфигураторе на этапе создания / редактирования формы не сохраняется для основного приложения.

Настраиваемые параметры компонента:

  • Обязательное поле

  • Заблокировать от изменений пользователем

  • Отображать полный путь к файлу при загрузке из хранилища

  • Отображать содержимое загруженного файла

По умолчанию, все флажки выключены.

Рисунок 4.59. Настройки файла

Настройки файла

Флажок «Заблокировать от изменений пользователем» позволяет сделать недоступным выбор данных в данный компонент в режиме редактирования файла по форме.

Флажок «Отображать полный путь к файлу при загрузке из хранилища» позволяет при добавлении в компонент файла из хранилища отображать в нем также и полный путь к файлу.

  • Данная настройка не затрагивает способы загрузки файла - «С компьютера» и «Создать новый» - в этом случае в компоненте отображается только имя файла.

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

  • Если строка полного пути не влезает в компонент по ширине, то осуществляется перенос по словам на следующую строку.

Примечание.

Отображение полного пути к файлу в компоненте будет работать только для тех файлов, которые были загружены из хранилища после появления и активации данной настройки (т.е. в итерации 3.4 и позднее) в компоненте.

Флажок «Отображать содержимое загруженного файла» позволяет вместо ссылки и пути отображать непосредственно изображение, если таковое выбрано в качестве значения компонента.

Компонент на форме.

В режиме конструктора:

  • Кнопка «Выбрать файл», по нажатию на нее никакое действие не выполняется.

В режиме редактирования:

  • Файл не выбран - кнопка «Выбрать файл», по нажатию которой открывается подменю с пунктами «С компьютера», «Из хранилища» и «Создать новый».

    • С компьютера - открывается диалоговое окно «Выбор файла»:

      Рисунок 4.60. Загрузка файла с компьютера

      Загрузка файла с компьютера

      По нажатию в окне на кнопку «Загрузить файл» происходит его загрузка.

    • Из хранилища - открывается диалоговое окно выбора файла из хранилища системы со свойствами (и изменить их нельзя): личная папка пользователя отображается, доступен единичный выбор файла, без возможности добавления новой папки.

    Если включена настройка «Отображать содержимое загруженного файла», то в обоих случаях диалоги выбора должны содержать фильтр, при котором отображаются только изображения в формате GIF, JPЕG, PNG.

    • Создать новый - открывается диалоговое окно «Создание файла»:

      Рисунок 4.61. Ввод имени нового файла

      Ввод имени нового файла

      Placeholder поля ввода - «Введите название файла». По нажатию на кнопку «Готово» происходит валидация поля ввода на отсутствие пустого значения (ошибка «Необходимо ввести название файла»).

      Если включена настройка «Отображать содержимое загруженного файла», то данный пункт меню отсутствует.

  • Файл выбран - изображение либо ссылка на файл:

    %Название_файла.расширение%

    либо

    %Название_файла.расширение% (%Полный_путь_до_файла%)

    а также иконка удаления , по нажатию на которую файл из компонента удаляется.

В режиме просмотра:

  • файл не выбран - пустое значение;

  • файл выбран - изображение либо ссылка на файл:

    %Название_файла.расширение%

    либо

    %Название_файла.расширение% (%Полный_путь_до_файла)

Имя файла является ссылкой, по нажатию на которую открывается сам файл системными средствами просмотра (таким же, какой используется в модуле «Хранилище»). Текст ссылки выделен синим цветом и подчеркнут. При наведении курсором мыши он изменяется на тип «pointer». Ссылка открывается всегда внутри данного окна Synergy.

Примечание.

В некоторых случаях к названию через пробел будет добавляться возрастающая числовая последовательность. Это может происходить при добавлении файла с одинаковым названием в несколько различных компонентов «Файл» на одной форме любым из трех способов либо их комбинацией. Например: Файл, Файл 1, Файл 2 и т.д.

Для включенной настройки «Отображать полный путь к файлу при загрузке из хранилища» путь до файла никаким образом визуально не выделен. Путь - простой текст в круглых скобках (не является частью ссылки), начинается с названия корневого узла хранилища и заканчивается именем папки, в которой лежит файл. Названия узлов в пути отделяются друг от друга прямой косой чертой (/). Компонент отображает только те название и путь, которые определяли свойства исходного файла в момент добавления его копии из хранилища. Т.е. при переименовании и/или перемещении исходного файла в хранилище эти изменения не будут отображены в данном компоненте.

Поведение при переключении флажка «Отображать полный путь к файлу при загрузке из хранилища»:

  • Если флажок сначала был выключен (компонент отображает только имя файла), затем его включили, то при первом открытии файла по форме с этого момента должен отображаться и путь, при его наличии.

    В обратном случае аналогично: сначала компонент отображает название и, при наличии, путь, а при первом открытии файла по форме с момента выключения флажка - только название.

Если включена настройка «Отображать содержимое загруженного файла», то внешний вид компонента - это непосредственно само изображение с его особенностями отображения на форме.

Отдельно уточним возможности удаления изображения. Если компонент не заблокирован от изменений пользователем, то справа от правого нижнего угла изображения добавляется иконка удаления (отображается постоянно, а не только при наведении на компонент). По нажатию на нее выдается браузерное диалоговое окно подтверждения удаления:

Вы хотите удалить файл?

Либо действие не выполняется, либо изображение удаляется, компонент снова принимает вид кнопки «Выбрать файл».

Поведение при переключении флажка «Отображать содержимое загруженного файла»:

  • Если флажок сначала был выключен (компонент отображает ссылку на изображение), затем его включили, то при первом открытии файла по форме с этого момента должно отображаться непосредственно изображение.

    В обратном случае аналогично: сначала компонент отображает непосредственно изображение, а при первом открытии файла по форме с момента выключения флажка - ссылку на изображение.

Если поле отмечено как обязательное к заполнению, то проверка на пустое значение выполняется на этапе сохранения файла по форме либо при переключении режимов формы - кнопка подсвечивается красным, выводится общая ошибка формы:

Заполните обязательные поля

Если поле помечено как заблокированное от изменений, то оно недоступно для выбора - кнопка «Выбрать файл» недоступна.

С компонента доступно копирование выделенной части в системный буфер обмена сочетаниями Ctrl+C, Ctrl+Insert, ПКМ → Копировать. В буфер попадает текстовое представление выделенной части.

Шрифт по умолчанию: Arial 12 px

Цвет шрифта пути до файла (при наличии): #333333

Все отступы и размеры (включая от ссылки до иконки) соответствуют ссылке на файл в хранилище

Рисунок 4.62. Кнопка «Выбрать файл» в состояниях

Кнопка «Выбрать файл» в состояниях

Рисунок 4.63. Отображение ссылки на файл

Отображение ссылки на файл

Рисунок 4.64. Отображение полного пути к файлу

Отображение полного пути к файлу

Компонент «Ссылка»

Компонент формы «Ссылка» позволяет добавлять произвольную кликабельную ссылку, которую можно открывать в текущей либо новой вкладке браузера.

Внешне компонент представляет собой лейбл, никаким образом он визуально не выделен (за исключением изменения курсора на тип «pointer» при наведении). В режиме просмотра файла по форме является активной ссылкой, в режиме редактирования - открывает диалог настройки ссылки.

Настраиваемые параметры компонента:

  • Обязательное поле

  • Заблокировать от изменений пользователем

  • Заполнять ссылкой на текущий документ

По умолчанию, все флажки выключены.

Рисунок 4.65. Настройки ссылки

Настройки ссылки

Флажок «Заблокировать от изменений пользователем» позволяет сделать недоступным изменение ссылки в режиме редактирования файла по форме. В таком случае ссылка должна быть кликабельна, так же как и в режиме просмотра.

Флажок «Заполнять ссылкой на текущий документ» позволяет при создании файла по форме автоматически присвоить значение URL относительной ссылкой на текущий документ, причем независимо от значения по умолчанию, заданному в конфигураторе. Кроме того, для пустого значения надписи необходимо использовать текст-заглушку Документ.

Диалог настройки ссылки.

Настройка ссылки происходит только в режиме редактирования файла по форме и если компонент не заблокирован от изменений пользователем, а также непосредственно в редакторе форм. Диалог вызывается по нажатию на любую область компонента (не только на лейбл).

Настройки ссылки:

  • URL

  • Надпись

  • Открывать в отдельном окне

В конфигураторе значения по умолчанию: поля ввода пустые, флажок выключен. В файле по форме значения по умолчанию определяются значениями из конфигуратора.

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

Рисунок 4.66. Компонент «Ссылка»

Компонент «Ссылка»

Рисунок 4.67. Компонент «Ссылка», размеры

Компонент «Ссылка», размеры

Рисунок 4.68. Компонент «Ссылка», размеры

Компонент «Ссылка», размеры

Поле ввода «URL» должно содержать относительную либо абсолютную ссылку. Абсолютная обязательно должна начинаться с http(s)://, все остальные варианты ввода считаются относительной ссылкой. Рlaceholder поля:

Введите URL ссылки.

Относительные ссылки приводятся к абсолютным таким образом, что перед ней добавляется адрес приложения, порт (при наличии) и подстановка Synergy/. Если в результате получилась невалидная ссылка, то открывшаяся страница будет содержать:

К сожалению, такой страницы не существует.

Пример итоговой ссылки c URL «about»: http://192.168.1.79:8080/Synergy/about, ссылка будет валидной, т.к. такая страница существует (покажет версию приложения).

Пример итоговой ссылки c URL «google.kz»: http://192.168.1.79:8080/Synergy/google.kz, ссылка будет невалидной.

В качестве URL ссылки можно задать подстановку ${docID} (целиком, регистрочувствительно). При щелчке на компонент в режиме просмотра файла по форме эта подстановка заменяется на идентификатор документа, в котором находится этот файл по форме. Если подстановка написана с ошибками, в неправильном регистре либо файл по форме не принадлежит никакому документу, то замена не производится.

Пример итоговой ссылки c URL «${docID}»: http://192.168.1.79:8080/Synergy/c23dd5b0-db7f-11e5-8c91-525400bb7fc6, ссылка будет невалидной.

Пример итоговой ссылки c URL «?action=open_document&document_identifier=${docID}»: http://192.168.1.79:8080/Synergy/Synergy.html?action=open_document&document_identifier=c23dd5b0-db7f-11e5-8c91-525400bb7fc6, ссылка будет валидной.

Поле ввода «Надпись» должно содержать значение, которое будет являться текстовым представлением компонента. Рlaceholder поля:

Введите надпись к ссылке.

Флажок «Открывать в отдельном окне» определяет, в какой окне браузера открывать ссылку. Для включенного флажка - в новой вкладке браузера, для выключенного - в текущей.

Возможные поведения:

  • Если значением URL является относительная ссылка, и при этом флажок «Открывать в отдельном окне» выключен, открываться такие ссылки должны в той же вкладке браузера (текущий документ сворачивается), в которой они были открыты, без полной перезагрузки страницы.

  • Если же значением URL является относительная ссылка на текущий документ, и при этом флажок «Открывать в отдельном окне» выключен, то переоткрытия и какой-либо перезагрузки текущей вкладки браузера происходить не должно.

  • Если значение URL не заполнено, а флажок «Открывать в отдельном окне» выключен, происходит перезагрузка страницы, открывается модуль по умолчанию.

    Если же флажок «Открывать в отдельном окне» включен, открывается пустая страница about:blank.

  • Если значение надписи отсутствует, то компонент в режиме просмотра отображает пустую строку, даже если заполнен URL.

Размеры диалога: 400 x 255 px

Шрифты в диалоге: DroidSans 14 px, цвет #606060

Компонент на форме.

В режиме редактирования компонент отображается в формате Ссылка: %Надпись%. Если значение надписи отсутствует, то в формате Ссылка:.

В режиме просмотра компонент отображается в формате %Надпись%. Переход по ссылке осуществляется по нажатию на любую область компонента (не только на лейбл).

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

Например, URL содержит ссылку на недоступный пользователю проект. При переходе по ней осуществляется переход в модуль «Проекты» с сообщением:

У вас нет прав на чтение данного проекта

Если поле отмечено как обязательное к заполнению, то проверка на пустое значение выполняется только на этапе сохранения файла по форме либо при переключении режимов формы - поле подсвечивается красным, выводится общая ошибка формы:

Заполните обязательные поля

Рисунок 4.69. Обязательный компонент «Ссылка»

Обязательный компонент «Ссылка»

Если поле помечено как заблокированное от изменений, то оно недоступно для изменения настроек ссылки, но при этом может содержать в себе значение (например, значение по умолчанию).

С компонента доступно копирование выделенной части в системный буфер обмена сочетаниями Ctrl+C, Ctrl+Insert, ПКМ → Копировать. В буфер попадает текстовое представление выделенной части. Недоступны действия вырезки и вставки.

Шрифт по умолчанию: Arial 12 px, цвет #333333

Специальные
Компонент «Пользователи»

Компонент формы «Пользователи» позволяет вводить и/или выбирать и отображать пользователей системы.

Внешне в режиме редактирования файла по форме компонент представляет собой поле ввода с тегами высотой, по умолчанию, в одну строку и кнопкой, по нажатию которой открывается диалог выбора. В режиме просмотра компонент отображается в виде лейбла, длинный текст отображается на несколько строк, перечисление нескольких объектов происходит через запятую.

Настраиваемые параметры компонента:

  • Обязательное поле

  • Заблокировать от изменений пользователем

  • Связь с компонентом

  • Заполнять создающим пользователем

  • Разрешать ввод произвольного текста

  • Позволять мультивыбор

  • Отображать группы

  • Отображать пользователей из резерва

  • Разрешать редактировать label выбранного элемента

  • Изменить формат отображения ФИО в зависимости от языка системы

По умолчанию, все флажки выключены.

Примечание

Нажав на кнопку «?» справа от флажка «Отображать группы» отобразится подсказка:

Выбор группы пользователей как атомарного объекта в компоненте "Пользователи" возможен только при одновременно включенных опциях "Позволять мультивыбор" и "Отображать группы".

Рисунок 4.70. Настройки выбора пользователя

Настройки выбора пользователя

Рисунок 4.71. Настройки выбора пользователя

Настройки выбора пользователя

Рисунок 4.72. Настройки выбора пользователя

Настройки выбора пользователя

Флажок «Заблокировать от изменений пользователем» позволяет сделать недоступным ввод и выбор данных в данный компонент в режиме редактирования файла по форме.

Выпадающий список «Связь с компонентом» имеет, по умолчанию, значение «Нет» и содержит список идентификаторов (для компонентов внутри динамической таблицы - без идентификатора таблицы):

  • компонентов выбора должности и подразделения для компонента «Пользователи»;

  • компонентов выбора пользователя и подразделения для компонента «Должности»;

  • компонентов выбора пользователя, должности и подразделения для компонента «Подразделения».

Связь может быть определена только в одну сторону, но не оба сразу (во избежание возникновения циклических ссылок). Также нельзя создавать непрямые циклические ссылки, например «Подразделения»«Должность»«Пользователи»«Подразделения».

Данные ограничения реализованы так, что в выпадающем списке отсутствуют значения тех компонентов, при которых может возникнуть циклическая ссылка. Например:

  • Компонент пользователей 1 связали с компонентом должностей 1. В компоненте должностей 1 должен отсутствовать идентификатор компонента пользователей 1.

  • Далее, компонент должностей 1 связали с компонентом подразделений 1. В компоненте подразделений 1 должны отсутствовать идентификаторы компонента пользователя 1 и должности 1.

Пусть компонент, в котором настроена такая связь - это подчиненный компонент, а компонент, с которым он связан - главный компонент. Главный компонент определяет набор значений для выбора в подчиненном компоненте.

Возможные варианты связей (подчиненный компонент ← главный компонент):

  • «Должности»«Пользователи». В компоненте выбора должности должны отображаться все должности выбранного пользователя.

  • «Подразделения»«Пользователи». В компоненте выбора подразделения должно отображаться родительское подразделение первого уровня относительно выбранного пользователя.

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

  • «Подразделения»«Должности». В компоненте выбора подразделения должно отображаться родительское подразделение первого уровня относительно выбранной должности.

  • «Пользователи»«Подразделения». В компоненте выбора пользователя должны отображаться все пользователи данного подразделения.

  • «Должности»«Подразделения». В компоненте выбора должности должны отображаться все должности данного подразделения.

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

Во всех случаях после того, как главный компонент примет корректное значение, подчиненный компонент автоматически заполняется первым значением из всего набора доступных значений. Для случая, когда удаляется значение в главном компоненте, удаляются значения и во всех подчиненных компонентах.

Связь между компонентами «Пользователи» / «Должности» / «Подразделения» можно настраивать также внутри динамической таблицы.

Флажок «Заполнять создающим пользователем» позволяет при создании файла по форме автоматически присвоить значение компоненту авторизованным пользователем, причем независимо от значения по умолчанию, заданному в конфигураторе.

Флажок «Разрешать ввод произвольного текста» добавляет новое свойство компоненту: ввод произвольного текста. Этот текст будет интерпретироваться как название соответствующего объекта Synergy на всех трех системных языках — русском, английском и казахском. Настройка связей с произвольным текстом работать не будет.

Флажок «Позволять мультивыбор» добавляет новое свойство компоненту: ввод и выбор одновременно нескольких пользователей.

Примечание.

При наличии связи с компонентом мультивыбор работать не будет.

Флажок «Отображать группы» добавляет новое свойство компоненту: выбор пользователей из групп. Если опция «Позволять мультивыбор» выключена, то возможен выбор только пользователей из списка групп (но не самих групп). Если же опция «Позволять мультивыбор» включена, то, соответственно, возможен выбор группы в качестве выбранного элемента.

Примечание.

Вышеописанный компонент позволяет выбрать одного и того же пользователя несколько раз (один раз - как пользователя, еще один либо несколько раз - выбрав группы, куда он входит). Однако все процессы, которые используют выходные данные этого компонента (например, как адресатов для отправки на согласование), предусматривают этот случай и избегают выполнения одного и того же действия несколько раз для одного пользователя.

Кроме того, в случае выбора группы как атомарного объекта, настройка связей с данным компонентом работать не будет.

Флажок «Отображать пользователей из резерва» добавляет новое свойство компоненту: ввод и выбор пользователей из резерва (т.е. неназначенных на должность).

Флажок «Разрешать редактировать label выбранного элемента» добавляет новое свойство компоненту: по двойному клику по тегу выбранного объекта доступно редактирование его текстового представления. Обновленное текстовое представление тега не должно отменять введенное или выбранное в компоненте значение.

Флажок «Изменить формат отображения ФИО в зависимости от языка системы» позволяет настроить формат тега (в режиме редактирования) и лейбла (в режиме просмотра) выбранного пользователя. При этом диалог выбора пользователя, а также выпадающий список результатов запроса при вводе в поле наследуют значение настройки «Отображать полное ФИО пользователя».

Особые случаи, которые не являются ошибками Synergy:

  • если разрешено редактирование лейбла выбранного элемента, тег компонента может быть изменен вручную вне зависимости от значения формата в Конфигураторе;

  • если в компонент введен произвольный текст либо выбран контакт адресной книги, на его отображение заданный в Конфигураторе формат не влияет.

При включении флага под настройкой будет добавлены 3 текстовых поля:

  • Русский язык со значением по умолчанию ${l} ${f.short}.${p.short.dot}

  • Казахский язык со значением по умолчанию ${l} ${f.short}.${p.short.dot}

  • Английский язык со значением по умолчанию ${l} ${f.short}.${p.short.dot}

Список форматных параметров отображается в popup по нажатию на кнопку ?:

  • ${l} - полная фамилия: Абдрешен

  • ${l.short} - сокращенная фамилия (первый символ): А

  • ${f} - полное имя: Леонид

  • ${f.short} - сокращенное имя (первый символ): Л

  • ${p} - полное отчество: Сергеевич

  • ${p.short} - сокращенное отчество (первый символ): С

  • ${p.short.dot} - сокращенное отчество с точкой (первый символ): С.

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

Укажите хотя бы один форматный параметр из списка

При этом поля без единого форматного параметра подсвечиваются красным цветом. Настройки не сохраняются, диалог остается открытым.

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

Общие свойства компонента.

На ввод и выбор доступны только пользователи Synergy с учетом следующих настроек:

  • по умолчанию в списке доступны все пользователи орг. структуры;

  • включенная настройка отображать пользователей из резерва расширяет список пользователями из резерва;

  • настройка связи с компонентом ограничивает список (см. подробнее в описании настройки).

Значение компонента по умолчанию задается в конфигураторе на этапе создания / редактирования формы (может быть пустым). Placeholder отсутствует.

Если включена настройка заполнения создающим пользователем, то при создании формы компонент автоматически заполняется авторизованным пользователем, независимо от значения по умолчанию.

Диалог выбора пользователя(-лей)

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

Компонент обладает свойством, что при открытии диалога выбора в нем автоматически выделены ранее добавленные (как выбором, так и вводом) элементы. Во вкладке «Выбранные», кроме того, отображаются плашки тегов с произвольным текстом и контактов адресной книги, при наличии.

Плашки списка могут отличаться, в зависимости от отображаемой информации:

  • Плашка пользователя содержит:

    • фотографию профиля, которая пропорционально сужена по меньшей стороне до размера области фото (32 px), центрирована по вертикали и горизонтали, обрезано лишнее, либо иконку-заглушку «пользователя» (если фотография профиля отсутствует) ;

    • на первой строке - по левому краю ФИО (полное либо с инициалами - зависит от настройки конфигуратора «Отображать полное ФИО пользователя») и по правому краю статус календаря, при наличии;

    • на второй строке - список должностей пользователя через запятую (порядок соответствует перечислению в его профиле, для пользователей из резерва - отсутствует).

  • Плашка группы содержит:

    • иконку-заглушку «группы» ;

    • на первой строке - полное название группы;

    • на второй строке - полное название родительской группы (для групп первого уровня - отсутствует).

  • Плашка контактов адресной книги содержит:

    • иконку-заглушку «контакта» ;

    • на первой строке - по левому краю ФИО либо название организации + <электронная почта> и по правому краю неизменяемый статус Контакт из адресной книги;

    • вторая строка ничего не содержит.

  • Плашка произвольного текста содержит:

    • иконку-заглушку «произвольного текста» ;

    • на первой строке - по левому краю произвольный текст и по правому краю неизменяемый статус Введен вручную;

    • вторая строка ничего не содержит.

Отображаемый список пользователей зависит от того, что выделено в левой части диалога:

  • Выбранные - все текущие выделенные пользователи и/или группы;

  • Часто выбираемые - список часто выбираемых пользователей (сюда попадают те пользователи, которых авторизованный пользователь выбирает чаще всего в аналогичном компоненте выбора пользователей во всей системе);

  • Группы пользователей - список групп и/или пользователей;

  • Орг. структура (выделен по умолчанию при каждом открытии диалога) - список пользователей, принадлежащих выбранному подразделению орг.структуры.

Заголовком таблицы является название выделенной кнопки (для «Выбранные» / «Часто выбираемые») либо ноды дерева (для «Группы пользователей» / «Орг.структура»).

Список отображается с постепенной догрузкой. Изначально подгружается 30 пользователей. При прокрутке пользователем вниз список дополняется новыми 30 пользователями.

Список пользователей сортируется по возрастанию ФИО. Список групп и пользователей, в свою очередь, так: сначала группы, затем пользователи, между собой по возрастанию названия / ФИО.

Для включенной настройки «отображать группы» в левой части добавляется вкладка «Группы пользователей». При ее выборе вся иерархия групп отображается в виде дерева с корневым узлом «Все группы». Содержимое списка в данной вкладке зависит от того, доступен ли выбор групп как элемента:

  • если запрещен, то только список пользователей, входящих в выбранную группу;

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

  • корневая нода «Все группы» всегда содержит только группы всех уровней.

Примечание.

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

Пример:

  • Группа 1 - Пользователь 1

    • Группа 1.1 - Пользователь 2

  • Группа 3

Здесь Пользователь 2 принадлежит к Группе 1.1, и, кроме того, входит в Группу 1.

В компоненте используется понятие «пользователь входит в группу».

В зависимости от настройки разрешен ли мультивыбор, диалог обладает следующими свойствами:

  • не разрешен:

    • доступно выделение только одной плашки, новое выделение отменяет предыдущее;

    • развыделить выбранную плашку нельзя;

    • двойным кликом по плашке происходит его выделение и выбор (с закрытием диалога);

  • разрешен:

    • доступно выделение нескольких плашек, новое выделение не отменяет предыдущее, а добавляет его к выбранным;

    • можно развыделить все выбранные плашки;

    • двойной клик по плашке отрабатывает как развыделение и новое выделение этой же плашки (выбор с закрытием диалога отсутствует).

В диалоге с мультивыбором над списком групп / пользователей (во всех вкладках, кроме «Выбранные») отображается флажок «Выбрать всех». Он может находиться в двух состояниях:

  • выключен - если не выделен хотя бы один пользователь из отображаемого списка;

  • включен - если выделены все пользователи отображаемого списка, причем только в результате нажатия на данный флажок.

По нажатию на выключенный флажок «Выбрать всех» происходит выделение всех пользователей и/или групп отображаемого списка. При этом предыдущий выбор отменяется, теперь «выбранными» будут являться только вновь выделенные элементы.

По нажатию на включенный флажок происходит развыделение всех ранее выбранных элементов.

Поиск осуществляется только внутри отображаемого списка и только во вкладках «Группы пользователей» и «Орг.структура». Поиск производится по нажатию на клавишу «Enter» либо на иконку лупы, его результаты фильтруют отображаемый список. Пустой запрос поиска соответствует отображению всех элементов. Placeholder поля:

Поиск пользователей

Кнопка «Выбрать» недоступна для нажатия, если не выделен ни один пользователь. Как только хотя бы один пользователь становится выделенным, кнопка становится доступной.

Описание интерфейса диалога:

  • Размер областей динамический: может быть изменен перемещением сплита. Сплит может быть перемещен не более, чем на 2/3 части соответствующей области по умолчанию (т.е. максимум на 172 px влево или 346 px вправо).

  • Названия кнопок левой панели, по умолчанию, выровнены по центру. При уменьшении области до ширины, при которой текст кнопки с отступом до текста (9 px) не помещается полностью в этой области, текст выравнивается по левому краю с сохранением отступа.

  • При открытии диалога, по умолчанию, горизонтальный скролл в списке отсутствует, независимо от контекста. Если ширина панели была уменьшена, то горизонтальный скролл появляется.

    Наличие вертикального скролла в списке, а также горизонтального и вертикального скроллов в дереве зависят от их содержимого.

  • По наведению курсора мыши над ФИО / статусом календаря / должностью / названием группы / названием родительской группы отображается тултип с соответствующей полной информацией.

  • В случае, если название должности / группы / родительской группы не помещаются в ширину списка, оно обрезается с добавлением многоточие, отступ от правого края - 21 px.

    Наличие многоточия для ФИО / произвольного текста зависит от статуса:

    • В случае невмещающегося ФИО / произвольного текста и отсутствия статуса - название обрезается с добавлением многоточие, отступ от правого края - 21 px.

    • В случае наличия ФИО / произвольного текста и статуса список делится на 2 части по правилу:

      N = (ширина_списка - 80) / 2

      • длина статуса более, чем N px: статус выравнивается по левому краю данной области N (за вычетом отступа 21 px), по правому краю обрезается с добавлением многоточие;

      • при невмещающемся ФИО / произвольном тексте он обрезается с добавлением многоточие, отступ от левого края статуса - 9 px.

  • В случае, если название заголовка таблицы не помещается в ширину, оно обрезается с добавлением многоточие, отступ от левого края флажка (при наличии) либо от правого края шапки (при отсутствии флажка) - 9 px.

  • Диалог стандартный, с размерами: 800 x 500 px. Шрифт статуса - DroidSans 12 px, всех остальных - DroidSans 13 px.

  • Линии между плашками списка, между кнопками в левой панели - пунктирные, все остальные сплошные.

  • Цвета компонентов:

    • #606060 - цвет всех текстов, кроме заголовка и кнопки «Выбрать»;

    • #ffffff - цвет фона, текста заголовка и кнопки «Выбрать»;

    • #49b582 - цвет фона кнопки;

    • #dcedfd - цвет выделения плашки;

    • #ff4800 - цвет статусов «Контакт из адресной книги» и «Введен вручную»;

    • #d6d6d6 - цвет всех линий;

    • #4c5256 - цвет заголовка.

Рисунок 4.73. Диалог выбора пользователей

Диалог выбора пользователей

Рисунок 4.74. Диалог выбора пользователей, группы

Диалог выбора пользователей, группы

Рисунок 4.75. Диалог выбора пользователей со статусом

Диалог выбора пользователей со статусом

Рисунок 4.76. Диалог выбора пользователей, размеры

Диалог выбора пользователей, размеры

Рисунок 4.77. Диалог выбора пользователей, размеры

Диалог выбора пользователей, размеры

Рисунок 4.78. Диалог выбора пользователей, размеры

Диалог выбора пользователей, размеры

Рисунок 4.79. Диалог выбора пользователей, минимальная левая область

Диалог выбора пользователей, минимальная левая область

Рисунок 4.80. Диалог выбора пользователей, минимальная правая область

Диалог выбора пользователей, минимальная правая область

Ввод пользователя(-лей)

Выбранные пользователи подставляются в поле ввода в виде тегов (формат отображения настраивается в компоненте). Развыделенные пользователи удаляют соответствующий тег.

Поле ввода с тегами может быть только многострочным.

Свойства многострочного поля ввода с тегами:

Рисунок 4.81. Поле ввода с тегами

Поле ввода с тегами

  • Всегда отображаются все теги.

  • Если количество тегов превышает высоту поля ввода, в нем должен появиться вертикальный скролл.

  • В области ввода пользователь может ввести произвольный текст. Эта часть отсутствует, если не разрешен мультивыбор, а единственное значение компонента уже имеется. Ширина области ввода — 30 px.

Поведение многострочного поля ввода с тегами на этапе ввода:

Ввод текста тега Многострочное поле ввода

Ввод нового тега: строка не помещается в ширину поля ввода

Невмещающийся текст переносится пословно/посимвольно на новую строку

Редактирование тега: вводимая строка меньше ширины исходного тега

Исходная ширина тега не изменяется

Редактирование тега: вводимая строка не помещается в ширину исходного тега

Невмещающийся текст прокручивается, не меняя исходной ширины тега

По мере ввода используется подбор результатов поиска, в котором всегда есть выделение (по умолчанию на первом пункте списка). Содержимое выпадающего списка подбора результатов поиска определяется следующим образом:

  • если ввод произвольного текста не разрешен, то в список попадают только данные из диалога выбора;

  • если ввод произвольного текста разрешен, то кроме пользователей из диалога в список попадают все общедоступные контакты (люди и организации) адресной книги, в которых заполнено поле «Электронная почта», формат значения:

    • Фамилия Имя Отчество <почта>

    • Название организации <почта>

В стандартном выпадающем списке отображается максимум 10 значений подбора, но содержится максимум 30 значений (невмещающиеся значения скрываются за вертикальным скроллом).

Рисунок 4.82. Подбор результатов поиска

Подбор результатов поиска

По нажатию на «Enter» введенная информация обрабатывается:

  • при нажатии было выделено значение из выпадающего списка - оно становится значением компонента и, соответственно, тегом;

  • при нажатии отсутствовали результаты поиска - в зависимости от того, разрешен ли ввод произвольного текста:

    • разрешен - текст становится значением компонента и, соответственно, тегом;

    • запрещен - текст не становится значением компонента, остается активным его ввод, при потере фокуса такое значение компонента очищается.

Поведение многострочного поля ввода с тегами на этапе преобразования текста в тег: если ширина текущего тега превышает ширину области, отведенной под теги, текст переносится пословно / посимвольно на новую строку (т.е. может стать многострочным).

Рисунок 4.83. Поле ввода с длинными тегами

Поле ввода с длинными тегами

Если разрешено редактирование label-а, то двойное нажатие на тег активирует редактирование его текстового значения.

Рисунок 4.84. Редактирование лейбла тега

Редактирование лейбла тега

При попадании фокуса на тег кликом мыши, он выделяется. При попадании фокуса на компонент табуляцией выделяется первый тег, последующая табуляция - выделяется следующий текст. После выделения последнего тега активируется курсор (при наличии), либо переход на следующий компонент формы.

Рисунок 4.85. Выделенный тег

Выделенный тег

Удаление тега осуществляется по нажатию на его крестик. При этом открывается браузерное диалоговое окно с сообщением:

Вы действительно хотите удалить тег %текстовое_значение_тега%?

«Отмена» - действие не выполняется. «Ок» - тег и выбранное значение компонента удаляются, курсор автоматически установлен в поле ввода.

Если поле помечено как заблокированное от изменений, то оно недоступно для ввода и выбора, но при этом может содержать в себе значение (например, создающим пользователем). У такого тега отсутствует иконка его удаления.

Рисунок 4.86. Недоступное поле ввода с тегами

Недоступное поле ввода с тегами

Если поле отмечено как обязательное к заполнению, то проверка на пустое значение выполняется:

  • при потере фокуса с компонента - поле подсвечивается красным, ошибки отсутствуют;

  • на этапе сохранения файла по форме либо при переключении режимов формы - поле также подсвечивается красным, но выводится общая ошибка формы:

    Заполните обязательные поля

Рисунок 4.87. Обязательное поле ввода с тегами

Обязательное поле ввода с тегами

Пустое значение в режиме просмотра формы отображается как пустое значение (а не знаками подчеркивания, например).

С тега компонента недоступно вырезание, но доступно копирование выделенной части в системный буфер обмена сочетаниями Ctrl+C, Ctrl+Insert, ПКМ → Копировать. В буфер попадает текстовое представление выделенной части.

В компонент доступна вставка данных (при наличии активного курсора) из системного буфера обмена сочетаниями клавиш Ctrl+V, Shift+Insert, ПКМ → Вставить. По умолчанию, в данный компонент разрешено вставлять любые символы. Вставка разнозначна вводу текста.

Цвета, используемые в поле ввода с тегами:

  • #333333 - цвет всех текстов во всех тегах;

  • #f1eed1 - цвет тега;

  • #e2dfba - цвет выделенного / недоступного тега;

  • #ebebeb - цвет фона кнопки выбора / недоступного поля;

  • #ecacad - цвет контура невалидного поля;

  • #fff3f3 - цвет фона невалидного поля.

Высота поля ввода с кнопкой по умолчанию: 28 px

Ширина кнопки выбора: 30 px

Шрифт по умолчанию: Arial 12 px

Ширина области ввода: 30 px

Высота тега: 22 px

Рисунок 4.88. Размеры поля ввода с тегами

Размеры поля ввода с тегами

Рисунок 4.89. Размеры поля ввода с тегами

Размеры поля ввода с тегами

Рисунок 4.90. Размеры поля ввода с тегами

Размеры поля ввода с тегами

Рисунок 4.91. Размеры поля ввода с тегами

Размеры поля ввода с тегами

Компонент «Должности»

Компонент формы «Должности» позволяет вводить и/или выбирать и отображать должности системы.

Внешне в режиме редактирования файла по форме компонент представляет собой поле ввода с тегами высотой, по умолчанию, в две строки и кнопкой, по нажатию которой открывается диалог выбора. В режиме просмотра компонент отображается в виде лейбла, длинный текст отображается на несколько строк, перечисление нескольких объектов происходит через запятую.

Настраиваемые параметры компонента:

  • Обязательное поле

  • Заблокировать от изменений пользователем

  • Связь с компонентом

  • Язык

  • Заполнять первой должностью создающего пользователя

  • Разрешать ввод произвольного текста

  • Разрешать редактировать label выбранного элемента

  • Отображать только вакантные должности

По умолчанию, все флажки выключены.

Рисунок 4.92. Настройки выбора должности

Настройки выбора должности

Флажок «Заблокировать от изменений пользователем» позволяет сделать недоступным ввод и выбор данных в данный компонент в режиме редактирования файла по форме.

Выпадающий список «Связь с компонентом» имеет, по умолчанию, значение «Нет» и содержит список идентификаторов (для компонентов внутри динамической таблицы - без идентификатора таблицы):

  • компонентов выбора должности и подразделения для компонента «Пользователи»;

  • компонентов выбора пользователя и подразделения для компонента «Должности»;

  • компонентов выбора пользователя, должности и подразделения для компонента «Подразделения».

Связь может быть определена только в одну сторону, но не оба сразу (во избежание возникновения циклических ссылок). Также нельзя создавать непрямые циклические ссылки, например «Подразделения»«Должность»«Пользователи»«Подразделения».

Данные ограничения реализованы так, что в выпадающем списке отсутствуют значения тех компонентов, при которых может возникнуть циклическая ссылка. Например:

  • Компонент пользователей 1 связали с компонентом должностей 1. В компоненте должностей 1 должен отсутствовать идентификатор компонента пользователей 1.

  • Далее, компонент должностей 1 связали с компонентом подразделений 1. В компоненте подразделений 1 должны отсутствовать идентификаторы компонента пользователя 1 и должности 1.

Пусть компонент, в котором настроена такая связь - это подчиненный компонент, а компонент, с которым он связан - главный компонент. Главный компонент определяет набор значений для выбора в подчиненном компоненте.

Возможные варианты связей (подчиненный компонент ← главный компонент):

  • «Должности»«Пользователи». В компоненте выбора должности должны отображаться все должности выбранного пользователя.

  • «Подразделения»«Пользователи». В компоненте выбора подразделения должно отображаться родительское подразделение первого уровня относительно выбранного пользователя.

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

  • «Подразделения»«Должности». В компоненте выбора подразделения должно отображаться родительское подразделение первого уровня относительно выбранной должности.

  • «Пользователи»«Подразделения». В компоненте выбора пользователя должны отображаться все пользователи данного подразделения.

  • «Должности»«Подразделения». В компоненте выбора должности должны отображаться все должности данного подразделения.

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

Во всех случаях после того, как главный компонент примет корректное значение, подчиненный компонент автоматически заполняется первым значением из всего набора доступных значений. Для случая, когда удаляется значение в главном компоненте, удаляются значения и во всех подчиненных компонентах.

Связь между компонентами «Пользователи» / «Должности» / «Подразделения» можно настраивать также внутри динамической таблицы.

Выпадающий список «Язык» имеет следующие значения:

  • Не указан (по умолчанию);

  • далее список отображаемых локалей системы (из раздела «Региональные настройки» -> «Языки» те языки, у которых включено свойство «Показывать», сортировка в списке соответствует возрастанию их номера).

Флажок «Заполнять первой должностью создающего пользователя» позволяет при создании файла по форме автоматически присвоить значение компоненту первой в списке должностью из всего набора должностей авторизованного пользователя. Автоматическое заполнение происходит независимо от значения по умолчанию, заданному в конфигураторе и независимо от того, выключена ли настройка «Отображать только вакантные должности».

Флажок «Разрешать ввод произвольного текста» добавляет новое свойство компоненту: ввод произвольного текста. Этот текст будет интерпретироваться как название соответствующего объекта Synergy на всех трех системных языках — русском, английском и казахском. Настройка связей с произвольным текстом работать не будет.

Флажок «Разрешать редактировать label выбранного элемента» добавляет новое свойство компоненту: по двойному клику по тегу выбранного объекта доступно редактирование его текстового представления. Обновленное текстовое представление тега не должно отменять введенное или выбранное в компоненте значение.

Флажок «Отображать только вакантные должности» добавляет новое свойство компоненту: выбор только тех должностей, на которых есть вакансии (т.е. такие должности, для которых необходимое количество штатных единиц больше количества назначенных на эту должность сотрудников).

Примечание.

Если для должности не указано необходимое количество штатных единиц (значение = 0), то считается, что количество вакансий не ограничено и такая должность отображается в компоненте всегда.

Эта настройка работает вместе с настройками связей.

Общие свойства компонента.

На ввод и выбор доступны только должности Synergy с учетом следующих настроек:

  • по умолчанию в списке доступны все должности орг. структуры;

  • включенная настройка отображать только вакантные должности ограничивает список только вакантными должностями;

  • настройка связи с компонентом ограничивает список (см. подробнее в описании настройки).

Значение компонента по умолчанию задается в конфигураторе на этапе создания / редактирования формы (может быть пустым). Placeholder отсутствует.

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

Диалог выбора должности.

Выбор должности происходит с помощью диалога, открываемого по нажатию на кнопку справа от поля ввода с тегами.

Компонент обладает свойством, что при открытии диалога выбора в нем автоматически выделена ранее добавленная (как выбором, так и вводом) должность. Во вкладке «Выбранные», кроме того, отображаются плашки тегов с произвольным текстом, при наличии. Кроме того, мультивыбор должностей всегда отсутствует.

Плашки списка могут отличаться, в зависимости от отображаемой информации:

  • Плашка должности содержит:

    • на первой строке - название должности;

    • на второй строке - название ближайшего родительского подразделения, к которому относится данная должность.

  • Плашка произвольного текста содержит:

    • на первой строке - по левому краю произвольный текст и по правому краю неизменяемый статус Введен вручную;

    • вторая строка ничего не содержит.

Отображаемый список должностей зависит от того, что выделено в левой части диалога:

  • Выбранные - текущая выделенная должность;

  • Орг. структура (выделен по умолчанию при каждом открытии диалога) - список должностей, принадлежащих выбранному подразделению орг.структуры.

Заголовком таблицы является название выделенной кнопки (для «Выбранные») либо ноды дерева (для «Орг.структура»).

Список отображается с постепенной догрузкой. Изначально подгружается 30 должностей. При прокрутке пользователем вниз список дополняется новыми 30 должностями.

Список должностей сортируется следующим образом:

  • должности сортируются по убыванию уровня орг.структуры вне зависимости от уровня должности;

  • должности в одном подразделении сортируются в следующем порядке:

    • руководитель;

    • и.о. руководителя;

    • заместитель руководителя;

    • специалист.

Для связи «Выбор пользователя»«Выбор должности» сортировка значений списка осуществляется следующим образом:

  • при наличии у пользователя должностей в различных по уровню структуры подразделениях - должности сортируются по убыванию уровня орг.структуры вне зависимости от уровня должности (см. пример ниже);

  • при наличии у пользователя должностей в одинаковых по уровню структуры подразделениях:

    • при наличии различных номеров подразделений - должности сортируются по возрастанию номера подразделения вне зависимости от уровня должности;

    • при наличии одинаковых номеров подразделений - должности сортируются по возрастанию ID должности.

      Примечание

      При наличии в подразделении с одинаковыми номерами должностей и.о. руководителя и заместителя руководителя приоритет отдается и.о. руководителя.

  • при наличии у пользователя должностей в одном подразделении - должности сортируются по следующему порядку:

    • руководитель;

    • и.о. руководителя;

    • заместитель руководителя;

    • специалист.

Рисунок 4.93. Пример сортировки должностей

Пример сортировки должностей

Таким образом, порядок отображения должностей:

  1. И.О_руководителя_подразделения_1

  2. Заместитель_руководителя_подразделения_1

  3. Специалист_2

  4. Специалист_4

  5. Заместитель_руководителя_подразделения_3

  6. Специалист_3

Доступно выделение только одной должности, новое выделение отменяет предыдущее. Развыделить выбранную должность нельзя. Двойным кликом по плашке происходит его выделение и выбор (с закрытием диалога).

Поиск должностей осуществляется только внутри отображаемого списка. Поиск производится по нажатию на клавишу «Enter» либо на иконку лупы, его результаты фильтруют отображаемый список. Пустой запрос поиска соответствует отображению всех должностей. Placeholder поля:

Поиск должностей

Кнопка «Выбрать» недоступна для нажатия, если не выделена должность. Как только одна должность становится выделенной, кнопка становится доступной.

Описание интерфейса диалога:

  • Размер областей динамический: может быть изменен перемещением сплита. Сплит может быть перемещен не более, чем на 2/3 части соответствующей области по умолчанию (т.е. максимум на 172 px влево или 346 px вправо).

  • Названия кнопок левой панели, по умолчанию, выровнены по центру. При уменьшении области до ширины, при которой текст кнопки с отступом до текста (9 px) не помещается полностью в этой области, текст выравнивается по левому краю с сохранением отступа.

  • При открытии диалога, по умолчанию, горизонтальный скролл в списке отсутствует, независимо от контекста. Если ширина панели была уменьшена, то горизонтальный скролл появляется.

    Наличие вертикального скролла в списке, а также горизонтального и вертикального скроллов в дереве зависят от их содержимого.

  • По наведению курсора мыши над должностью / подразделением отображается тултип с соответствующей полной информацией.

  • В случае, если название должности / подразделения не помещаются в ширину списка, оно обрезается с добавлением многоточие, отступ от правого края - 21 px.

  • В случае, если название заголовка таблицы не помещается в ширину, оно обрезается с добавлением многоточие, отступ от правого края шапки - 9 px.

  • Диалог стандартный, с размерами: 800 x 500 px. Шрифт - DroidSans 13 px.

  • Линии между плашками списка, между кнопками в левой панели - пунктирные, все остальные сплошные.

  • Цвета компонентов:

    • #606060 - цвет всех текстов, кроме заголовка и кнопки «Выбрать»;

    • #ffffff - цвет фона, текста заголовка и кнопки «Выбрать»;

    • #49b582 - цвет фона кнопки;

    • #dcedfd - цвет выделения плашки;

    • #ff4800 - цвет статуса «Введен вручную»;

    • #d6d6d6 - цвет всех линий;

    • #4c5256 - цвет заголовка.

Рисунок 4.94. Диалог выбора должности

Диалог выбора должности

Ввод должности.

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

Компонент «Подразделения»

Компонент формы «Подразделения» позволяет вводить и/или выбирать и отображать подразделения системы.

Внешне в режиме редактирования файла по форме компонент представляет собой поле ввода с тегами высотой, по умолчанию, в две строки и кнопкой, по нажатию которой открывается диалог выбора. В режиме просмотра компонент отображается в виде лейбла, длинный текст отображается на несколько строк, перечисление нескольких объектов происходит через запятую.

Настраиваемые параметры компонента:

  • Обязательное поле

  • Заблокировать от изменений пользователем

  • Связь с компонентом

  • Язык

  • Заполнять департаментом создающего пользователя

  • Разрешать ввод произвольного текста

  • Позволять мультивыбор

  • Разрешать редактировать label выбранного элемента

По умолчанию, все флажки выключены.

Рисунок 4.95. Настройки выбора подразделения

Настройки выбора подразделения

Флажок «Заблокировать от изменений пользователем» позволяет сделать недоступным ввод и выбор данных в данный компонент в режиме редактирования файла по форме.

Выпадающий список «Связь с компонентом» имеет, по умолчанию, значение «Нет» и содержит список идентификаторов (для компонентов внутри динамической таблицы - без идентификатора таблицы):

  • компонентов выбора должности и подразделения для компонента «Пользователи»;

  • компонентов выбора пользователя и подразделения для компонента «Должности»;

  • компонентов выбора пользователя, должности и подразделения для компонента «Подразделения».

Связь может быть определена только в одну сторону, но не оба сразу (во избежание возникновения циклических ссылок). Также нельзя создавать непрямые циклические ссылки, например «Подразделения»«Должность»«Пользователи»«Подразделения».

Данные ограничения реализованы так, что в выпадающем списке отсутствуют значения тех компонентов, при которых может возникнуть циклическая ссылка. Например:

  • Компонент пользователей 1 связали с компонентом должностей 1. В компоненте должностей 1 должен отсутствовать идентификатор компонента пользователей 1.

  • Далее, компонент должностей 1 связали с компонентом подразделений 1. В компоненте подразделений 1 должны отсутствовать идентификаторы компонента пользователя 1 и должности 1.

Пусть компонент, в котором настроена такая связь - это подчиненный компонент, а компонент, с которым он связан - главный компонент. Главный компонент определяет набор значений для выбора в подчиненном компоненте.

Возможные варианты связей (подчиненный компонент ← главный компонент):

  • «Должности»«Пользователи». В компоненте выбора должности должны отображаться все должности выбранного пользователя.

  • «Подразделения»«Пользователи». В компоненте выбора подразделения должно отображаться родительское подразделение первого уровня относительно выбранного пользователя.

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

  • «Подразделения»«Должности». В компоненте выбора подразделения должно отображаться родительское подразделение первого уровня относительно выбранной должности.

  • «Пользователи»«Подразделения». В компоненте выбора пользователя должны отображаться все пользователи данного подразделения.

  • «Должности»«Подразделения». В компоненте выбора должности должны отображаться все должности данного подразделения.

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

Во всех случаях после того, как главный компонент примет корректное значение, подчиненный компонент автоматически заполняется первым значением из всего набора доступных значений. Для случая, когда удаляется значение в главном компоненте, удаляются значения и во всех подчиненных компонентах.

Связь между компонентами «Пользователи» / «Должности» / «Подразделения» можно настраивать также внутри динамической таблицы.

Выпадающий список «Язык» имеет следующие значения:

  • Не указан (по умолчанию);

  • далее список отображаемых локалей системы (из раздела «Региональные настройки» -> «Языки» те языки, у которых включено свойство «Показывать», сортировка в списке соответствует возрастанию их номера).

Значение «Не указан» соответствует языку авторизации пользователя.

Флажок «Заполнять департаментом создающего пользователя» позволяет при создании файла по форме автоматически присвоить значение компоненту первым в списке подразделением из всего набора подразделений авторизованного пользователя. Автоматическое заполнение происходит независимо от значения по умолчанию, заданному в конфигураторе.

Флажок «Разрешать ввод произвольного текста» добавляет новое свойство компоненту: ввод произвольного текста. Этот текст будет интерпретироваться как название соответствующего объекта Synergy на всех трех системных языках — русском, английском и казахском. Настройка связей с произвольным текстом работать не будет.

Флажок «Позволять мультивыбор» добавляет новое свойство компоненту: ввод и выбор одновременно нескольких подразделений.

Примечание.

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

Флажок «Разрешать редактировать label выбранного элемента» добавляет новое свойство компоненту: по двойному клику по тегу выбранного объекта доступно редактирование его текстового представления. Обновленное текстовое представление тега не должно отменять введенное или выбранное в компоненте значение.

Общие свойства компонента.

На ввод и выбор доступны только подразделения Synergy с учетом следующих настроек:

  • по умолчанию в списке доступны все подразделения орг. структуры;

  • настройка связи с компонентом ограничивает список (см. подробнее в описании настройки).

Значение компонента по умолчанию задается в конфигураторе на этапе создания / редактирования формы (может быть пустым). Placeholder отсутствует.

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

Диалог выбора подразделения(-ий).

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

Компонент обладает свойством, что при открытии диалога выбора в нем автоматически выделены ранее добавленные (как выбором, так и вводом) подразделения. Во вкладке «Выбранные», кроме того, отображаются плашки тегов с произвольным текстом, при наличии.

Плашки списка могут отличаться, в зависимости от отображаемой информации:

  • Плашка подразделения содержит:

    • на первой строке: название подразделения;

    • на второй строке - название ближайшего родительского подразделения, к которому относится данное подразделение (для подразделения первого уровня - отсутствует).

  • Плашка произвольного текста содержит:

    • на первой строке - по левому краю произвольный текст и по правому краю неизменяемый статус Введен вручную;

    • вторая строка ничего не содержит.

Отображаемый список подразделений зависит от того, что выделено в левой части диалога:

  • Выбранные - все текущие выделенные подразделения;

  • Орг. структура (выделен по умолчанию при каждом открытии диалога) - список подразделений, принадлежащих выбранному подразделению орг.структуры, включая само подразделение.

Заголовком таблицы является название выделенной кнопки (для «Выбранные») либо ноды дерева (для «Орг.структура»).

Список отображается с постепенной догрузкой. Изначально подгружается 30 подразделений. При прокрутке пользователем вниз список дополняется новыми 30 подразделениями.

Список подразделений сортируется следующим образом:

  • подразделения сортируются по убыванию уровня орг.структуры вне зависимости от уровня подразделения.

В зависимости от настройки разрешен ли мультивыбор, диалог обладает следующими свойствами:

  • не разрешен:

    • доступно выделение только одной плашки, новое выделение отменяет предыдущее;

    • развыделить выбранную плашку нельзя;

    • двойным кликом по плашке происходит его выделение и выбор (с закрытием диалога);

  • разрешен:

    • доступно выделение нескольких плашек, новое выделение не отменяет предыдущее, а добавляет его к выбранным;

    • можно развыделить все выбранные плашки;

    • двойной клик по плашке отрабатывает как развыделение и новое выделение этой же плашки (выбор с закрытием диалога отсутствует).

В диалоге с мультивыбором над списком подразделений (только во вкладке «Орг.структура») отображается флажок «Выбрать всех». Он может находиться в двух состояниях:

  • выключен - если не выделено хотя бы одно подразделение из отображаемого списка;

  • включен - если выделены все подразделения отображаемого списка, причем только в результате нажатия на данный флажок.

По нажатию на выключенный флажок «Выбрать всех» происходит выделение всех подразделений отображаемого списка. При этом предыдущий выбор отменяется, теперь «выбранными» будут являться только вновь выделенные подразделения.

По нажатию на включенный флажок происходит развыделение всех ранее выбранных подразделений.

Поиск подразделений осуществляется только внутри отображаемого списка и только во вкладке «Орг.структура». Поиск производится по нажатию на клавишу «Enter» либо на иконку лупы, его результаты фильтруют отображаемый список. Пустой запрос поиска соответствует отображению всех подразделений. Placeholder поля:

Поиск подразделений

Кнопка «Выбрать» недоступна для нажатия, если не выделено ни одно подразделение. Как только хотя бы одно подразделение становится выделенным, кнопка становится доступной.

Описание интерфейса диалога:

  • Размер областей динамический: может быть изменен перемещением сплита. Сплит может быть перемещен не более, чем на 2/3 части соответствующей области по умолчанию (т.е. максимум на 172 px влево или 346 px вправо).

  • Названия кнопок левой панели, по умолчанию, выровнены по центру. При уменьшении области до ширины, при которой текст кнопки с отступом до текста (9 px) не помещается полностью в этой области, текст выравнивается по левому краю с сохранением отступа.

  • При открытии диалога, по умолчанию, горизонтальный скролл в списке отсутствует, независимо от контекста. Если ширина панели была уменьшена, то горизонтальный скролл появляется.

    Наличие вертикального скролла в списке, а также горизонтального и вертикального скроллов в дереве зависят от их содержимого.

  • По наведению курсора мыши над подразделениями отображается тултип с соответствующей полной информацией.

  • В случае, если название родительского подразделения не помещается в ширину списка, оно обрезается с добавлением многоточие, отступ от правого края - 21 px.

    Наличие многоточия для первой строки зависит от статуса:

    • В случае невмещающегося названия подразделения и отсутствия статуса - название обрезается с добавлением многоточие, отступ от правого края - 21 px.

    • В случае наличия произвольного текста и статуса:

      • статус выравнивается по правому краю;

      • при невмещающемся произвольном тексте он обрезается с добавлением многоточие, отступ от левого края статуса - 9 px.

  • В случае, если название заголовка таблицы не помещается в ширину, оно обрезается с добавлением многоточие, отступ от левого края флажка (при наличии) либо от правого края шапки (при отсутствии флажка) - 9 px.

  • Диалог стандартный, с размерами: 800 x 500 px. Шрифт статуса - DroidSans 12 px, всех остальных - DroidSans 13 px.

  • Линии между плашками списка, между кнопками в левой панели - пунктирные, все остальные сплошные.

  • Цвета компонентов:

    • #606060 - цвет всех текстов, кроме заголовка и кнопки «Выбрать»;

    • #ffffff - цвет фона, текста заголовка и кнопки «Выбрать»;

    • #49b582 - цвет фона кнопки;

    • #dcedfd - цвет выделения плашки;

    • #ff4800 - цвет статуса «Введен вручную»;

    • #d6d6d6 - цвет всех линий;

    • #4c5256 - цвет заголовка.

Рисунок 4.96. Диалог выбора подразделения

Диалог выбора подразделения

Ввод подразделения(-ий).

Выбранные подразделения подставляются в поле ввода в виде тегов. Развыделенные подразделения удаляют соответствующий тег. В целом, поведение ввода подразделения(-ий) идентично вводу пользователя(-ей).

Компонент «Номер»

Компонент «Номер» позволяет автоматизировать нумерацию, отображая заранее выбранный шаблон номера.

Внешне в режиме просмотра и редактирования файла по форме компонент отображается в виде лейбла.

Настраиваемые параметры компонента:

  • Шаблон номера

Рисунок 4.97. Настройки номера

Настройки номера

Выпадающий список «Шаблон номера» содержит список всех неудаленных шаблонов номеров в формате:

%Название_шаблона_номера% (%формула_шаблона_номера%)

Список сортируется по возрастанию названия шаблона номера. По умолчанию, в нем выбрана первая запись в списке.

Поведение компонента.

При создании файла по форме компонент запрашивает следующее значение указанного шаблона номера и подставляет его в качестве собственного значения, при этом одно значение счетчика выдается на всю форму. То есть если форма содержит несколько компонентов с одним шаблоном номера, то при создании данных по форме все эти компоненты будут иметь одно значение счетчика, вне зависимости от того, расположены ли компоненты в основной таблице формы, в статической или в динамической таблице.

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

Внимание!

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

Например, шаблон номера с начальным и следующим значением «1» используется в одном журнале и в одном компоненте формы, на основе которого создан реестр (ни журнал, ни реестр ничего не содержат). Сначала регистрируется документ журнала, ему присвается номер «1». Затем создается запись реестра, компоненту присвоится значение «2», а не «1».

Вышеописанное поведение не является ошибкой Synergy.

В конструкторе формы в режиме просмотра/редактирования формы компонент не отображается.

Если удален шаблон номера, который используется в компоненте, то:

  • при открытии уже созданного файла по форме отображается полное значение компонента, присвоенное ему при создании;

  • при создании нового файла по форме на место существующих счетчиков компонент запрашивает следующее значение, на месте удаленных счетчиков отображается их код как часть формулы шаблона номера.

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

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

Ввод в компонент и рlaceholder отсутствуют.

Пустое значение в режиме просмотра формы отображается как пустое значение (а не знаками подчеркивания, например).

С компонента доступно копирование выделенной части в системный буфер обмена сочетаниями Ctrl+C, Ctrl+Insert, ПКМ → Копировать. В буфер попадает текстовое представление выделенной части. Недоступны действия вырезки и вставки.

Шрифт по умолчанию: Arial 12 px, цвет #333333

Компонент «Вычисляемое поле»

Компонент «Вычисляемое поле» позволяет производить вычисления с компонентами формы на основе настроенной формулы. Вычисления выполняются как на стороне клиента, так и на стороне сервера:

  1. при изменении значения поля, участвующего в выражении (в том числе в режиме предпросмотра формы в конструкторе), агрегирование значений компонентов в динтаблице выполняется также при изменении количества блоков в таблице;

  2. при изменении выражения (в конструкторе);

  3. при создании и открытии записи по форме;

  4. при сохранении данных по форме.

Внешне в режиме просмотра и редактирования файла по форме компонент отображается в виде однострочного поля, содержащего настроенную в компоненте формулу. Поле всегда заблокировано от изменений пользователем.

Настраиваемые параметры компонента:

  • Скрытое поле

  • Настройки форматирования

    • Ограничение десятичных знаков (для включенного флажка - обяз.)

    • Разделитель дробной части (не имеет пустого значения)

    • Действия с лишними десятичными знаками (не имеет пустого значения)

    • Разделитель тысяч (для включенного флажка - обяз.)

    • Пример

  • Настройки компонента

    • Граничные значения (обяз.)

    • Формула (по умолчанию поле пустое)

Флажок «Скрытое поле» позволяет скрыть компонент в режиме редактирования и просмотра формы.

Поле ввода «Ограничение десятичных знаков» определяет, сколько в текстовом представлении компонента будет отображено десятичных знаков. Значение по умолчанию: 2, валидация: целое число от 0 до 16 включительно (число, большее 16, по смыслу приравнивается к 16). При редактировании самого числового поля ограничений на количество вводимых десятичных знаков отсутствует - числовое поле должно преобразовать число согласно данной настройке и настройке «Действие с лишними десятичными знаками».

Выпадающий список «Разделитель дробной части» определяет символ, который будет отображаться в текстовом представлении числа как разделитель дробной части. Возможные значения списка - «запятая» (по умолчанию) и «точка». При редактировании числового поля доступен ввод хоть точки, хоть запятой, но при этом этот разделитель «на лету» и автоматически должен замениться на тот, что указан в данной настройке.

Радиокнопка «Действия с лишними десятичными знаками» определяет то действие, которое необходимо применять в случае превышения установленного количества десятичных знаков при вводе. Возможные значения списка: «Округлить» (по умолчанию) и «Отбросить». Данная настройка влияет на текстовое представление числового поля.

Флажок и поле ввода «Разделитель тысяч» определяют, использовать ли в текстовом представлении разделитель тысяч. Значение по умолчанию: флажок выключен, поле ввода недоступно (разделение на разряды отсутствует). Для включенного флажка становится доступным поле ввода, валидация: допускается ввод любого символа, кроме цифр 0-9 и знаков «+ - * /». Кроме того, в качестве разделителя тысяч нельзя использовать настроенный разделитель дробной части.

Недоступное на редактирование поле ввода «Пример» отображает пользователю в режиме реального времени согласно настройкам пример текстового представления числового поля. Для значения настроек «Количество десятичных знаков» = 2, «Разделитель дробной части» = точка, «Действие с лишними десятичными знаками» = Округлить, «Разделитель тысяч» = пробел:

  • числовым представлением будет 1234567890.99

  • текстовым представлением будет 1 234 567 890.99

2 поля ввода «Граничные значения» определяют минимальное и максимальное текстовое представление компонента. Значения по умолчанию: -9223372036854775808 и 9223372036854775808, валидация полей ввода данной настройки: допускается ввод любых чисел, не превышающих значения по умолчанию. При редактировании самого числового поля ограничение на ввод числа отсутствует - числовое поле должно преобразовать его в текстовом представлении согласно данной настройки (см. подробнее в поведении компонента).

Поле «Формула» служит для определения действий по данному полю.

Синтаксис формул

Поддерживаемые действия:

  • арифметические (+, -, *, /);

  • агрегирование значений компонентов (сумма SUM, среднее арифметическое AVG, минимум MIN, максимум MAX, количество элементов COUNT);

  • сравнения (<, <=, >, >=, =, !=);

  • условный оператор IF(<условие>, <значение, если истина>, <значение, если ложь>).

Обращение к компоненту:

  • ${cmp-id}, ${cmp-in-static-table} - значение указанного компонента;

  • #{cmp-id} - значение компонента cmp-id, расположенного в динтаблице, текущий блок (применяется только для формул в компонентах, расположенных в этом же блоке динтаблицы);

  • @{dyntable.cmp-id} - массив значений компонента cmp-id из всех блоков динтаблицы dyntable.

Допустимо использование чисел-констант и группировка выражений скобками. В случае, когда в функции агрегирования в качестве параметров используется несколько компонентов формы, идентификаторы этих компонентов отделяются друг от друга запятой.

Выражение может быть оформлено разными способами:

  • с использованием арифметических действий: (${cmp1}+${cmp2})/3

  • с использованием функций агрегирования: MIN(@{dyntable.cmp1}), AVG(${cmp1},${cmp2})

  • комбинированный вариант: COUNT(@{dyntable.cmp1})*${cmp1}+1

В выражениях допускается использование id компонентов любого типа. Операции выполняются с key компонентов, если они есть, если нет - то с value. Если ключ/значение хотя бы одного из используемых в выражении операндов (компонента или константы) - не число, или указан несуществующий компонент, то выражение считается некорректным.

При невозможности вычисления выражения оно также считается некорректным.

В случае, если в компоненте указано некорректное выражение, в режиме конструктора и заполнения формы в этом компоненте отображается текст #NUM!#.

Работа с динамическими таблицами

При вычислении с использованием компонентов, расположенных в динамических таблицах, выделяются два случая:

  1. Выражение добавлено в компонент, расположенный в динтаблице:

  • если в выражении используется агрегирование значений компонентов, расположенных в этой же таблице, то выражение считается некорректным;

  • если в выражении используются арифметические действия с компонентами, расположенными в этой же таблице, то операции должны выполняться для компонентов в одном блоке;

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

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

  • если компонент из динтаблице используется без агрегирования, то выражение считается некорректным;

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

Работа с массивами

Здесь массив - набор значений компонента cmp во всех блоках динтаблицы dyntable.

Массив может быть указан только в качестве аргумента функции агрегирования: AVG(@{dyntable.cmp}). Во всех остальных случаях при использовании массива в формуле выражение считается некорректным, в том числе при использовании массива в качестве аргумента арифметических операций: выражение вида SUM(@{dyntable.price}*@{dyntable.count}) будет считаться некорректным.

Компонент «Лист подписей»

Компонент формы «Лист подписей» позволяет отображать один из настроенных вариантов таблицы подписей:

  • лист подписей

  • лист согласования

  • лист утверждения

  • лист ознакомления

Внешний вид компонента - таблица с границами. Заголовок таблицы выделен полужирным начертанием и имеет выравнивание по центру, перенастроить данные параметры нельзя. Форматирование содержимого таблицы определяется соответствующими настройками в редакторе форм.

Настраиваемые параметры компонента:

  • Язык

  • Тип данных

Выпадающий список «Язык» имеет следующие значения:

  • Не указан (по умолчанию);

  • далее список отображаемых локалей системы (из раздела «Региональные настройки» -> «Языки» те языки, у которых включено свойство «Показывать», сортировка в списке соответствует возрастанию их номера).

Значение «Не указан» соответствует языку авторизации пользователя.

Выпадающий список «Тип данных» - опция, определяющая итоговый вид таблицы, содержит следующие значения:

  • Лист подписей (выбран по умолчанию)

    Рисунок 4.98. Компонент «Лист подписей»

    Компонент «Лист подписей»

  • Лист согласования

    Рисунок 4.99. Компонент «Лист согласования»

    Компонент «Лист согласования»

  • Лист утверждения

    Рисунок 4.100. Компонент «Лист утверждения»

    Компонент «Лист утверждения»

  • Лист ознакомления

    Рисунок 4.101. Компонент «Лист ознакомления»

    Компонент «Лист ознакомления»

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

Лист подписей.

Таблица называется:

Наименования столбцов листа подписей

Рисунок 4.102. Настройки компонента «Лист подписей»

Настройки компонента «Лист подписей»

В столбце «Столбец» находятся идентификаторы разделов листа подписей:

  • number - нумерация строк

  • full_name - значение ФИО в компонент подставляется согласно настройке документооборота «Отображать ФИО и должность пользователя на момент подписи в листе подписей»;

  • full_name_current - в компонент подставляется всегда текущее ФИО пользователя, независимо от настройки документооборота;

  • full_name_saved - в компонент подставляется всегда сохраненное на момент подписи ФИО пользователя, независимо от настройки документооборота;

Формат ФИО во всех случаях - «Фамилия И.О.»

  • position - значение должности в компонент подставляется согласно настройке документооборота «Отображать ФИО и должность пользователя на момент подписи в листе подписей»;

  • position_current - в компонент подставляется всегда текущая должность пользователя, независимо от настройки документооборота;

  • position_saved - в компонент подставляется всегда сохраненная на момент подписи должность пользователя, независимо от настройки документооборота;

  • date - дата подписания в формате «ЧЧ:ММ:СС ДД.ММ.ГГ»

  • signature_type - тип подписи, один из следующих вариантов:

    • Согласование

    • Утверждение

    • Ознакомление

    • Подпись

  • comment - комментарий подписавшего (при наличии комментария, может содержать пустое значение)

  • signature - подпись (один из двух вариантов: «ЭЦП» либо «Обычная»)

Ширина столбцов:

  • Номер - 50 px

  • ФИО подписавшего - 120 (100) px

  • Должность подписавшего - 160 (100) px

  • Дата подписания - 120 (100) px

  • Тип подписи - 100 px

  • Подпись - 70 px

Столбец «Комментарий» имеет динамическую ширину, которая зависит от ширины доступной области. Если отсутствует возможность отобразить компонент с заданными значениями ширины по умолчанию, необходимо использовать их вторые/ минимальные значения (в скобках, если заданы).

Графа «Тип подписи» заполняется значениями «Согласование» / «Утверждение» / «Ознакомление» в случае, если операция подписания документа была произведена при выполнении соответствующего типу работы действия (значение графы «Комментарий» при этом берется оттуда же). Если же документ был подписан в ином случае (например, если была нажата кнопка «Подписать» в документе), то значением графы «Тип подписи» становится «Подпись».

Лист согласования.

Таблица называется:

Наименования столбцов листа согласования

Рисунок 4.103. Настройки компонента «Лист согласования»

Настройки компонента «Лист согласования»

В столбце «Столбец» находятся идентификаторы разделов листасогласования:

  • number - нумерация строк

  • full_name - ФИО согласующего в формате «Фамилия И.О.»

  • position - должность согласующего

  • consent_date - дата согласования в формате «ЧЧ:ММ:СС ДД.ММ.ГГ»

  • consent_result - результат согласования, один из следующих вариантов:

    • Согласовано

    • Согласовано с комментарием

  • consent_comment - комментарий согласующего (при наличии комментария, может содержать пустое значение)

Ширина столбцов:

  • Номер - 50 px

  • ФИО согласующего - 120 (100) px

  • Должность согласующего - 160 (100) px

  • Дата согласования - 120 (100) px

  • Результат согласования - 100 px

Столбец «Комментарий согласующего» имеет динамическую ширину, которая зависит от ширины доступной области. Если отсутствует возможность отобразить компонент с заданными значениями ширины по умолчанию, необходимо использовать их вторые/минимальные значения (в скобках, если заданы).

Лист утверждения.

Таблица называется:

Наименования столбцов листа утверждения

Рисунок 4.104. Настройка компонента «Лист утверждения»

Настройка компонента «Лист утверждения»

В столбце «Столбец» находятся идентификаторы разделов листа утверждения:

  • number - нумерация строк

  • full_name - ФИО утверждающего в формате «Фамилия И.О.»

  • position - должность утверждающего

  • approval_date - дата утверждения в формате «ЧЧ:ММ:СС ДД.ММ.ГГ»

  • approval_result - результат утверждения, один из следующих вариантов:

    • Утверждено

    • Утверждено с комментарием

  • approval_comment - комментарий утверждающего (при наличии комментария, может содержать пустое значение)

Ширина столбцов:

  • Номер - 50 px

  • ФИО утверждающего - 120 (100) px

  • Должность утверждающего - 160 (100) px

  • Дата утверждения - 120 (100) px

  • Результат утверждения - 100 px

Столбец «Комментарий утверждающего» имеет динамическую ширину, которая зависит от ширины доступной области. Если отсутствует возможность отобразить компонент с заданными значениями ширины по умолчанию, необходимо использовать их вторые/минимальные значения (в скобках, если заданы).

Лист ознакомления.

Таблица называется:

Наименования столбцов листа ознакомления

Рисунок 4.105. Настройки компонента «Лист ознакомления»

Настройки компонента «Лист ознакомления»

В столбце «Столбец» находятся идентификаторы разделов листа ознакомления:

  • number - нумерация строк

  • full_name - ФИО ознакамливающегося в формате «Фамилия И.О.»

  • position - должность ознакамливающегося

  • acquaintance_date - дата ознакомления в формате «ЧЧ:ММ:СС ДД.ММ.ГГ»

  • acquaintance_result - результат ознакомления, единственный возможный вариант: «Ознакомлен»

Ширина столбцов:

  • Номер - 50 px

  • ФИО подписавшего - 120 (100) px

  • Должность подписавшего - 160 (100) px

  • Дата ознакомления - 120 (100) px

  • Результат ознакомления - 100 px

Если отсутствует возможность отобразить компонент с заданными значениями ширины по умолчанию, необходимо использовать их вторые/минимальные значения (в скобках, если заданы).

Примечание.

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

Общие данные для всех четырех таблиц.

В столбце «» можно отрегулировать порядок следования столбцов в листе, в строках этого столбца можно вводить порядковый номер (только целые неотрицательные числа).

Столбец «Название» содежит мультиязычное поле ввода с названием. Значения по умолчанию представлены непосредственно в таблицах.

Столбец «Отображать» содержит флажки, включающие / отключающие отображение соответствующего столбца листа.

В компоненте формы «Лист подписей» должны отображаться те столбцы, что помечены флажком как «Отображать» по порядковым номерам, по возрастанию; если номер для каких-либо строк не указан, то соответствующие столбцы должны отобразиться после занумерованных, в порядке, определенном данной таблицей.

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

Поведение компонента:

  • При клике мыши на компонент ничего не происходит. При табуляции компонент пропускается.

  • С компонента доступно копирование выделенной части в системный буфер обмена сочетаниями Ctrl+C, Ctrl+Insert, ПКМ → Копировать. В буфер попадает текстовое представление выделенной части.

Шрифт основного текста по умолчанию: Arial 12 px

#000000 - цвет текста

#ffffff - цвет фона

Поведение компонента в пользовательской части

В листе подписей пользователь, выполнивший согласование/ утверждение/ ознакомление, отображается только один раз. Если пользователь осуществил несколько действий над документом, в листе подписей отображаются дата и тип последнего действия (например, если пользователь сначала согласовал, затем утвердил документ, в листе подписей будет указано утверждение и его дата).

В листе согласования (утверждения, ознакомления) отображаются все согласования (утверждения, ознакомления).

Компонент «Лист резолюций»

Компонент формы «Лист резолюций» позволяет отображать таблицу со всеми резолюциями, наложенными на документ с данным файлом по форме.

Внешний вид компонента - таблица с границами. Заголовок таблицы выделен полужирным начертанием и имеет выравнивание по центру, перенастроить данные параметры нельзя. Форматирование содержимого таблицы определяется соответствующими настройками в редакторе форм.

Настраиваемые параметры компонента:

  • Язык

Рисунок 4.106. Настройки листа резолюций

Настройки листа резолюций

Выпадающий список «Язык» имеет следующие значения:

  • Не указан (по умолчанию);

  • далее список отображаемых локалей системы (из раздела «Региональные настройки» -> «Языки» те языки, у которых включено свойство «Показывать», сортировка в списке соответствует возрастанию их номера).

Значение «Не указан» соответствует языку авторизации пользователя.

Все данные берутся из текущей реализации резолюций. Каждый пункт каждой резолюции, наложенной на документ, соответствует одной строке таблицы. При этом столбец «Автор» объединяет в себе те строки, пункты которой соответствуют одной резолюции (вертикальное выравнивание значения столбца - по середине результирующей ячейки). Т.е. каждая результирующая ячейка поля «Автор» соответствует одной наложенной на документ резолюции, а каждая строка справа от этой ячейки - пункты данной резолюции.

Отображаемые данные таблицы резолюций сортируются сначала по дате создания каждой из наложенных на документ резолюций (по возрастанию), затем внутри каждой резолюции пункты сортируются по порядку.

Ширина столбцов:

  • Автор - 120 (100) px

  • Ответственный - 120 (100) px

  • Исполнители - 160 (100) px

  • Завершение - 100 px

Столбец «Название» имеет динамическую ширину, которая зависит от ширины доступной области. Если отсутствует возможность отобразить компонент с заданными значениями ширины по умолчанию, необходимо использовать их вторые/ минимальные значения (в скобках, если заданы).

Рисунок 4.107. Компонент «Лист резолюций» в режиме просмотра

Компонент «Лист резолюций» в режиме просмотра

Компонент не хранит изменяемых данных - его содержимое подставляется при генерации версии для печати и просмотра файла по форме. Поэтому в режиме редактирования вместо всего содержимого отображается текст-«заглушка»:

Данные заполняются автоматически в режиме просмотра и в версии для печати

Рисунок 4.108. Компонент «Лист резолюций» в режиме редактирования

Компонент «Лист резолюций» в режиме редактирования

Поведение компонента:

  • При клике мыши на компонент ничего не происходит. При табуляции компонент пропускается.

  • С компонента доступно копирование выделенной части в системный буфер обмена сочетаниями Ctrl+C, Ctrl+Insert, ПКМ → Копировать. В буфер попадает текстовое представление выделенной части.

Шрифт основного текста по умолчанию: Arial 12 px

#000000 - цвет текста

#ffffff - цвет фона

Компонент «Ход выполнения»

Компонент формы «Ход выполнения» позволяет отображать таблицу хода выполнения.

Внешний вид компонента - таблица с границами. Заголовок таблицы выделен полужирным начертанием и имеет выравнивание по центру, перенастроить данные параметры нельзя. Форматирование содержимого таблицы определяется соответствующими настройками в редакторе форм.

Настраиваемые параметры компонента:

  • Язык

Рисунок 4.109. Настройки хода выполнения

Настройки хода выполнения

Выпадающий список «Язык» имеет следующие значения:

  • Не указан (по умолчанию);

  • далее список отображаемых локалей системы (из раздела «Региональные настройки» -> «Языки» те языки, у которых включено свойство «Показывать», сортировка в списке соответствует возрастанию их номера).

Значение «Не указан» соответствует языку авторизации пользователя.

Содержимое таблицы полностью определяется ходом выполнения, который расположен в карточке документа, включая:

  • отображение удаленных этапов маршрута;

  • отображение будущих этапов маршрута;

  • отображение хода выполнения дочерних документов внутри основного;

  • формат отображения пользователей;

  • и т.п.

Ширина столбцов:

  • Ответственный - 120 (100) px

  • Автор - 120 (100) px

  • Начало - 100 px

  • Завершение - 100 px

  • Завершил - 120 (100) px

  • Комментарий - 150 (100) px

  • Отступ слева для каждого дочернего этапа от ближайшего родителя: 20 px

Столбец «Название» имеет динамическую ширину, которая зависит от ширины доступной области. Если отсутствует возможность отобразить компонент с заданными значениями ширины по умолчанию, необходимо использовать их вторые/ минимальные значения (в скобках, если заданы).

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

Рисунок 4.110. Компонент «Ход выполнения» в режиме просмотра

Компонент «Ход выполнения» в режиме просмотра

Компонент не хранит изменяемых данных - его содержимое подставляется при генерации версии для печати и просмотра файла по форме. Поэтому в режиме редактирования вместо всего содержимого отображается текст-«заглушка»:

Данные заполняются автоматически в режиме просмотра и в версии для печати

Рисунок 4.111. Компонент «Ход выполнения» в режиме редактирования

Компонент «Ход выполнения» в режиме редактирования

Поведение компонента:

  • При клике мыши на компонент ничего не происходит. При табуляции компонент пропускается.

  • С компонента доступно копирование выделенной части в системный буфер обмена сочетаниями Ctrl+C, Ctrl+Insert, ПКМ → Копировать. В буфер попадает текстовое представление выделенной части.

Шрифт основного текста по умолчанию: Arial 12 px

#000000 - цвет заголовка и содержимого (кроме будущих этапов)

#ffffff - цвет фона заголовка и содержимого (кроме будущих этапов)

#727071 - цвет содержимого будущих этапов

#efefef - цвет фона будущих этапов

Компонент «Ссылка на документ»

Компонент формы «Ссылка на документ» позволяет добавлять кликабельную ссылку на документ, который является основанием к документу по форме, содержащего этот компонент.

Внешне в режиме редактирования файла по форме компонент представляет собой выпадающий список оснований документа. В режиме просмотра компонент отображается в виде лейбла, являющегося активной ссылкой на выбранный документ- основание, никаким другим образом он визуально не выделен (за исключением изменения курсора на тип «pointer» при наведении).

Настраиваемые параметры компонента:

  • Обязательное поле

  • Язык

  • Форматная строка

По умолчанию, все флажки выключены, а поле ввода ничего не содержит.

Рисунок 4.112. Настройки ссылки на документ

Настройки ссылки на документ

Выпадающий список «Язык» имеет следующие значения:

  • Не указан (по умолчанию);

  • далее список отображаемых локалей системы (из раздела «Региональные настройки» -> «Языки» те языки, у которых включено свойство «Показывать», сортировка в списке соответствует возрастанию их номера).

Значение «Не указан» соответствует языку авторизации пользователя.

Поле ввода «Форматная строка» - текстовое поле, в котором могут быть указаны форматные параметры и/или простые текстовые значения, определяющие итоговый вид значения этого компонента.

Список форматных параметров:

  • ${document.summary} - краткое содержание документа;

  • ${document.createdate} - дата создания документа в формате ДД.ММ.ГГ;

  • ${document.author} - автор документа;

  • ${document.registerdate} - дата регистрации документа в формате ДД.ММ.ГГ;

  • ${document.type} - тип документа (подставляемое значение зависит от локали);

  • ${document.registry} - название реестра документа;

  • ${document.number} - номер документа.

Если в форматный параметр не может быть подставлено значение (например, документ не имеет номера), то при отображении в режимах заполнения и просмотра файла по форме соответствующий форматный параметр заменяется на пустую подстроку.

Поведение компонента в режиме редактирования.

В режиме редактирования компонент - это выпадающий список из значения «Не указан» (выбран по умолчанию) и списка документов-оснований для документа по форме, содержащего этот компонент.

Если у документа отсутствуют основания, список содержит только пункт «Не указан».

В качестве значений списка используются краткие содержания соответствующих документов. Сортировка в списке соответствует порядку следования оснований в РКК документа.

Если выбранный в компоненте документ был удален из списка оснований, при первом открытии файла по форме после этого действия значение компонента должно сброситься на значение по умолчанию «Не указан».

Если поле отмечено как обязательное к заполнению, то проверка на значение, не равное «Не указан», выполняется:

  • на этапе сохранения файла по форме либо при переключении режимов формы - поле подсвечивается красным цветом, выводится общая ошибка формы:

    Заполните обязательные поля

Рисунок 4.113. Обязательная ссылка на документ

Обязательная ссылка на документ

С выпадающего списка операции копирования, вырезания и вставки отсутствуют.

Поведение компонента в режиме просмотра.

В режиме просмотра компонент - это текст, составленный согласно форматной строке и являющийся активной ссылкой на документ. Пустое значение (= «Не указан») отображается как пустое значение (а не знаками подчеркивания, например).

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

С лейбла доступно копирование выделенной части в системный буфер обмена сочетаниями Ctrl+C, Ctrl+Insert, ПКМ → Копировать. В буфер попадает текстовое представление выделенной части. Недоступны действия вырезки и вставки.

Шрифт по умолчанию: Arial 12 px, цвет #333333

Компонент «Период повторения»

Компонент формы «Период повторения» позволяет задавать период повторения.

Внешне в режиме редактирования файла по форме компонент представляет собой выпадающий список, дополняющийся компонентом выбора периода повторения в зависимости от пункта.

В режиме просмотра компонент отображается в виде лейбла. Значения лейблов локале зависимы, а формат записи определяется выбранным пунктом выпадающего списка:

  • «Нет»:

    Нет

  • «По дням недели»:

    По дням недели: %полное_значение_дня_недели%

    Примеры полного значения дня недели: Понедельник, Среда

  • «По дням месяца»:

    По дням месяца: %день_(простой_формат)%

    Примеры дня месяца: 1 (а не 01), 15, 30

  • «Ежегодно»:

    Ежегодно: %день_(простой_формат)% %месяц_в_именительном_падеже%

    Примеры дня года: 1 апрель, 15 апрель

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

Если для компонента выбран пункт выпадающего списка, отличный от «Нет», но само значение не указано, то это значение списка не отображается на форме в режиме чтения (отображается пустое значение).

Настраиваемые параметры компонента:

  • Обязательное поле

  • Заблокировать от изменений пользователем

  • Язык

Все флажки по умолчанию выключены.

Рисунок 4.114. Настройки выпадающего списка

Настройки выпадающего списка

Флажок «Заблокировать от изменений пользователем» позволяет сделать недоступным выбор данных в данный компонент в режиме редактирования файла по форме.

Выпадающий список «Язык» имеет следующие значения:

  • Не указан (по умолчанию) - соответствует языку авторизации пользователя;

  • далее список отображаемых локалей системы (из раздела «Региональные настройки» -> «Языки» те языки, у которых включено свойство «Показывать», сортировка в списке соответствует возрастанию их номера).

Примечание

В рамках реализации задачи [3.5/FORMS60] эта настройка игнорируется: вне зависимости от выбранного пункта, значения компонента будут отображаться на языке авторизации пользователя.

Поведение компонента в режиме редактирования.

Выпадающий список имеет следующие значения:

  • Нет (выбран по умолчанию)

  • По дням недели

  • По дням месяца

  • Ежегодно

При выборе пункта, отличного от «Нет», справа от выпадающего списка добавится компонент выбора периода повторения.

Общие особенности поведения компонента выбора периода:

  • Компонент представляет собой поле с кнопкой. По нажатию на кнопку отобразится всплывающее окно, набор элементов которого определяется выбранным типом периода повторения.

  • Значение компонента по умолчанию задается в конфигураторе на этапе создания / редактирования формы (может быть пустым).

  • Пустое значение в режиме просмотра формы отображается как пустое значение (а не знаками подчеркивания, например).

  • Placeholder и ввод в компонент отсутствуют.

  • По нажатию на элемент таблицы его значение отобразится в поле. При повторном нажатии на выбранный элемент в таблице он более не будет отображаться в поле.

  • Компонент поддерживает множественный выбор.

  • Цвет выбранного элемента - #deefff.

  • Если ни одна ячейка таблиц не выбрана, поля подсвечиваются красным.

  • Если поле отмечено как обязательное к заполнению, то на этапе сохранения файла по форме либо при переключении режимов формы выполняется проверка на пустое значение - выводится общая ошибка формы:

    Заполните обязательные поля

Особенности поведения компонента выбора периода для типов повторения «По дням недели» и «По дням месяца»:

  • Компонент представлен однострочным полем с кнопкой.

  • Элементы всплывающего окна представлены:

    • «По дням недели» - днями недели в сокращенном варианте (Пн - Вс);

    • «По дням месяца» - днями месяца в простом формате (1 - 31).

  • Выбранные элементы отображаются в поле в виде текста. Новые элементы добавляются в поле через запятую по возрастанию их номеров.

  • Невмещающийся в поле текст скрывается.

  • Шрифт текста в списке - DroidSans Bold 13 px.

Особенности поведения компонента выбора периода для типа повторения «Ежегодно»:

  • Всплывающее окно содержит в себе следующие элементы:

    • Выпадающий список «Месяц». По умолчанию в списке выбран текущий месяц на сервере.

    • Кнопки перехода к предыдущему/следующему месяцу, по нажатию на которые отображаются дни предыдущего/следующего месяца соответственно. Переход по месяцам циклический: если выбрать месяц декабрь и нажать на кнопку «Следующий», отобразится январь. И если потом нажать на кнопку «Предыдущий», то в списке опять отобразится вкладка «Декабрь».

    • Дни. Вкладка отображает столько дней, сколько имеется в выбранном месяце. Для месяца «Февраль» отображаются 29 дней.

  • При смене месяца предыдущий выбор с элементов не снимается.

  • При повторном открытии всплывающего окна отображается вкладка текущего месяца (по умолчанию).

  • Значения выбранных элементов отображаются в поле в виде тегов формата %день_(простой_формат)% %мес% (где %мес% - первые три буквы месяца). Каждый новый тег элемента добавляется в конец поля.

  • Шрифт выпадающего списка «Месяц» - DroidSans Bold 16 px, остальных элементов - DroidSans Bold 13 px.

Высота выпадающего списка: 28 px

Высота однострочного поля ввода с кнопкой: 28 px

Высота многострочного поля ввода с кнопкой: 80 px

Ширина выпадающего списка по умолчанию: не указана

Ширина поля ввода с кнопкой: 175 px

Ширина кнопок выбора: 30 px

Шрифт по умолчанию: Arial 12 px, цвет #333333

Рисунок 4.115. Период повторения

Период повторения

Рисунок 4.116. Период повторения, тип «По дням недели»

Период повторения, тип «По дням недели»

Рисунок 4.117. Период повторения, тип «По дням месяца»

Период повторения, тип «По дням месяца»

Рисунок 4.118. Период повторения, тип «Ежегодно»

Период повторения, тип «Ежегодно»

Рисунок 4.119. Период повторения, размеры

Период повторения, размеры

Рисунок 4.120. Период повторения, размеры

Период повторения, размеры

Рисунок 4.121. Период повторения, размеры

Период повторения, размеры

Рисунок 4.122. Период повторения, размеры

Период повторения, размеры

Компонент «Ссылка на проект/портфель»

Компонент формы «Ссылка на проект/портфель» позволяет добавлять на форму ссылку на проект или портфель, открывать их местоположение в модуле «Проекты».

Внешне компонент представляет собой:

  • в режиме редактирования - поле ввода высотой, по умолчанию, в одну строку, с одним тегом и кнопкой, позволяющей вызвать диалог выбора нужного проекта/портфеля;

  • в режиме просмотра - лейбл, являющийся активной ссылкой на выбранный проект/портфель, никаким другим образом он визуально не выделен (за исключением изменения курсора на тип «pointer» при наведении).

Настраиваемые параметры компонента:

  • Обязательное поле

  • Заблокировать от изменений пользователем

  • Язык

По умолчанию, все флажки выключены.

Рисунок 4.123. Настройки ссылки на проект/портфель

Настройки ссылки на проект/портфель

Флажок «Заблокировать от изменений пользователем» позволяет сделать недоступным выбор данных в данный компонент в режиме редактирования файла по форме.

Выпадающий список «Язык» имеет следующие значения:

  • Не указан (по умолчанию);

  • далее список отображаемых локалей системы (из раздела «Региональные настройки» -> «Языки» те языки, у которых включено свойство «Показывать», сортировка в списке соответствует возрастанию их номера).

Значение «Не указан» соответствует языку авторизации пользователя.

Диалог выбора проекта / портфеля.

Выбор проекта / портфеля происходит с помощью диалога, открываемого по нажатию на кнопку справа от поля ввода .

Компонент обладает свойством, что при открытии диалога выбора в нем выделен ранее добавленный проект или портфель.

Диалог разделен на 3 основные части:

  • иерархия портфелей слева;

  • список портфелей / проектов выделенной ноды дерева;

  • кнопка «Выбрать» внизу.

Иерархия портфелей содержит дерево портфелей основного дерева из модуля «Проекты» (т.е. исключая избранное и личные проекты пользователя), доступных данному пользователю минимум на чтение.

Корневая нода дерева соответствует названию орг.структуры и обозначена иконкой «папки» , остальные ноды - иконкой портфеля .

Сортировка в дереве соответствует модулю «Проекты». По умолчанию, при каждом открытии диалога выделена и раскрыта корневая нода, остальное дерево свернуто.

Отображаемый список портфелей и проектов зависит от того, какая нода дерева выделена слева и содержит:

  • сначала дочерние портфели первого уровня вложенности относительно выделенной;

  • затем проекты, принадлежащие непосредственно выделенному портфелю.

Данный список также формируется согласно правам пользователя, вызвавшего данный диалог. Список сразу отображает все портфели и проекты (без постепенной догрузки). Выбор корневого элемента недоступен (в списке он всегда отсутствует).

Каждая строка списка содержит иконку портфеля или проекта и, соответственно, название портфеля или проекта.

Заголовком списка является название выделенной ноды дерева. Между собой портфели и проекты в списке сортируются согласно их следованию в модуле «Проекты».

Мультивыбор всегда отсутствует.

Кнопка «Выбрать» недоступна для нажатия, если не выделен ни один элемент списка (проект либо портфель). Как только хотя бы один элемент становится выделенным, кнопка становится доступной.

Описание интерфейса диалога:

  • Размер областей динамический: может быть изменен перемещением сплита. Сплит может быть перемещен не более, чем на 2/3 части соответствующей области по умолчанию (т.е. максимум на 172 px влево или 346 px вправо).

  • При открытии диалога, по умолчанию, горизонтальный скролл в списке отсутствует, независимо от контекста. Если ширина панели была уменьшена, то горизонтальный скролл появляется.

    Наличие вертикального скролла в списке, а также горизонтального и вертикального скроллов в дереве зависят от их содержимого.

  • По наведению курсора мыши над названием портфеля или проекта отображается тултип с соответствующей полной информацией.

  • В случае, если название проекта / портфеля не помещается в ширину списка, оно обрезается с добавлением многоточие, отступ от правого края - 21 px.

  • В случае, если название заголовка списка не помещается в ширину, оно обрезается с добавлением многоточие, отступ от правого края шапки - 9 px.

  • Диалог стандартный, с размерами: 800 x 500 px. Шрифт всех текстов - DroidSans 13 px.

  • Линии между плашками списка - пунктирные, все остальные сплошные.

  • Цвета компонентов:

    • #606060 - цвет всех текстов, кроме заголовка и кнопки «Выбрать»;

    • #ffffff - цвет фона диалога, текста заголовка и кнопки «Выбрать»;

    • #49b582 - цвет фона кнопки «Выбрать»;

    • #deefff - цвет выделенной строки;

    • #d6d6d6 - цвет всех линий;

    • #4c5256 - цвет заголовка.

Рисунок 4.124. Диалог выбора проекта / портфеля

Диалог выбора проекта / портфеля

Рисунок 4.125. Диалог выбора проекта / портфеля, размеры

Диалог выбора проекта / портфеля, размеры

Компонент на форме.

В режиме редактирования файла по форме в самом компоненте выбранная запись реестра отображается в виде, значение которого состоит из (в зависимости от того, какой элемент был выбран):

  • Проект: %выбранный_проект%

  • Портфель: %выбранный_портфель%

Текст внутри тега в режиме редактирования недоступен для изменения.

Значение компонента по умолчанию задается в конфигураторе на этапе создания / редактирования формы (может быть пустым). Placeholder отсутствует.

Пустое значение в режиме просмотра формы отображается как пустое значение (а не знаками подчеркивания, например).

По нажатию в режиме просмотра на ссылку, открытый документ сворачивается и происходит переход в модуль «Проекты» с выделением элемента из ссылки.

Альтернативные потоки событий:

  • Если пользователь не имеет доступа к выбранному проекту, он видит его выбранным, и при попытке перехода по активной ссылке на такой проект система уведомляет его о невозможности доступа (не сворачивая документ и не переходя в модуль «Проекты»):

    У вас нет прав на чтение данного проекта

    В режиме редактирования пользователь может сменить его на такой проект, к которому него есть доступ.

  • Если пользователь не имеет доступа к выбранному портфелю, он видит его выбранным, и при попытке перехода по активной ссылке на такой портфель система уведомляет его о невозможности доступа (не сворачивая документ и не переходя в модуль «Проекты»):

    У вас нет прав на чтение данного портфеля либо портфель был удален

    В режиме редактирования пользователь может сменить его на такой портфель, к которому него есть доступ.

  • Если проект / портфель был переименован, то при первом открытии документа с момента переименования необходимо изменить это название в компоненте. Данное действие выполнится только в том случае, если у пользователя есть доступ к этому проекту.

  • Если ссылка ведет на удаленный проект, при переходе должен открыться непосредственно удаленный проект (выделение в дереве не трогается). Если пользователь не имеет доступа к удаленному проекту, то выполняется соответствующий альтернативный поток.

  • Если ссылка ведет на удаленный портфель, необходимо не выполнять действие и выдавать ошибку:

    У вас нет прав на чтение данного портфеля либо портфель был удален

Если поле отмечено как обязательное к заполнению, то проверка на пустое значение выполняется:

  • при потере фокуса с компонента - поле подсвечивается красным, ошибки отсутствуют;

  • на этапе сохранения файла по форме либо при переключении режимов формы - поле также подсвечивается красным, но выводится общая ошибка формы:

    Заполните обязательные поля

Если поле помечено как заблокированное от изменений, то оно недоступно для выбора, но при этом может содержать в себе значение (например, значение по умолчанию).

С компонента доступно копирование выделенной части в системный буфер обмена сочетаниями Ctrl+C, Ctrl+Insert, ПКМ → Копировать. В буфер попадает текстовое представление выделенной части. Недоступны действия вырезки и вставки.

Высота поля ввода с кнопкой по умолчанию: 28 px

Ширина кнопки выбора: 30 px

Шрифт по умолчанию: Arial 12 px, цвет #333333

Рисунок 4.126. Компонент «Ссылка на проект/портфель» на форме, в состояниях

Компонент «Ссылка на проект/портфель» на форме, в состояниях

Компонент «Ссылка на реестр»

Компонент формы «Ссылка на реестр» позволяет добавлять кликабельную ссылку на определенную запись определенного реестра.

Внешне компонент представляет собой:

  • в режиме редактирования - поле с одним тегом и кнопкой, позволяющей вызвать диалог выбора нужной записи реестра;

  • в режиме просмотра - текст, являющийся активной ссылкой на документ (выбранную запись реестра), никаким другим образом он визуально не выделен (за исключением изменения курсора на тип «pointer» при наведении).

Настраиваемые параметры компонента:

  • Обязательное поле

  • Заблокировать от изменений пользователем

  • Заполнять ссылкой на родительскую запись реестра

  • Выберите реестр

  • Сопоставление

По умолчанию, все флажки выключены.

Рисунок 4.127. Настройки ссылки на реестр

Настройки ссылки на реестр

Флажок «Заблокировать от изменений пользователем» позволяет сделать недоступным выбор данных в данный компонент в режиме редактирования файла по форме.

Флажок «Заполнять ссылкой на родительскую запись реестра» позволяет при создании файла по форме автоматически присвоить значение компоненту родительской записью реестра, с которой была порождена запись в реестре ответа, причем независимо от значения по умолчанию, заданному в конфигураторе.

Таким образом, включенный флажок корректно отработает, только если форма, в которой находится данный компонент, является формой реестра-ответа и сам компонент находится вне динамической таблицы. В поле «Выберите реестр» должен быть указан родительский реестр для реестра ответа.

В случаях неправильной настройки:

  • компонента на форме (например, включен флажок и выбран некорректный реестр, либо компонент находится внутри динамической таблицы)

  • реестра и/или реестра ответа;

  • и т.п.

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

Выпадающий список «Выберите реестр» - выбор одного реестра из полного списка реестров. Из этого реестра должны браться записи для заполнения компонента.

Если у пользователя, который заполняет компонент, нет права доступа на получение списка записей реестра, при попытке открытия диалога выбора записей система должна выдать сообщение

Доступ к реестру запрещен

Сам диалог при этом не открывается.

Флажок «Сопоставление», который доступен для включения только в том случае, если в поле «Выберите реестр» выбран какой-либо реестр. При включении этого флажка становится активным компонент настройки сопоставления.

В «Поле реестра» можно выбрать какой-либо из идентификаторов компонентов выбранного выше реестра, а в «Поле-приемник формы» - какой-либо из идентификаторов компонентов формы, на которой расположена настраиваемая «Ссылка на реестр». Способы сопоставления и их параметры аналогичны таковым в реестрах (подраздел «Сопоставление»).

Механизм работы вышеописанной настройки таков. Начальные условия:

  • форма с компонентом «Ссылка на реестр» (причем сам компонент не должен находиться внутри динамической таблицы);

  • в настройках компонента выбран реестр и настроено сопоставление;

  • создан файл по этой форме;

  • этот файл открыт в режиме редактирования.

Пользователь выбирает какой-либо документ реестра в компоненте «Ссылка на реестр». В этот момент срабатывает сопоставление: данные из соответствующего документа реестра загружаются в поля редактируемого файла согласно настройке. Сохранения файла по форме в этот момент не происходит.

Пользователь может выбрать другой документ реестра в этом же компоненте «Ссылка на реестр», тогда для этого документа вновь срабатывает сопоставление.

Диалог выбора записи реестра.

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

Если в настройках компонента не выбран реестр, то по нажатию на эту кнопку необходимо не открывать диалог и выводить ошибку:

Не выбран реестр. Обратитесь к разработчику Synergy.

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

Компонент обладает свойством, что при открытии диалога выбора в нем всегда открыта первая страница списка без выделения выбранной записи.

Описание диалога и таблицы.

  • Отображаемые столбцы, названия и порядок их следования задаются настройками реестра, разделом «Поля формы реестра». Поле со статусом записи при этом всегда отсутствует.

  • Значения столбцов также определяются реестром. Все ячейки являются нередактируемыми (ни с помощью F2, ни с помощью Enter).

  • Сортировка записей по умолчанию также соответствуют настройкам реестра, разделу «Сортировка при отображении». Стрелка сортировки по умолчанию не отображается.

  • Изменение сортировки непосредственно в таблице по нажатию на шапку столбца: сначала по возрастанию , потом по убыванию . При этом сортировка в столбцах с компонентами «Динамическая таблица», «Ссылка на документ», «Свойства документа» и «Ссылка на файл в хранилище» отсутствует.

    Сортировка осуществляется по всем страницам реестра, пользователь остается на той странице, в которой он его выполнил.

  • Поиск записей производится только по тем записям, которые доступны пользователю, и по всем столбцам. Исключением являются те столбцы, по которым не осуществляется сортировка. Поиск производится по нажатию на клавишу «Enter» либо на иконку лупы, его результаты фильтруют отображаемый список. Пустой запрос поиска соответствует отображению всех записей реестра. Placeholder поля:

    Поиск записей

  • На одной странице отображается максимум 15 записей реестра. Переход к конкретной / последующим / предыдущим страницам осуществляется с помощью пагинатора.

    Страница, которая содержит менее 15 строк, не должна дополняться значениями из предыдущей страницы.

    Например. Всего записей 20. Первая страница отображает записи 1-15, вторая (последняя) страница отображает записи 16-20 (а не 5-20).

    Формат отображения текущей страницы: A / B, где А - это номер текущей страницы, В - общее количество страниц. Если поиск выдал пустой результат, то в пагинаторе отображается значение 1 / 1.

    По нажатию на данную область становится доступным поле ввода, которое содержит только номер текущей страницы. Значение в поле ввода выделено, доступен ввод только цифр 0-9. Ввод заканчивается нажатием клавиши Enter.

    В случае, если номер введенной страницы выходит за рамки общего количества страниц (от 1 до В), активной должна остаться текущая страница.

    Рисунок 4.128. Пагинатор

    Пагинатор

    Рисунок 4.129. Пагинатор, размеры

    Пагинатор, размеры

  • При наличии в таблице 5 и менее столбцов, ширина каждого одинаково пропорциональна и в сумме составляет общую ширину таблицы (780 px).

    При наличии в таблице 6 и более столбцов, ширина каждого, по умолчанию, фиксируется в 150 px, появляется горизонтальный скролл.

    Вертикальный скролл всегда отсутствует.

    Размер столбцов динамический: может быть изменен перемещением их границ, минимальная ширина столбца при этом должна быть 32 px.

    Если при отсутствующем горизонтальном скролле изменяется ширина столбца таким образом, что суммарная ширина всех столбцов превышает 780 px, в таблице появляется горизонтальный скролл.

    Аналогично, если при наличии горизонтального скролла изменяется ширина столбца таким образом, что суммарная ширина всех столбцов не превышает 780 px, горизонтальный скролл не отображается.

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

  • В таблице отсутствует функция переноса по буквам / словам. Поэтому в случае, если текстовое значение ячейки не помещается в ширину столбца, оно обрезается с добавлением многоточие, отступ от правого края ячейки - не менее 12 px.

    По наведению курсора мыши над любой ячейкой таблицы отображается тултип с соответствующей полной информацией.

  • По наведению курсором мыши над строкой она выделяется цветом #f5f5dc. По нажатию на строку происходит выделение всей строки (а не ячейки) цветом #deefff.

  • Выделение нескольких строк отсутствует. Перемещение внутри таблицы с помощью Tab отсутствует. Перемещение с помощью курсорных стрелок «↑» и «↓» присутствует, а с помощью «←» и «→» - отсутствует.

  • Контекстное меню в таблице отсутствует.

  • Если не выбрана ни одна запись, кнопка «Выбрать» неактивна.

  • Нажатие других кнопок мыши/клавиш клавиатуры не должно обрабатываться.

  • Диалог стандартный, с размерами: 800 x 612 px. Шрифт всех текстов в таблице - DroidSans 14 px.

  • Межстрочные линии - пунктирные, все остальные - сплошные.

  • Цвета компонентов:

    • #d6d6d6 - цвет всех линий;

    • #4c5256 - цвет заголовка;

    • #606060 - цвет всех текстов, кроме заголовка и кнопки «Выбрать»;

    • #ffffff - цвет фона диалога и строки №1, текста заголовка и кнопки «Выбрать»;

    • #fbfbfb - цвет строки №2;

    • #49b582 - цвет фона кнопки «Выбрать»;

    • #deefff - цвет выделенной строки;

    • #f5f5dc - цвет строки с наведенным курсором.

Рисунок 4.130. Диалог выбора записи реестра

Диалог выбора записи реестра

Рисунок 4.131. Диалог выбора записи реестра

Диалог выбора записи реестра

Рисунок 4.132. Диалог выбора записи реестра, размеры

Диалог выбора записи реестра, размеры

Рисунок 4.133. Диалог выбора записи реестра, размеры

Диалог выбора записи реестра, размеры

Рисунок 4.134. Диалог выбора записи реестра, размеры

Диалог выбора записи реестра, размеры

Компонент на форме.

При выборе записи реестра из проигрывателя форм пользователю отображаются только записи, доступные ему согласно настроенным централизованным фильтрам реестра:

Рисунок 4.135. Диалог выбора записи реестра, проигрыватель форм

Диалог выбора записи реестра, проигрыватель форм

В левой части окна располагается дерево фильтров реестра, доступных пользователю - как централизованных, так и пользовательских. Ширина блока дерева фильтров по умолчанию - 200px. Ширину блока можно изменять: минимальный размер - 92px, максимальный - 592px (2/3 от общего размера диалога).

Порядок отображения фильтров в диалоге выбора записи такой же, как и в навигаторе реестров в клиентской части.

Примечание:

В случае использования модифицированного компонента «Ссылка на реестр» блок фильтров реестра в нем может не отображаться по умолчанию, и это не является ошибкой Synergy. В этом случае требуется дополнительно обновлять внешний вид для каждого случая.

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

В режиме редактирования файла по форме в самом компоненте выбранная запись реестра отображается в виде тега, значение которого состоит из значений полей, отмеченных в реестре как «значащее содержимое» и одновременно «отображаемых при просмотре реестра», разделенных «-». Текст внутри тега в режиме редактирования недоступен для изменения.

Примечание.

Если значение тега получается пустым (нет настроенных значащих содержимых либо таковые не отображаются в реестре), то значением компонента должна стать статическая подпись «Документ».

Значение компонента по умолчанию задается в конфигураторе на этапе создания / редактирования формы (может быть пустым). Placeholder отсутствует.

Пустое значение в режиме просмотра формы отображается как пустое значение (а не знаками подчеркивания, например).

По нажатию в режиме просмотра на ссылку, открытый документ сворачивается, открывается другой документ реестра из ссылки.

Альтернативные потоки событий.

Если пользователь не имеет доступа к выбранному реестру, он видит его выбранным, и при попытке:

  • перехода по активной ссылке на запись такого реестра (даже если она удалена либо сам реестр скрыт);

  • открытия диалога выбора записи реестра;

система уведомляет его о невозможности доступа:

Доступ к реестру запрещен

Если же пользователь имеет доступ к выбранному реестру, то ссылка на удаленную запись реестра (в т.ч. скрытого реестра) успешно открывает соответствующий документ.

Если поле отмечено как обязательное к заполнению, то проверка на пустое значение выполняется:

  • при потере фокуса с компонента - поле подсвечивается красным, ошибки отсутствуют;

  • на этапе сохранения файла по форме либо при переключении режимов формы - поле также подсвечивается красным, но выводится общая ошибка формы:

    Заполните обязательные поля

Если поле помечено как заблокированное от изменений, то оно недоступно для выбора, но при этом может содержать в себе значение (например, значение по умолчанию либо родительскую запись реестра).

С компонента доступно копирование выделенной части в системный буфер обмена сочетаниями Ctrl+C, Ctrl+Insert, ПКМ → Копировать. В буфер попадает текстовое представление выделенной части. Недоступны действия вырезки и вставки.

Высота поля ввода с кнопкой по умолчанию: 28 px

Ширина кнопки выбора: 30 px

Шрифт по умолчанию: Arial 12 px, цвет #333333

Рисунок 4.136. Компонент «Ссылка на реестр» на форме

Компонент «Ссылка на реестр» на форме

Компонент «Ссылка на адресную книгу»

Компонент формы «Ссылка на адресную книгу» позволяет добавлять кликабельную ссылку на определенную запись адресной книги.

Внешне компонент представляет собой:

  • в режиме редактирования - поле с одним тегом и кнопкой, позволяющей вызвать диалог выбора нужной записи адресной книги;

  • в режиме просмотра - текст, являющийся активной ссылкой на выбранную запись адресной книги, никаким другим образом он визуально не выделен (за исключением изменения курсора на тип «pointer» при наведении).

Настраиваемые параметры компонента:

  • Обязательное поле

  • Заблокировать от изменений пользователем

По умолчанию, все флажки выключены.

Рисунок 4.137. Настройки ссылки на адресную книгу

Настройки ссылки на адресную книгу

Флажок «Заблокировать от изменений пользователем» позволяет сделать недоступным выбор данных в данный компонент в режиме редактирования файла по форме.

Диалог выбора записи адресной книги

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

Диалог содержит таблицу с записями адресной книги согласно типу контакта. В таблице можно выбрать лишь одну запись. Содержимое таблицы зависит от выбранного типа контакта и определяется выпадающим списком (Люди / Организации). При выборе пункта из выпадающего списка таблица отображает первую страницу данной выбранной таблицы.

Компонент обладает свойством, что при открытии диалога выбора в нем всегда открыта первая страница таблицы «Люди» без выделения выбранной записи.

Описание диалога и таблицы

  • Выпадающий список содержит два значения:

    • Люди (выбран по умолчанию);

    • Организации.

  • Отображаемые столбцы определяются типом контакта (выбранным пунктом выпадающего списка):

    • Люди:

      • Фамилия;

      • Имя;

      • Отчество;

      • Организация;

    • Организации:

      • Организация;

      • Адрес.

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

    В таблице типа контакта «Люди» столбец «Организация» отображает только лишь первое значение в списке организаций, указанных для данного контакта.

  • Все ячейки являются нередактируемыми (ни с помощью F2, ни с помощью Enter).

  • Сортировка отсутствует - записи отображаются в том же порядке, что и в самой адресной книге, а именно по возрастанию значений столбца:

    • тип контакта «Люди» - «Фамилия»;

    • тип контакта «Организации» - «Организация».

  • Поиск записи осуществляется по всем страницам выбранного типа контакта по всем столбцам. Поиск производится по нажатию на клавишу «Enter» либо на иконку лупы, его результаты фильтруют отображаемый список. Пустой запрос поиска соответствует отображению всех записей адресной книги. Placeholder поля:

    Поиск записей

Примечание:

По умолчанию поиск выполняется после ввода четвертого символа поискового запроса. Минимальное количество символов запроса настраивается в mysql с помощью параметра ft_min_word_len. По умолчанию он равен 4, минимальное допустимое значение равно 1. Для изменения этого параметра необходимо:

  1. В файле /etc/mysql/my.cnf в секцию [mysqld] добавить строку:

ft_min_word_len = #

где # - натуральное число.

  1. Перезапустить mysql.

  • На одной странице отображается максимум 15 записей адресной книги. Переход к конкретной / последующим / предыдущим страницам осуществляется с помощью пагинатора.

  • Скроллы отсутствуют.

  • В таблице отсутствует функция переноса по буквам / словам - в случае, если текстовое значение ячейки не помещается в ширину столбца, оно обрезается с добавлением многоточие.

  • По наведению курсором мыши над строкой она выделяется цветом #f5f5dc. По нажатию на строку происходит выделение всей строки (а не ячейки) цветом #deefff.

  • Выделение нескольких строк отсутствует. Перемещение внутри таблицы с помощью Tab отсутствует и курсорных стрелок отсутствует.

  • Если не выбрана ни одна запись, кнопка «Выбрать» неактивна.

  • Контекстное меню в таблице отсутствует.

  • Нажатие других кнопок мыши/клавиш клавиатуры не обрабатывается.

  • Диалог стандартный, с размерами: 800 x 612 px. Шрифт всех текстов в таблице - DroidSans 14px.

  • Межстрочные линии - пунктирные, все остальные - сплошные.

Рисунок 4.138. Диалог выбора записи адресной книги (Люди)

Диалог выбора записи адресной книги (Люди)

Рисунок 4.139. Диалог выбора записи адресной книги (Организации)

Диалог выбора записи адресной книги (Организации)

Рисунок 4.140. Диалог выбора записи адресной книги, размеры

Диалог выбора записи адресной книги, размеры

Рисунок 4.141. Диалог выбора записи адресной книги, размеры

Диалог выбора записи адресной книги, размеры

Рисунок 4.142. Диалог выбора записи адресной книги, размеры

Диалог выбора записи адресной книги, размеры

Рисунок 4.143. Диалог выбора записи адресной книги, цвета

Диалог выбора записи адресной книги, цвета

Компонент на форме

В режиме редактирования файла по форме в самом компоненте выбранная запись адресной книги отображается как в виде тега, значение которого состоит из:

  • тип контакта «Люди» - %Фамилия% %Имя% %Отчество% (%Организация%)

  • тип контакта «Организации» - %Организация% (%Адрес%)

Наличие всех параметров определяется выбранным контактом. Если параметр в скобках отсутствует, то они (скобки)также не отображаются. Текст внутри тега в режиме редактирования недоступен для изменения. Placeholder отсутствует.

Значение компонента не может быть задано в конфигураторе, т.к. таблица диалога выбора не содержит ни одной записи. При этом пустое значение в режиме просмотра формы отображается как пустое значение (а не знаками подчеркивания, например).

При наведении курсором над ссылкой, он изменяет свой тип на pointer. Переход к записи адресной книги осуществляется по клику на компоненте в режиме просмотра, далее происходит следующее:

Ссылка на общедоступный контакт:

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

  2. Открывается раздел «Адресная книга» модуля «Сотрудники».

  3. В нем выделяется узел «Люди», либо «Организации» (в зависимости от типа контакта).

  4. Выделяется плашка контакта, соответствующего ссылке, а в панели с подробной информацией отображается информация о выделенном контакте в режиме чтения.

Ссылка на личный, либо удаленный общедоступный контакт:

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

  2. Открывается раздел «Адресная книга» модуля «Сотрудники».

  3. В нем выделяется узел «Люди», либо «Организации» (в зависимости от типа контакта).

  4. В начало текущего списка контактов для этого узла добавляется выделенная плашка контакта, соответствующего ссылке. Также в панели с подробной информацией отображается информация выделенного контакта в режиме чтения.

  5. При переходе в другой раздел и последующем возврате в узел из пункта 2 плашка данного контакта более не отображается.

Если поле отмечено как обязательное к заполнению, то выполняется проверка на пустое значение:

  • при потере фокуса с компонента - поле подсвечивается красным, ошибки отсутствуют;

  • на этапе сохранения файла по форме либо при переключении режимов формы - поле также подсвечивается красным, но выводится общая ошибка формы:

    Заполните обязательные поля

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

Высота поля ввода с кнопкой по умолчанию: 28px

Ширина кнопки выбора: 30px

Шрифт по умолчанию: Arial 12px, цвет #333333

Рисунок 4.144. Компонент «Ссылка на адресную книгу» на форме (режим редактирования)

Компонент «Ссылка на адресную книгу» на форме (режим редактирования)

Рисунок 4.145. Компонент «Ссылка на адресную книгу» на форме (режим чтения)

Компонент «Ссылка на адресную книгу» на форме (режим чтения)

Компонент «Свойства документа»

Компонент формы «Свойства документа» позволяет отображать заранее настроенное свойство документа.

Внешне компонент представляет собой текстовую подпись (лейбл) либо поле ввода. Компонент не хранит изменяемых данных - его содержимое подставляется при генерации версии для печати и просмотра файла по форме. Таким образом, компонент отображается:

  • в редакторе форм - как недоступное для редактирования однострочное поле ввода с типом данных свойства;

  • в режиме редактирования - как лейбл с типом данных свойства;

  • в режиме просмотра - как лейбл со значением свойства.

Настраиваемые параметры компонента (илл. «Настройки компонента «Свойства документа»»):

  • Язык

  • Тип данных

Рисунок 4.146. Настройки свойств документа

Настройки свойств документа

Выпадающий список «Язык» имеет следующие значения:

  • Не указан (по умолчанию);

  • далее список отображаемых локалей системы (из раздела «Региональные настройки» -> «Языки» те языки, у которых включено свойство «Показывать», сортировка в списке соответствует возрастанию их номера).

Значение «Не указан» соответствует языку авторизации пользователя.

Выпадающий список «Тип данных» имеет следующие значения:

  • Номер документа (выбран по умолчанию)

  • Краткое содержание

  • Дата создания (в формате ДД.ММ.ГГ)

  • Автор (в формате Фамилия И.О.)

  • Дата регистрации (в формате ДД.ММ.ГГ)

  • Тип документа (локале зависимое значение)

  • Реестр (которому принадлежит данный документ)

Тип данных определяет итоговый вид значения этого компонента. Если в компонент формы не может быть подставлено значение (например, документ не имеет номера либо дату регистрации), то соответствующее свойство документа должно заменяться на пустую подстроку.

Поведение компонента:

  • При клике мыши на компонент ничего не происходит. При табуляции компонент пропускается.

  • С компонента доступно копирование выделенной части в системный буфер обмена сочетаниями Ctrl+C, Ctrl+Insert, ПКМ → Копировать. В буфер попадает текстовое представление выделенной части.

Высота поля ввода: 26 px

Шрифт по умолчанию: Arial 12 px, цвет #333333

Компонент «Ссылка на файл в Хранилище»

Компонент формы «Ссылка на файл в Хранилище» позволяет добавлять на форму ссылку на файл, открывать как файл, так и его местоположение в хранилище.

Внешне компонент представляет собой:

  • в режиме редактирования:

    • файл не выбран - кнопка «Выбрать файл», по нажатию которой открывается диалог выбора файла;

    • файл выбран - две ссылки с иконками изменения и удаления:

      %иконка% %Название_файла.расширение%

      %Полный_путь_до_файла/Название_файла.расширение%

  • в режиме просмотра:

    • файл не выбран - лейбл «Файл не выбран»;

    • файл выбран - две ссылки:

      %иконка% %Название_файла.расширение%

      %Полный_путь_до_файла/Название_файла.расширение%

Настраиваемые параметры компонента:

  • Обязательное поле

  • Заблокировать от изменений пользователем

  • Открывать в отдельном окне

По умолчанию, все флажки выключены.

Рисунок 4.147. Настройки ссылки на файл в хранилище

Настройки ссылки на файл в хранилище

Флажок «Заблокировать от изменений пользователем» позволяет сделать недоступным выбор данных в данный компонент в режиме редактирования файла по форме.

Флажок «Открывать в отдельном окне» позволяет по нажатию на любую из ссылок в данном компоненте открывать их в новой вкладке текущего окна браузера.

Диалог выбора папки / файла.

Выбор файла происходит с помощью диалога, открываемого по нажатию на кнопку «Выбрать файл».

Компонент обладает свойством, что при открытии диалога выбора в нем не выделен ранее добавленный файл.

Кроме того, компонент обладает следующими свойствами, от которых зависит дальнейшее поведение диалога:

  • отображать ли личную папку пользователя («Мои документы»);

  • выбор папки либо файла;

  • если файла, то доступен ли их множественный выбор;

  • отображать ли кнопку добавления новой папки.

Примечание.

Компонент формы «Ссылка на файл в хранилище» обладает только следующими свойствами (и изменить их нельзя): личная папка пользователя не отображается, доступен единичный выбор файла, без возможности добавления новой папки.

Диалог разделен на 3 основные части:

  • единственный раздел «Все папки» с иерархией папок слева;

  • список папок / файлов выделенной ноды дерева;

  • кнопки «Создать папку» (опционально) и «Выбрать» внизу.

Иерархия папок всегда содержит дерево папок, доступных данному пользователю минимум на чтение (может быть несколько корневых элементов). Для компонента «Ссылка на файл в хранилище» папка «Мои документы» отсутствует.

Сортировка в дереве соответствует модулю «Хранилище». По умолчанию, при каждом открытии диалога выделена первая нода дерева, а раскрыты все ноды первого уровня.

Каждая нода дерева помечена иконкой папки .

Примечание.

В связи с особенностями поведения дерева папок в системе, каждая папка (за исключением по умолчанию раскрытых) всегда отображается с иконкой «Развернуть», даже если вложенные папки у неё отсутствуют. Таким образом, только после разворачивания папки без вложенных папок иконка «Свернуть» / «Развернуть» исчезнет, и это не является ошибкой диалога.

Отображаемый список папок и файлов зависит от того, какая нода дерева выделена слева и от свойства выбора папки либо файла. Список может содержать:

  • если доступен выбор файла:

    • сначала дочерние папки первого уровня вложенности относительно выделенной;

    • затем файлы, принадлежащие непосредственно выделенной папке;

  • если доступен выбор папки - список дочерних папок первого уровня вложенности относительно выделенной (файлы в таком режиме не отображаются).

Данный список также формируется согласно правам пользователя, вызвавшего данный диалог. Список сразу отображает все папки и файлы (без постепенной догрузки).

Каждая строка списка содержит иконку папки или файла, название папки / файла с расширением.

Заголовком списка является название выделенной ноды дерева. Между собой папки и файлы в списке сортируются по возрастанию их названия (сначала 0-9, затем A-Z, затем А-Я).

В зависимости от свойства разрешен ли мультивыбор файлов, список обладает следующими поведением:

  • не разрешен:

    • доступно выделение только одной строки, новое выделение отменяет предыдущее;

    • развыделить выбранную строку нельзя;

    • двойным кликом по строке папки происходит его открытие с выделением в дереве;

    • двойным кликом по строке файла происходит его выделение и выбор (с закрытием диалога);

  • разрешен:

    • доступно выделение нескольких строк, новое выделение не отменяет предыдущее, а добавляет его к выбранным;

    • можно развыделить все выбранные строки;

    • двойным кликом по строке папки происходит его открытие с выделением в дереве (выделение на папке не остается);

    • двойной клик по строке файла отрабатывает как развыделение и новое выделение этой же строки (выбор с закрытием диалога отсутствует).

Если компонент обладает свойством добавления новой папки, то внизу слева добавляется кнопка «Создать папку», по нажатию которой поверх диалога выбора папки / файла открывается диалоговое окно «Введите название папки» с единственным полем ввода названия и кнопкой «Готово».

Примечание.

На момент реализации данного диалога в итерациях 3.4-3.7 реализовывать данное свойство диалога не нужно, в связи с этим дальнейшее его описание пока отсутствует.

Доступность кнопки «Выбрать» зависит от свойства выбора папки либо файла:

  • выбор папки - недоступна для нажатия, если не выделена ни одна папка, как только хотя бы одна папка становится выделенной, кнопка становится доступной;

  • выбор файла - недоступна для нажатия, если не выделен ни один файла либо если выделена хоть одна папка, как только хотя бы один файл становится выделенным (при обязательном отсутствии выделенных папок), кнопка становится доступной.

Описание интерфейса диалога:

  • Размер областей динамический: может быть изменен перемещением сплита. Сплит может быть перемещен не более, чем на 2/3 части соответствующей области по умолчанию (т.е. максимум на 172 px влево или 346 px вправо).

  • При открытии диалога, по умолчанию, горизонтальный скролл в списке отсутствует, независимо от контекста. Если ширина панели была уменьшена, то горизонтальный скролл появляется.

    Наличие вертикального скролла в списке, а также горизонтального и вертикального скроллов в дереве зависят от их содержимого.

  • По наведению курсора мыши над названием папки или файла отображается тултип с соответствующей полной информацией.

  • В случае, если название папки / файла не помещается в ширину списка, оно обрезается с добавлением многоточие, отступ от правого края - 21 px.

  • В случае, если название заголовка списка не помещается в ширину, оно обрезается с добавлением многоточие, отступ от от правого края шапки - 9 px.

  • Диалог стандартный, с размерами: 800 x 500 px. Шрифт всех текстов - DroidSans 13 px.

  • Линии между плашками списка - пунктирные, все остальные сплошные.

  • Цвета компонентов:

    • #d6d6d6 - цвет всех линий;

    • #4c5256 - цвет заголовка;

    • #606060 - цвет всех текстов, кроме заголовка и кнопки «Выбрать»;

    • #ffffff - цвет фона диалога, текста заголовка и кнопки «Выбрать»;

    • #49b582 - цвет фона кнопки «Выбрать»;

    • #deefff - цвет выделенной строки.

Рисунок 4.148. Диалог выбора файла без личной папки пользователя

Диалог выбора файла без личной папки пользователя

Рисунок 4.149. Диалог выбора папки с личной папкой пользователя и кнопкой «Создать папку»

Диалог выбора папки с личной папкой пользователя и кнопкой «Создать папку»

Компонент на форме.

В режиме редактирования:

  • файл не выбран - кнопка «Выбрать файл», по нажатию которой открывается диалог выбора файла;

  • файл выбран - две ссылки:

    %иконка% %Название_файла.расширение%

    %Полный_путь_до_файла/Название_файла.расширение%

    а также иконки (справа от правого верхнего угла):

    • «Изменить», по нажатию на которую открывается диалог выбора файла;

    • «Удалить», по нажатию на которую файл из компонента удаляется.

В режиме просмотра:

  • файл не выбран - лейбл «Файл не выбран»;

    Шрифт по умолчанию: Arial 12 px, цвет #333333

  • файл выбран - две ссылки:

    %иконка% %Название_файла.расширение%

    %Полный_путь_до_файла/Название_файла.расширение%

    Шрифт имени файла по умолчанию: Arial 12 px, цвет #333333

    Шрифт пути по умолчанию: Arial 10 px, цвет #239260

Текст ссылок никаким образом визуально не выделен (за исключением изменения курсора на тип «pointer» при наведении).

Переход по ссылкам.

По нажатию на ссылку с названием файла открывается файл стандартными системными средствами просмотра (таким же, какой используется в модуле «Хранилище»).

По нажатию на ссылку с путем открывается конечная папка пути на той странице, где находится файл, с его выделением.

Эти действия происходят либо внутри данного окна Synergy (флажок «Открывать в отдельном окне» выключен), либо в новой вкладке браузера (соответственно, флажок включен).

Альтернативные потоки событий:

  • Если права на просмотр папки (и, соответственно, содержащегося в нем файла) в хранилище отсутствуют, необходимо изменить иконку расширения на иконку «неизвестен», а вместо ссылки на путь отображать текст ошибки:

    Доступ к файлу запрещен

    По нажатию на любую из двух ссылок (файл/путь) необходимо не выполнять действие и выдавать ошибку:

    Элемент был удален либо у вас нет прав на просмотр

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

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

  • Если файл был удален, то при первом открытии файла по форме с момента удаления необходимо изменить иконку расширения на иконку «неизвестен», а вместо ссылки на путь отображать текст ошибки:

    Файл был удален

    По нажатию на любую из двух ссылок (файл/путь) необходимо не выполнять действие и выдавать ошибку:

    Элемент был удален либо у вас нет прав на просмотр

Если поле отмечено как обязательное к заполнению, то проверка на пустое значение выполняется на этапе сохранения файла по форме либо при переключении режимов формы - кнопка подсвечивается красным, выводится общая ошибка формы:

Заполните обязательные поля

Если поле помечено как заблокированное от изменений, то оно недоступно для выбора. Если файл не задан из конфигуратора - кнопка «Выбрать файл» недоступна, если же задан - то в режиме редактирования файла по форме отсутствуют иконки изменения и удаления.

С компонента доступно копирование выделенной части в системный буфер обмена сочетаниями Ctrl+C, Ctrl+Insert, ПКМ → Копировать. В буфер попадает текстовое представление выделенной части.

Рисунок 4.150. Кнопка «Выбрать файл» в состояниях

Кнопка «Выбрать файл» в состояниях

Рисунок 4.151. Выбранный файл в режиме редактирования

Выбранный файл в режиме редактирования

Рисунок 4.152. Выбранный файл в режиме просмотра

Выбранный файл в режиме просмотра

Рисунок 4.153. Выбранный файл в режиме редактирования, размеры

Выбранный файл в режиме редактирования, размеры

Компонент «Пользовательский компонент»

Компонент формы «Пользовательский компонент» с иконкой характеризуется единственной настройкой «Выберите компонент» в виде выпадающего списка, который содержит все пользовательские компоненты, в которых включена опция «Использовать в формах» (см. Пользовательские компоненты).

Примечание

Уже выбранное значение «Пользовательского компонента» продолжает сохранять свое значение, даже если в настройках самого компонента позже отключили возможность его использования в формах.

Рисунок 4.154. Пользовательский компонент

Пользовательский компонент

Рисунок 4.155. Настройки компонента «Пользовательский компонент»

Настройки компонента «Пользовательский компонент»

Рекомендуется описывать логику работы компонента в скриптовой части (поле «JavaScript код»), в противном случае невозможно гарантировать возможность изменения компонентом других компонентов формы.

Внешний вид компонента в проигрывателе формы описывается в поле «HTML код». Если это поле ничего не содержит, либо содержит некорректные данные, компонент никак не отображается.

В редакторе форм компонент отображается в виде нередактируемого однострочного поля, которое отображает название выбранного пользовательского компонента либо заглушку «Пользовательский компонент» (если таковой еще не выбран в настройках).

Важно! Данный компонент не участвует в местах, где могут использоваться какие-либо другие компоненты формы:

  • отсутствует в полях формы реестра;

  • отсутствует в фильтрах реестра;

  • не учитывается при поиске в реестре;

  • не участвует в сортировке реестра;

  • отсутствует во всех видах сопоставлений;

  • не учитывается во всех спец.процессах (например, в условном переходе).

Отображение значения данного компонента в печатном представлении формы зависит от реализации самого пользовательского компонента.

Для того, чтобы пользователький компонент присутствовал в сопоставлениях, необходимо, чтобы в его модели были реализованы методы setAsfData и getAsfData (см. «Создание нового компонента»), а также чтобы возвращалась структура компонента вида:

{ 
    "id": "id", 
    "type": "type", 
    "value": "value", 
    "key": "key"
}

Для снятия остальных ограничений достаточно реализации метода getAsfData и корректности возвращаемой структуры.

Сохранение формы

Для сохранения введенных данных разработчик Synergy нажимает на кнопку:

  • «Сохранить» для сохранения текущей версии формы;

  • «Сохранить версию» для сохранения новой версии формы.

При нажатии на кнопку «Сохранить версию» пользователю должно быть показано предупреждение с текстом: «Вы действительно хотите сохранить изменения в качестве новой версии формы? Это приведет к тому, что структура файлов, созданных по этой форме до ее изменения, не будет изменена. Новая структура формы будет применена только ко вновь создаваемым файлам. Продолжить?» с вариантами «Да» и «Нет».

Номер версии формы увеличивается при каждом открытии формы на редактирование, также есть возможность указать его вручную: если необходимо изменить форму (набор, тип полей и т.д.) и при этом преобразовать имеющиеся данные по этой форме к новому формату, то при изменении формы необходимо оставить ей старый номер версии (сам процесс преобразования, в данном случае, осуществляется при первом после изменения открытии файла по форме).

Обязательными условиями для сохранения являются (иначе исполняются альтернативные потоки событий 2-4):

  • отсутствие на форме компонентов с одинаковыми именами (идентификаторами);

  • наличие названия формы на всех трех языках;

  • наличие хотя бы одного компонента в форме.

    Замечание

    Валидация данных на вышеописанные условия должна происходить только по нажатию на кнопку «Сохранить» / «Сохранить версию».

Для возврата к списку форм разработчик Synergy нажимает на кнопку «Назад». Исполняется альтернативный поток событий 5.

Альтернативные потоки событий.

Альтернативный поток 1. Элемент добавляется в ячейку, уже содержащую элемент.

Система предоставит диалоговое окно с предложением заменить элемент: «ОК» для замены, «Отмена» - для отмены действия.

Альтернативный поток 2. На форме присутствуют компоненты с одинаковыми идентификаторами.

Система информирует «В форме имеются компоненты с одинаковым идентификатором название_идентификатора». Такие компоненты подсвечиваются красным цветом, действие не выполняется и окно не закрывается.

Альтернативный поток 3. Не указано название формы на любом из языков.

Система информирует «Не указано наименование формы». Окно не закрывается.

Альтернативный поток 4. Форма не содержит ни одного компонента.

Система информирует «Пустая форма». Окно не закрывается.

Альтернативный поток 5. Пользователь отменяет создание / редактирование формы, нажав на кнопку «Назад».

Откроется диалоговое окно подтверждения действия. «Отмена» - вернуться к редактору форм, «ОК» - изменения не принимаются, окно закрывается, открывается список форм.