Загрузка...

Создание средств навигации в базе данных Lotus Notes


Тема лабораторной работы №2: Создание средств навигации в базе данных Lotus Notes (2 часа).

Цель лабораторной работы: создание удобного эргономичного интерфейса для просмотра и поиска документов в иерархической базе данных. Приобрести навыки использования таких элементов навигации как Views, Outlines, Pages, Navigators, Framesets.

Теоретические сведения:
К средствам навигации по базе данных в Lotus Notes относятся:
1. Views – виды, представления.
1. Outlines – отображение видов как иерархия понятий;
2. Pages – страницы, подобны формам, где можно размещать статический текст, таблицы, секции, outlines, кнопки и др. Однако поля на страницах размещать нельзя.
3. Navigators – навигаторы, позволяют графическое (кнопочное) меню для перехода по видам.
4. Framesets – фреймы аналогичны фреймам web-сайта, позволяют отображать различного рода информацию из базы данных (документ, вид, навигатор, графический объект и т.д.) в любом месте экрана, обозначенном как фрейм.

Определение вида
Вид позволяет организовать выборку документов БД в список, где каждый документ представлен в отдельном ряду (до 9 строк на документ?), ряды поделены на колонки, каждая колонка содержит определенную информацию о документе (содержимое поля, результат вычислений, simple action: дату создания, порядковый номер). Рисенок 1 – вид с категоризированными документами.
В каждой БД должен быть хотя бы один вид, иначе документы – это просто записи определенной структуры с данными в файле nsf.
Подмножество документов в виде определяется критерием отбора вида (пример критерия, где указывается?). Самый простой случай SELECT @ALL – отображает все документы БД.
Представление каждого документа зависит от формул и параметров колонок вида.
Сортировка документов при помощи сортированных колонок.
Категоризация документов при помощи категоризированных колонок. До 32 уровней вложенности (связано с количеством колонок в виде?).
Поддерживается иерархия ответных документов (Чем отличаются от иерархии категрий). До 32 уровней вложенности, с учетом и категорий.
По всем документам и/или по категориям могут быть показаны обобщающие результаты.
Ко всем этим удобствам в виде могут быть акции, автоматизирующие некоторые функции. Набор акций для каждого вида индивидуален.
Вид показывает краткое содержание множества документов в БД.

Создание вида
Пути создания видов.
Personal (личный) вид. По умолчанию. Доступен только своему создателю. Каждый Depositor может создавать личные виды. (знает ли депозитор названия полей какой бы то ни было формы, ведь ему это надо для создания вида). Личный вид сохраняется в файле DESKTOP.DSK раб. Станции пользователя, который его создал. Можно и в самом вайле БД. Где сохраняется вид зависит от уровня доступа пользователя, определенного в ACL БД:
Дизайнер и выше – всегда в фале БД (*.nsf). (будет ли пользователь с правами менеджера или дизайнера името доступ и какой к личным видам других пользователей?).
Редактор, автор и читатель, если установлена опция “Create personal folder/views” (в ACL?), то в БД, иначе – в рабочем пространстве.
Депозитор – всегда в рабочем пространстве.
Личные виды выделяются в отдельную секцию. В дизайнере имена личных видов в [].
Shared (общий) вид. Открыть может любой пользователь, начиная с депозитора, если доступ к нему не ограничен специально (в свойствах Security вида?) а создать новый или модифицировать его может только Manager, Disainer или Editor с утсновленной в ACL опцией “Create shared folder/views”.
Опция при создании вида:
Personal on first use – создается разработчиком как общий, но после первого обращения к нему каждого пользователя создается его личная копия. Разработчик может изменить исходный вид, а личная копия пользователя не изменится. Пользователь может только удалить свой личный вид (а еще?, может ли пользователь сделать его просто shared?).
С точки зрения защиты информации – такие виды ничего не дают, пользователь может создать вид со всеми документами, к которым ему не запрещен доступ. Защита д.б. обеспечена на уровне документа.
Удобство в том, что используя @UserName, можно подстраивать вид под конкретного пользователя.
Тип вида (shared, personal, shared – personal on first use) может быть выбран только при создании вида, позже его нельзя будет изменить.
Можно определить родительский вид (select a location for the new view), т.е. иерархию видов (пример иерархии). Позже можно изменить в Name вида: Литература/Универсальные издания/Словари.
Inherit design from – вид (или папка), с которого будет скопирован дизайн для нового вида. По умолчанию тот, который с опцией “Inherit design for new folders and views”.
Selection conditions – критерий отбора документов в виде (пример).
Окно проектирования вида – рисунок 2.
Акции по умолчанию:
Edit document – переключение из режима чтения документа в режим редактирования и наоборот (можно и программно, в чем тогда разница?).
Categorize – классификация документа, изменение значения поля Categories (это как? Завести в форме поле Categories и в виде колонку, тогда при нажатии на данную акцию, возникнет возмодность ввести новое значение в это поле? Или можно любое другое категоризированное поле?).
Forward – отправка почтой изображения документа (что есть изображение? документа без формы?).
Move to Folder – перемещение документа в папку.
Remove from Folder — удаление документа из папки.
Send document – отправка документа почтой.

