Виды просмотра

Для создания нового вида просмотра на языке скриптов необходимо при заполнении поля класс указать базовый вид просмотра ‘ПРОСМОТР СПИСКА ДАННЫХ’. Но совсем не обязательно каждый вид просмотра описывать с нуля. В разделе ‘ПРОСМОТР СПИСКА ДАННЫХ’, кроме базового вида просмотра, находятся базовые виды просмотра для работы с таблицами ДОМИНО, проектными элементами, элементами множества и т.д. При наследовании от них можно использовать их базовую логику, переопределяя лишь необходимое. Также многие из этих базовых видов просмотра имеют развитый набор формальных параметров.

image-1648802507223.png

image-1648802515058.png

Все элементы папки ‘ПРОСМОТР СПИСКА ДАННЫХ’ в конечном итоге имеют одного родителя – базовый ‘ПРОСМОТР СПИСКА ДАННЫХ’. Этот проектный элемент не только описывает базовые атрибуты вида просмотра, но и содержит ссылку на dll, где находится программная реализация вида просмотра.

image-1648802532965.png

В проекте также имеются виды просмотра, не являющиеся процедурами на языке скриптов. Эти виды просмотра появились задолго до возникновения в Домино языка скриптов, и поэтому их называют обычными видами просмотра. Описание обычных видов просмотра намного проще, но проектировщик имеет меньше возможностей для добавления специальных процедур, изменяющих стандартный алгоритм. Обычные виды просмотра имеют базового родителя – вид просмотра ‘ОБЪЕКТЫ’, который находится в библиотеке ‘Системная область’.

image-1648802551377.png

При описании вида просмотра доступны следующие атрибуты:

image-1648802569326.png

Далее следуют наследуемые атрибуты:

image-1648802586220.png

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

  • Копирование – условие копирования проектировщиками описания вида просмотра.
  • Использование – условие доступа проектировщиков к виду просмотра.
  • Использование (в режиме выполнения) – условие доступа пользователей к виду просмотра.
  • Размещение окна – для определения места расположения окна на экране. Может принимать одно из следующих значений:

image-1648802604705.png

  • Иконка – для отображения вида просмотра в сценариях и панели инструментов.
  • Допускает наследование атрибутов – при установленном признаке в описании наследника можно будет переопределить атрибуты.
  • Сценарий – определяет список кнопок, которые будут представлены на панели инструментов. Например.

image-1648802622832.png

Кроме обычных для видов просмотра команд, часть которых зарезервирована и обрабатывается видом просмотра автоматически, а другая часть подразумевает вполне определенные действия, есть около двадцати специальных команд (формата USER XX …), использование и смысл которых определяется проектировщиком. Все действия по этим командам должны быть описаны в разделе ‘Обработка команд’. Например, вот так:

image-1648802641090.png

  • Список горячих клавиш – определяет список горячих клавиш. За каждой горячей клавишей закреплено определенное действие (вызов команды, процедуры, сценария, вида просмотра), которое будет выполнено при нажатии на клавишу. При указании команды можно использовать одну из двадцати специальных команд (USER XX…). Например.

image-1648802659063.png

Описание выполняемых действий находится в разделе ‘Обработка команд’.