Свойства вида
Basics, Options, Стиль, Особые, Security.
Basics:
Name, Alias, Comment – нужен только разработчику. Ограничения на Name и Alias – по 64 б. на один уровень. Всегодва уровня вложенности, разделитель “\”. 128 б. на все синонимы (всего 256).
Если название вида в (), то вид будет невилим пользоватеою. Такие виды могут использоваться для выполнения по ним функций @DbColumn, @DbLookup.
Предопределенные имена видов: ($Drafts) – черновики документов, ($Sent) – отправленные, ($All) — все, ($Calendar) — календарь, ($ToDo) – необходимо сделать.
Options:
Default when database is first opened – каждая БД должна иметь вид по умолчанию, при первом ее открытии пользователем (что если нет такого вида?).
Default design for new folders and views – один вид д.б. шаблоном при создании новых папок и видов (что если нет такого вида?).
Collapse all when database is first opened (свернуть …)
Show response documents in a hierarchy (показывать ответные документы иерархически)– установлена по умолчанию. Если родительский документ не проходитпо критерию отдора документов данного вида, то не показываются и все ответные документы. Ответные документы не участвуют в общем порядке сортировки, а сортируются в пределах группы одного уровня, принадлежащей одному документу-родителю. Для смещения каждого уровня влево, необходимо завести особую колонку (см. далее).
Если эта опция не установлена, то все документе в виде показываются независимо, т.е. при отборе документов в вид родственные связи не учитываются (каждый документ отбирается независимо); сортировка происходит в порядке, одинаковом для всех.
Show in View menu – по умолчанию не включена, в меню только Go To…
On Open – что происходит при открытии вида:
Go to last opened document – выделить документ, который был выбран в прошлый раз.
Go to top row.
Go to bottom row.
On Refresh – как быстро обновляется вид при изменениях. Вид содержит индекс – скрытый от пользователя объект в БД, содержащий всю информацию из документов, необходимую для отображения вида на экране (см. далее в Advanced).
Display indicator – пользователь сам обновляет.
Refresh display – обновляется при любом изменении вида. (когда это необходимо?) Если с базой одновременно работают несколько пользователей, то изменения отображаются у всех на экранах. Очень замедляет работу. Конфликты.
Refresh display from top row – начиная сверху (когда это необходимо?), если документы хронологически упорядочены и изменения происходят только в верхних документах.
Refresh display from bottom row – начиная снизу (когда это необходимо?), если документы хронологически упорядочены и изменения происходят только в нижних документах.
Стиль:
Color: Background, Column totals (итоговые цифры), Unread rows, Alternate rows.
Show selection margin – колонка слева для выбора документов, если ее нет то появиться если начать выбирать документы пробелом.
Extend last column to window width – позволит максимально использовать пространство экрана, в этой последней колонке м.б. тест неопределенного размера.
Show column headings – экономится место для показа документов, т.к. строка заголовков колонок не показывается. Но, колонки дают ряд преимуществ, в т.ч. по колонке можно переключится в другой вид. Дальше с данной опцией выбирается стиль заголовка колонки (Beveled headings – другог цвета, чем фон в виде, Simple hidings – границы колонок не видны).
Line per heading – количество линий под заголовок.
Line per row – количество строк под документ. Shrink rows to content (сокращать по содержанию) – лишние строки не использовать.
Row spacing – интервал между рядами, не влияет интервал для одного документа.
Особые:
Опции, связанные с существованием индексов видов (не полнотестовые), способ отслеживания непрочитанных пользователем документов и формула формы.
Чтоб отобразить вид на экране кроме описания дизайна (что именно?) необходим индекс. Индекс перестраиваится каждый раз при изменении данных или изменении дизайна вида.
Пользователь может обновить сам: refresh, Shift+F9 – когда refresh не сработал (из-за чего? Опции помешали?), Ctrl+Shift+F9 – обновить индексы всех видов.
Refresh index: Auto, after first use – автоматически в момент первого открытия БД на сервере и далее вов время работы; Automatic – даже если базу никто не открывал, индекс в БД на сервере поддерживается в актуальном состоянии, открытие БД происходит гораздо быстрее; Manual – если БД на клиенте – только вручную, если на сервере – процессы UPDATE и UPDALL. Смотри в закладку Options; Automatic, at most n hour – период изменения целесообразно устанавливать равным периоду изменения результатов формул (пример, кардиограмма, постовый трафик).
Discard index (удаление индекса) – если вид используется редко, удаление индекса позволит сэкономить дисковое пространство, но при открытии вида потребуется время для создания индекса: Never – индекс будет обновляться при каждом открытии БД и в зависимости от Refresh index, при частом изменении данных; After each use – если изменяется регулярно но редко, например, раз в неделю, при открытии создается, при закрытии удаляется; If inactive for n days – если не изменялся в течении n дней, когда изменения редки и непредсказуемы.
UPDALL на сервере удалит индекс в любом случае, т.к. администратор может установить время жизни индексов для всех БД, или по умолчанию – 45 дней.
Unread marks: None; Unread Documents Only – если непрочитанный документ скрыт внутри категории, то категория не отмечается, если развернуть категорию, тогда мы увидем отмеченные документы; Standard [compute in hierarchy] – если непрочитанный документ скрыт внутри категории, то отмечается и вся категория.
From formula – определяет имя формы, с помощью которой будут открываться документы в виде (может ли эта форма отличаться от формы в критерии отбора?).
Security:
Самый бесправный пользователь может создать свой вид, где будут представлены документы, к которым ему разрешен доступ. Т.е. права ограничиваются на уровне документа. Но эта опция позволяет лучше организовать информацию.

Критерий отбора документов
Определяет, какие документы БД показываются в этом виде. Задается в панели дизайна вида.
Способы определения критерия:
Easy: By Author, By Date, By Field, By Form, By Form Used (как Search Builder) (если ничего не указать? Тогда все документы)
Formula – SELECT @формула критерия, документ удовлетворяет критерию если формула истина. Логические операторы: (|, &, !). По умолчанию SELECT @ALL.
(Можно ли на скрипте? нельзя)

Определение колонок вида
Вид состоит из колонок. Количество колонок ограничено только их суммарной шириной– 22.75” (57.8 см.).
Создание колонок.
Свойства колонки: Column info, Sorting, Font, Numbers, Date and Time Format, Title, Advanced.
Column info:
Title – текст усекается и переносится либо нет на следующую строку (в свойствах вида должно быть указано).
Width – ширина колонки в символах.
Resizable – по правой границе.
Hide column – необходима для сортировки, получения данных с помощью функций @DbColumn, @ DbLookup или из LotusScript – программ.
Show twisty when row is expandable – устанавливается в классифицированных колонках, в колонках для ответных документов и в основной колонке главных документов (см. дальше об иерархии ответных документов).
Multi-value separator – “ ”, “,”, “;”, New Line, Blank Line. New Line – совместно с использованием нескольких строк для представления одного документа в виде.
Show responses only – только водной колонке вида, для представления иерархии ответных документов.
Display Values as icons – формула колонки должна возвращать целое число, являющееся номером пиктограммы. Пример: @If(@Attachments;5;0) – возвращает 5 (“скрепочка”) для документов, в которых присоединены файлы, иначе – 0 (ничего).
Sorting:
Сортировка документов по содержанию одной колонки.
Sort – None, Ascending, Descending.
Type – Standard, Categorized – можно воспользоваться встроенной акцией Categorize, для этого надо завести поле Categorizes, т.о. можно обработать группу документов; каскадное деление при помощи нескольких категоризированных колонок или “\”, в поле документа или формуле колонки.
Case sensitive sorting
Accent sensitive sorting (с учетом разделителей)
Click on column header to sort – можно установить вторичную (вспомогательную) сортировочную колонку.
Totals – представление в числовой колонке обобщающих результатов по всем главным документам в виде (ответные документы не учитываются). Пример: колонка Size, @DocLength– размер документа в байтах. None, Total, Average per document, Average per sub-category, Percent of parent category, Percent of all documents.
Hide detail rows – показывает значения только для категории, а не для каждого документа.
Font: Apply to all.
Numbers:
Используются функции — @Abs, @Month, @Year, @TextToNumber, @DocLength, @Member, определяется как возвращаемые числа отображаются.
Date and Time Format: @Created, @Modified, @Accessed, @Adjust, @TextToTime.
Title: Apply to all.
Advanced:
Name – значение зависит от формулы колонки. Имя поля – “$Subject”, либо число — $01. Пример: первая колонка имеет формулу @Modified и имя “$01”, в формуле второй колонки @Now-$01. Возвращает разницу в секундах.

Аналогично видам определяются такие элементы навигации как Pages, Outlines, Navigators и Framesets.

Задание:
Для созданной в первой лабораторной работе базы данных разработать все типы навигаторов по документам:
1. Усовершенствовать разработанные Views
2. Создать Outline
3. Создать Page
4. Создать Navigator
5. Создать Frameset

Загрузка...