image-1648802675940.png

  • Выбор одного объекта из списка – наличие данного признака указывает, что вид просмотра будет применяться для выбора записей (например при заполнении поля формы ввода).
  • Автоматический выбор единственной возможной записи – если установлен данный признак, то вид просмотра применяется для выбора, и если он содержит только одну запись, то данная запись будет выбрана автоматически, без отображения вида просмотра на экране.
  • Выбор нескольких объектов из списка – наличие данного признака разрешает выбрать (пометить)  несколько записей.
  • Список полей просмотра – содержит описание колонок вида просмотра. Возможно описать два вида полей: 'Поле (колонка), являющееся параметром объекта' и, используемое реже, 'Поле (колонка) для ввода данных'. Поля первого вида используются для отображения значений, а поля второго вида - для возможности ввода значений в ячейку вида просмотра. (Для ввода значения в ячейку требуется также указать обработку команды 'Изменение==>Ввод в ячейку' в блоке-обработчике команд.)
  • Итоги – содержит описание итоговых величин, рассчитываемых по записям вида просмотра.
  • Заголовок –  определяет заголовок окна.
  • Локальные переменные – содержит список локальных переменных вида просмотра.
  • Вид просмотра зависимых записей – указывает вид просмотра зависимых записей (записей, являющихся наследниками текущей).
  • Список интерфейсных зон – задает список областей в дополнительной зоне вида просмотра. Подробное описание следует ниже.
  • Стиль – задает стиль отображения вида просмотра.
  • Шрифт – задает шрифт для записей вида просмотра.
  • Цвет шрифта – задает цвет шрифта для записей вида просмотра.
  • Цвет фона – задает цвет фона для окна вида просмотра.
  • Интерфейс – указывает визуальную компоненту, которая будет использована для отображения вида просмотра. Подробное описание свойств различных интерфейсов приведено в других томах документации.
  • Формальные параметры – список формальных параметров для вызова вида просмотра.
  • Значения формальных параметров при вызове – список значений формальных параметров. Раздел заполняется при вызове вида просмотра.
  • Обработка команд интерфейса – изменяет действия, выполняемые по стандартным командам интерфейса. Например, к стандартным действиям по команде ‘Назад’ добавлено присвоение значения локальной переменной ‘Отмена’.

image-1648802695079.png

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

image-1648802712233.png

В разделе ‘Локальные переменные’ описано очень много переменных. Для вида просмотра требуются лишь некоторые из них. Раздел ‘Список переменных, сохраняемых в строке‘ содержит ссылки на переменные, которые необходимо записать в каждую строку вида просмотра независимо от того, участвуют ли данные переменные в операторах присваивания внутри раздела 'Отбор данных', или ссылается ли на какую-либо из них атрибут 'Идентификатор объекта'.

  • Список переменных, не сохраняемых в строке – содержит список переменных, которые не следует сохранять в строке вида просмотра. Обычно, в этом разделе указываются итоговые переменные. По умолчанию, в строке вида просмотра сохраняются все переменные, которым присваивается значение в разделе 'Отбор данных', и переменная, на которую ссылается атрибут 'Идентификатор объекта'.

Например.

image-1648802728793.png

В строке вида просмотра будут записаны все переменные, участвующие в операторах присваивания внутри раздела 'Отбор данных', и переменная, на которую ссылается атрибут 'Идентификатор объекта', кроме переменных ‘Количество файлов’, ‘Количество узлов’ и ‘Суммарный размер’.

  • Локальные таблицы – Здесь описываются используемые внутри вида просмотра локальные таблицы. Под локальной таблицей можно понимать двумерную матрицу из строк и столбцов с описанием правил сортировки и группировки строк.
  • Таблицы – Здесь описываются используемые внутри вида просмотра таблицы сервера базы данных. Описанные здесь таблицы могут быть использованы в SQL конструкциях (операторах) вида просмотра.
  • Запросы – Здесь описываются используемые внутри процедуры SQL запросы к серверу базы данных. Обычно, запросы выносятся из тела отчета в данный раздел только в случае их многократного вызова. В противном случае целесообразнее их описывать сразу в теле отчета.
  • Блоки действий – Здесь описываются блоки команд (операторов), вынесенные из основного блока процедуры. Описанные в этом разделе блоки требуют явного вызова.
  • Виртуальные блоки – Используются при наследовании видов просмотра с перенесением части логики в процедуру-наследник. Расположенные в этом разделе блоки не имеют содержимого. В теле вида просмотра содержатся ссылки на виртуальные блоки, но свое содержимое виртуальные блоки получают в разделе ‘Подстановки виртуальных блоков’  в наследнике или в базовом виде просмотра
  • Подстановки виртуальных блоков – В этом разделе виртуальные блоки получают свое содержимое в виде последовательности команд (операторов).
  • Идентификатор объектов – здесь указывается выражение (локальная или контекстная переменная), однозначно определяющее строку вида просмотра. Для видов просмотра стандартных объектов ДОМИНО это выражение должно возвращать UID объекта из текущей строки. Для произвольных видов просмотра тип результата выражения может быть любым.
  • Выполнить при старте – Последовательность операторов, которые будут выполнены сразу после запуска вида просмотра. Если в процессе выполнения произойдет ошибка или будет вызван оператор EXIT, то запуск вида просмотра будет прекращен.

Например, формирование заголовка вида просмотра.

image-1648802749864.png

Атрибут ‘Заголовок’ содержит ссылку на переменную ‘Заголовок вида просмотра’. Этой переменной присваивается значение в рассматриваемом разделе.

  • Отбор данных – Здесь заполняется список строк, отображаемых видом просмотра. Для создания и заполнения одной строки применяется функция ‘Список Данных.Добавить Запись’. По умолчанию, в строке вида просмотра сохраняются все переменные, которым присваивается значение в разделе 'Отбор данных', и переменная, на которую ссылается атрибут 'Идентификатор объекта'. Список переменных уточняется с помощью атрибутов ‘Список переменных, сохраняемых в строке’ и ‘Список переменных, не сохраняемых в строке’. Подробное описание следует ниже.
  • Проверка наличия связанных данных – Применяется для древовидных видов просмотра. Здесь проверяется наличие связанных данных для элемента дерева. Если возвращается истинное значение, то радом с элемента дерева отображается знак плюс. В противном случае высвечивается знак минус.

image-1648802768143.png

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

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

image-1648802786045.png

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

  • Обработка команд – Здесь описана обработка команд, возвращаемых интерфейсом.

image-1648802805241.png

В разделе перечислены команды, которые интерфейс может возвращать для данного вида просмотра. Для каждой команды описаны выполняемые действия.

  • Выполнить при завершении – Последовательность операторов, которые будут выполнены при завершении вида просмотра.

Например, закрыть открытые в виде просмотра файлы.

image-1648802822175.png

  • Список полей фильтра – определяет список полей, по которым можно провести поиск.

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

Например, список полей фильтра для вида просмотра, отображающего каталоги. Вид просмотра называется ‘КАТАЛОГИ'.

image-1648802839647.png

В описании поля ‘Родитель’ имеется ссылка на исходный вид просмотра.

  • Наследуемые атрибуты – задают наличие описанных выше разделов и признаков в процедуре-наследнике.

Отбор данных для вида просмотра

Вид просмотра отображает список строк. Список формируется в разделе ‘Отбор данных’ с помощью функции ‘Список данных.Добавить запись’. По умолчанию, в строке вида просмотра сохраняются все переменные, которым присваивается значение в разделе 'Отбор данных', и переменная, на которую ссылается атрибут 'Идентификатор объекта'. Список переменных уточняется с помощью атрибутов ‘Список переменных, сохраняемых в строке’ и ‘Список переменных, не сохраняемых в строке’.

Рассмотрим два примера формирования списка строк для вида просмотра.

Формирование списка проектных элементов

image-1648802859830.png

Описание переменной для хранения UID-а колонки вида просмотра.

image-1648802875936.png

Используемый кодификатор.

image-1648802892207.png

Список для вида просмотра содержит четыре элемента из кодификатора.

Формирование списка из таблицы ДОМИНО

Отбор данных для вида просмотра Каталогов.

image-1648802918033.png

Выполняется запрос по таблице ‘КАТАЛОГИ’. Запрос возвращает все записи из таблицы. Записи  последовательно сохраняются в строках вида просмотра.

Для быстрого высвечивания первой страницы списка применяются атрибут ‘Быстрый показ первых записей’ и оператор ‘Отложить выполнение’.

Вид просмотра с дополнительной зоной

В видах просмотра (использующих стандартный табличный интерфейс ‘Просмотр (Browse)') можно открыть дополнительную зону.

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

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

image-1648802937694.png

В дополнительной зоне появится закладка ‘Остальные поля’.

image-1648802956859.png

Название закладки ‘Остальные поля’ изменить нельзя.

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

image-1648802977276.png

Вид экрана в этом случае будет такой:

image-1648802995618.png

В качестве текста на закладке используется заголовок связанного вида просмотра, в данном случае это ‘СТРОКИ’.

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

3. В дополнительной зоне автоматически отображаются поля вида просмотра с типом ‘BLOB’. Содержимое колонки интерпретируется как контейнер, содержащий графические файлы-образы страниц.

Эта возможность используется совместно с функциями сканирования документов в библиотеке работы с сертификатами.

image-1648803019020.png