Лекция 6. Разработка представлений: основы
Создание представлений. Элементы и свойства представления. Добавление колонок. Форматирование представления. Сортировка и категоризация документов.
Использование формул в представлениях. События представлений. Создание формул для отбора документов. Объединение значений в колонке представления. Преобразование значений в текст, функция @Text. Отображение иконок в представлении.
Оглавление
2Характеристики представлений3
3Как работают представления в браузерах3
9.4Закладка «Дополнительно» (Advanced)14
10Производительность представлений16
11Формулы для столбцов (колонок) представлений17
11.1Добавление колонок в представление17
11.5Специальные функции для представлений23
11.7Колонки для вычисления суммы, среднего и доли23
12Свойства столбцов представлений24
13Формулы отбора документов в представлении33
13.1Использование диалогового окна Search Builder33
13.2Формулы, эквивалентные простым условиям отбора35
13.3.1Отбор документов по времени37
13.3.2Отбор по имени пользователя37
13.3.3Преобразование полей с именами38
13.3.4Формулы отбора, основанные на свойствах документа38
13.3.5Отбор с использованием исключений38
13.3.6«Неточный» отбор документов39
13.3.7Документы, не относящиеся ни к одной из категорий — (Not Categorized) documents40
14.3Представления с одной категорией44
14.4Изменение внешнего вида всех представлений для браузеров45
14.5Создание отдельных шаблонов для каждого представления46
Введение
Представления или виды (views) — это элементы дизайна, представляющие собой отсортированные и/или разделенные на категории списки документов, которые служат главным средством доступа к базе данных Notes.
Помните, что в каждой базе данных должно быть как минимум, одно представление, которое называется представлением по Умолчанию (default view). В представлении могут отображаться все документы базы, или же в нем может использоваться формула для отбора некоторого набора документов.
Другими словами, представление – это сохраненный запрос, который можно индексировать.
Представления могут быть скрытыми, для того чтобы реализовать определенный функционал.
Представления отображают часть информации документов. Для отображения могут использоваться только поля, которые имеют флаг IsSummary (конечная форма представления поля, которую можно вывести в представление). Если свойство поля IsSummary=TRUE, то его можно использовать в представлении. Например, поле типа Rich text нельзя вставить в представление, требует дополнительной обработки для использования в виде.
Характеристики представлений
Документы расположены и упорядочены в представлениях, чтобы осуществлять навигацию по документам:
Каждая строка в виде представляет документ или раскрывающуюся категорию документов.
Каждая колонка содержит формулу, определяющую какую информацию из документа отображать.
Представления не могут отображать:
Поля, которые являются «Вычисляемыми для отображения».
Зашифрованные поля.
Документы, к которым пользователь не имеет прав доступа – минимальные требования – это «Читатель».
Информацию, хранящуюся в полях типа Rich Text (требуется дополнительная обработка).
Как работают представления в браузерах
Презентация — http://localhost/DDBA6/DDBA6DEMO.NSF/Discussion?OpenView
Папки и представления
Представление – это сохраненный запрос.
Папка – это список документов, который формируется пользователем вручную, он не требует формулы отбора для помещения документов в папку. Документ может отображаться только в составе одной папки в каждый момент времени.
То есть папки используются для отбора документов, если этот процесс нельзя формализовать.
Обновление представлений
Чтобы увидеть новые документы в представлении, пользователь должен нажать кнопку f9.
Индексы представлений обновляются:
Когда пользователь создает или сохраняет документ – обновляется только текущий вид, для остальных видов обновление произойдет только при обращении к ним пользователя,
Автоматически сервером при выполнении определенных задач – например, задача updall, которая запускается каждую ночь в 2 часа.
Когда пользователь с правами менеджера или разработчика БД нажимает кнопки Shift и f9 для перестройки индекса текущего представления или кнопки Ctrl, Shift, f9 – для перестройки индексов всех папок и представлений.
Если администратор сервера вручную запускает задачу updall.
Размер представлений
И дизайн, и индекс представления хранятся в файле БД с расширением nsf. Размер представления определяется такими факторами:
Количество документов, отобранных формулой представления
Количеством колонок
Количеством отсортированных и категоризированных колонок
Использование выделения для непрочитанных документов
Появление документов в нескольких категориях и нескольких представлениях
Имена представлений
Для них используются те же правила, как и для имен форм. Вы можете использовать псевдонимы, каскадные имена и ключи-акселераторы.
Если имя представления заключить в круглые скобки, то оно станет скрытым от меню View и View – Goto.
Помните, что пользователь может нажать Ctrl+Shift и затем выбрать View – Goto. В этом случае он увидит все представления, даже скрытые.
Создание представления
Чтобы создать представление, выполните следующие шаги.
Нажмите пункт Views (Представления) на Панели дизайна, чтобы увидеть список представлений, имеющихся в базе данных.
Выберите пункт меню Create, Design, View (Создать, Дизайн, Представление) или нажмите кнопку New View (Новое представление). Откроется диалоговое окно Create View (Создание представления) (это окно можно считать мастером). Диалоговое окно Create View показано на рисунке.
Введите имя представления в поле View Name (Имя представления).
Выберите тип представления в поле View Type (Тип представления).
В поле Select a Location for the New View (Выбор местоположения нового представления) укажите положение представления в иерархии представлений, в которую вы хотите включить новое представление. Если вы хотите, чтобы новое представление находилось наверху иерархии, не выбирайте в этом поле ничего. В противном случае выберите представление, ниже которого должно находиться новое представление.
При желании, нажмите на кнопку Copy From (Копировать стиль) и укажите существующее представление, на котором будет основано новое представление (так, как это делается для шаблонов). Это позволит сэкономить время, если вы хотите создать представление, напоминающее уже имеющееся. В противном случае новое представление будет создаваться «с нуля».
При желании укажите формулу отбора данных для представления. Если вы скопируете дизайн с уже существующего представления, формула также будет скопирована, и вы сможете отредактировать ее в соответствии с имеющимися нуждами. Если вы будете начинать «с нуля», здесь вам нужно будет ввести формулу. Вы можете использовать кнопки Fields (Поля) и Functions (Функции), а также окно Formula Window, которые помогут вам в создании формулы отбора. Также формулу отбора вы сможете определить позднее.
Нажмите ОК, чтобы создать новое представление.
Презентация.
Все свойства представления, кроме типа, могут быть изменены позже.
Чтобы узнать тип представления, встаньте на него в списке представлений и во всплывающем меню выберите Properties (свойства).
Свойства представлений
Закладка Info
Стили представления:
Стандартный – представление, в котором документы отображаются в отдельных строках, а поля документов – в колонках
Календарный – позволяет работать с документами, основной признак классификации для которых – это дата.
Закладка Options
Тип |
Описание |
Иконка |
Флаг |
Общие (Shared) |
Общие представления может использовать любой пользователь, имеющий в базе данных права Reader и выше, если только доступ этого пользователя специально не запрещен с помощью списка доступа к представлению (view access list) |
Нет |
Y |
Общие, содержащие документы, расположенные не в папках (Shared, contains documents not in folders) |
Свойства те же, что и для общих представлений, за исключением того, что отображаются только документы, не входящие ни в одну в папку |
Нет |
Ya |
Общие, содержащие удаленные документы (Shared, contains deleted documents) |
Свойства те же, что и для общих представлений, но перечислены только удаленные документы. Используется для отображения документов, которые были подвергнуты т.н. «мягкому» удалению. |
Нет |
Y1 |
Личные (Private) |
Личные представления доступны только для тех пользователей, которые их создали. Они могут храниться либо в базе данных (если пользователь может создавать личные представления), либо в пользовательском файле Desktop6.ndk. |
YV |
|
Общие, становятся личными после первого использования (Shared, private on first use) |
Свойства те же, что и для общих представлений, но эти представления становятся личными после первого их открытия пользователем. При первом открытии такого вида создается его личная копия для пользователя, и он работает именно с личной копией. |
pY |
|
Общие, становятся настольными личными после первого запуска (Shared desktop private on first use) |
Свойства те же, что и для Shared, private on first use, но после первого использования сохраняются в пользовательском файле Desktop6.ndk, а не в базе данных, что экономит место на сервере. |
poY |
Закладка Style
Закладка «Дополнительно» (Advanced)
Свойство Refresh влияет на то, обновляется ли индекс, когда пользователь открывает вид (если документы были добавлены в вид другими пользователями и флаг необходимости обновления индекса вида установлен) или это происходит позже. По умолчанию установлено значение свойства – обновлять индекс при первом использовании – правда, это занимает некоторое время и в результате БД дольше открывается.
Большие БД открываются быстрее, если пользователи не ждут обновления индекса – в этом случае пользователи увидят значок и должны вручную обновить индекс.
Свойство |
Описание |
Default When Database Is First Opened (По умолчанию при первом открытии базы данных) |
Установите опцию Default When Database Is First Opened (По умолчанию при первом открытии базы данных), если вы хотите, чтобы представление всегда открывалось первым при открытии базы данных. |
Default Design for New Folders and Views (Дизайн по умолчанию для новых папок и представлений) |
Установите опцию Default Design for New Folders and Views (Дизайн по умолчанию для новых папок и представлений), если вы хотите использовать текущее представление в качестве шаблона при создании новых представлений |
Collapse All When Database Is First Opened (Свернуть все при первом открытии базы данных) |
Установите опцию Collapse All When Database Is First Opened (Свернуть все при первом открытии базы данных), если вы хотите, чтобы все категории представления отображались в свернутом состоянии |
Show Response Documents In a Hierarchy (Показывать иерархию документов-ответов) |
Установите опцию Show Response Documents In a Hierarchy (Показывать иерархию документов-ответов), если представление содержит документы-ответы и вы хотите отображать их в иерархическом порядке под теми документами, от которых они зависят. |
Show In View Menu (Показывать в меню представлений) |
Установите опцию Show In View Menu (Показывать в меню представлений), если вы хотите, чтобы доступ к представлению был возможен через меню View клиента Notes. |
Allow Customization (Разрешить изменение параметров) |
Установите опцию Allow Customization (Разрешить изменение параметров), чтобы позволить пользователям, использующим клиент Notes, изменять внешний вид представления. В Web-приложениях эта опция не действует. Свойство появилось в Domino 6. |
Evaluate Actions For Every Document Change (Пересчет действий при каждом изменении документа) |
Установите опцию Evaluate Actions For Every Document Change (Пересчет действий при каждом изменении документа), чтобы действия, связанные с каждым представлением, вычислялись каждый раз, когда документ или представление изменяются. Нужно заметить, что это свойство отрицательно влияет на производительность представления. Свойство появилось в Domino 6. |
Create New Document At The View Level (Создавать новые документы на уровне представления) |
Установите опцию Create New Document At The View Level (Создавать новые документы на уровне представления), чтобы разрешить пользователям создавать новые документы с уровня представления. Свойство появилось в Domino 6. |
On open (при открытии) |
Определяет документ, который будет выбран каждый раз при открытии пользователем представления. |
On Refresh (при обновлении) |
Используйте данное свойство, чтобы установить порядок действий, если документы, входящие в состав представления, были изменены. Показать индикатор пользователю. Просто обновить Обновить сверху вниз Обновить снизу вверх |
Значение свойства Refresh |
Описание |
Автоматически, после первого использования |
Применимо к небольшим БД, которые предполагают частое изменение документов в представлении пользователями Может привести к ожиданию, пока вид откроется, если вид используется нечасто Вид всегда будет обновленным |
Автоматически |
Сервер следит за непрерывным обновлением индекса в фоновом режиме в независимости от того, открывали или нет пользователи БД Виды всегда находятся в актуальном состоянии и открываются быстрее, чем при использовании «Автоматически, после первого использования» |
Вручную |
Для обновления вида пользователь должен нажать F9 Используется в больших БД, где скорость открытия БД важнее, чем непрерывное поддержание вида в актуальном состоянии |
Автоматически, самое большее каждые n часов |
Сервер обновляет индекс согласно указанной частоте Если БД была изменена между обновлениями, то пользователи увидят иконку и смогут обновить вид вручную с помощью F9 |
Производительность представлений
При разработке приложения разработчику приходится всегда выбирать между производительностью представления и его возможностями, оформлением.
Большое количество колонок, формулы в колонках, а также сортированные и категоризированные колонки приводят к уменьшению производительности вида и увеличению времени сохранения документа.
Использование в БД представлений, для которых пользователи могут настраивать внешний вид и сортировать на лету документы, уменьшает общее количество видов в БД.
Большое число видов в БД отрицательно сказывается на ее производительности.
Если вы разрешите хранить личные представления на сервере, то это потребует дополнительного места на диске и уменьшению производительности.
Если вид содержит документы с полем Readers, то вид будет фильтроваться для каждого пользователя, открывающего его. Можно увеличить производительность, если использовать категоризированный вид со свернутыми категориями в момент открытия вида.
Журналирование постоянно обновляющихся индексов представлений увеличивает нагрузку на сервер.
Уменьшает производительность БД использование lookup views.
Поэтому при проектировании видов руководствуйтесь следующими правилами:
Выполняйте все вычисления в форме
Создайте несколько хорошо спроектированных видов вместо большого количества видов, информация в которых дублируется
Для поиска документов больше рассчитывайте полнотекстовый поиск, а не на разарботку новых представлений
Лучше использовать виды с простыми категориями вместо создания личных представлений, если это возможно.
Формулы для столбцов (колонок) представлений
Строки представлений состоят из колонок. Формула каждой колонки определяет, что появится в строке.
Каждая строка представляет документ, и если формула колонки использует корректное имя поля из документа, то значение появится в данной колонке.
В Domino столбец — это объект представления, который предоставляет разработчику механизм для отображения одного из четырех следующих возможных значений:
содержимое компонента, хранящегося в документе,
значение, вычисленное по формуле
итоговое значение,
категория.
Представление может содержать один столбец или до 289 столбцов шириной в 10 символов.
Разработчики могут также применять столбцы для упорядочения представления, используя их для сортировки документов или разбиения их на категории в соответствии со значением в столбце. Разбиение документов на категории — хороший способ группировки связанных друг с другом документов.
Добавление колонок в представление
Чтобы перейти к редактированию колонки, дважды кликните на ее заголовке.
В редакторе вы может:
Менять ширину колонок, перетаскивая границы заголовков
При нажатии на заголовок колонки, в панели программирования появится формула для данной колонки
Можно перетаскивать колонки за заголовки, чтобы менять их порядок в виде, чтобы перетаскивать сразу несколько колонок выделите их удерживая клавишу Ctrl.
Чтобы вставить колонку слева от текущей выбранной колонки используйте пункт меню Create – Insert New Column, чтобы добавить колонку справа от последней колонки выберите Create –Append New Column.
Дважды кликнув на заголовок последней колонки, вы добавите еще одну колонку в вид.
В колонках вида вы будет использовать значения полей документов. Чтобы увидеть данные в том виде, в котором они реально хранятся в документе, вы можете воспользоваться окном свойств документа.
Внимание! Если вы измените форму, то документы, созданные по старой форме, будут содержать поля со старыми именами и типами данных. Если вы хотите корректно обработать эту ситуацию, вам придется написать скрип или агент, который перенесет информацию из полей со старыми именами в соответствующие поля с новыми именами. Помните об этом при редактировании форм!
В колонке вы можете использовать:
простую функцию,
имя поля (для отображения простого значения поля в колонке),
Формулу.
Простые функции
Используются для создания колонок, отображающих общую информацию о документе.
В таблице представлены простые функции и соответствующие им формулы.
@Docchildren – ответные документы первого уровня
@DocDescendents – общее количество наследников
@Isexpandable — Состояние категории
Имя поля
Если вы выбрали опцию Field, то открывается список полей БД. Выбор поля, однако, не гарантирует, что документ, отобранный в виде, содержит это поле и что само поле непустое.
Формулы
Третий и самый гибкий способ определения колонок – это формулы, которые могут содержать:
имена полей,
текстовые строки,
@Functions (не все формулы могут использоваться для колонок вида, например нельзя использовать @Db функции, есть специальные функции, которые работают только в формулах колонок вида),
операторы.
Вы можете использовать все эти типы, объединяя их с помощью «+», но помните, что предварительно все данные должны быть преобразованы в текст.
Помните, что вы не можете отображать в колонке информацию из поля «Вычисляемого для отображения», Rich Text, зашифрованных полей.
Все документы, содержащее поле типа Readers, автоматически исключаются из представления для пользователя, если он не входит в список читателей.
Не используйте сложные вычисления в формулах колонок, вместо этого используйте в формах скрытые поля, которые уже содержат результат этих вычислений.
Примеры формул
Специальные функции для представлений
Статистика документа
Колонки для вычисления суммы, среднего и доли
Также вы можете использовать колонки для отображения результатов вычислений по определенным столбцам – сумма, среднее, доля.
Для этого в окне свойств колонки укажите тип total на закладке Sorting.
Свойства столбцов представлений
Два раза кликните на заголовке столба, чтобы открыть окно свойств представления.
Закладка Info
Свойство |
Описание |
Discard Index (сбрасывать индекс) |
Возможны варианты: |
Restrict Initial index build to designer or manager |
В больших БД построение индекса в рабочем окне может занять очень много времени. Пользователи не захотят ждать и вы, возможно, не захотите нагружать сервер. Это свойство обеспечивает, что только разработчик (или сервер, когда запущена команда Indexer) создает индекс вида. |
Unread marks |
Определяет, отображаются ли специальным образом новые или модифицированные документы в виде. Для выделения может использоваться цвет и начертание. Презентация – почтовая база Administ.nsf, вид (AllDocs). Список документов ведется отдельно для каждого пользователя, если один пользователь уже открывал документ, а второй нет, то у второго он будет выделен указанным в настройках вида способом. Если нет необходимости следить за модифицированными документами, то в свойствах БД можно указать – использовать пометки только для новых документов. Это свойство сильно влияет на производительность представления и на размер БД, поэтому им нужно пользоваться, только когда необходимость очевидна. |
For web Access: Treat View contents as HTML |
Для браузеров, это свойство дает вам полный контроль над видом — содержание вида трактуется как простой поток HTML, для форматирования которого используется pass through HTML. Например, в большинстве случаем представления встраиваются в страницу или форму. Перед вставленным представлением поместите тэг <TABLE>. Затем определите каждую строку с помощью формулы, которая включает тэги для строк и ячеек: “<TR><TD>”+Subject+“</TR></TD>”. Поместите тэг </TABLE> после встроенного элемента. |
For web Access: Use Applet in the browser |
Автоматически скачивает апплет, который позволяет в браузере представлениям иметь многие функции, которые есть в клиенте Notes: |
For web Access: Allow selection of document |
Если не используется Java-апплет для боаузера, это свойство позволяет пользователю выбирать документ с помощью checkbox: Кроме того, Domino добавляет три функции Java Script в HTML для вида: |
For web Access: Link colors |
Определяет цвет ссылок для браузера |
Logging |
Разрешает вести журнал для индексов представлений. Используется для более быстрого восстановления в случае сбоя и возможность восстановить индекс представления с помощью журнала. Это свойство нужно устанавливать только для тех видов, которые чаще всего используются пользователями и понадобятся сразу после сбоя сервера или рестарта. |
Закладка Sorting
Свойство |
Описание |
Title |
Имя столбца. Может на заполняться, особенно, если столбец используется для отображения категории или ответных документов. Может состоять из нескольких строк, если это указано на закладке Style. Длина заголовка может составлять до 80 символов. |
Width / Resizable |
Ширину может вводиться разработчиком в виде числа или можно задать ширину столба, перетаскивая за заголовок мышкой. Если в представлении включен перенос строк, то ширина определяет, сколько символов будет отображаться до переноса на следующую строку. Если данные не помещаются в столбец, то они обрезаются, за исключением столбцов для ответных документов. В них данные отображаются полностью, раздвигая столбец вправо. Если установлено свойство «Resizable», то пользователи могут менять ширину столбцов. |
Multi-value separator |
Определяет символ-разделить для полей с множественными значениями. Если вы выберите пробел, запятую или точку с запятой, то значения отобразятся в одну строку. Если вы выберите «New Line», то значения будут отображаться в отдельных строках. |
Display values as Icons |
Если установлено это свойство, то формула столбца должна вычислять: Имя графического ресурса. Номер (число) стандартной иконки (от 1 до 172), внешний вид иконки и ее номер можно узнать в БД COLICONS.NSF. |
Use value as color |
Ранее мы обсуждали, как установить альтернативный цвет строк в окне свойств представления. С помощью закладки Font вы можете установить цвет текста в строке. Вы можете также программно устанавливать цвет фона текста любой строки. Для этого один из столбцов с формулой должен: Иметь свойство Use value as color, Быть скрытым, Включать формулу, которая возвращает набор трех (только цвет текста) или шести (цвет текста и фона) координат, используя систему RGB, где каждый из цветов (red, green, blue) задается числом от 0 до 255. Например, формула меняет цвет фона строки на синий и цвет текста на красный, если цена больше 100 и оставляет цвета по умолчанию в противном случае: |
Editable column |
Это свойство дает возможность пользователям редактировать соответствующие поля документов из представления. Чтобы полноценно использовать данное свойство, вы также должны написать код на Lotus Script в событии представления Inviewedit, чтобы указать свойства ввода и сохранения изменений. Это т.н. Data Grid Views. |
User definable |
Позволяет использовать пользовательские настройки. Если свойство выбрано, то нужно указать Profile document, содержащий настройки цветов пользователя, хранимые в поле с тем же именем, что и имя столбца представления. В частности, это свойство используется в почтовой базе для ассоциации разных отправителей с разными цветами. |
Don’t display title in column header |
Не отображать заголовок столбца |
Show twistie when row is expandable (Показывать значок уровня, если строка может быть раскрыта) |
Если столбец будет использоваться для отображения категорий или документов-ответов и вы хотите выводить значок уровня (twistie), если столбец свернут, включите опцию Show Twistie when Row is Expandable. Обычно используется в виде один раз и в первом столбце категоризированного представления или представления, которое отображает ответные документы. По умолчанию представляет собой синий треугольник, но вы можете выбрать или вычислить имя любого графического ресурса, который содержит внутри себя две картинки (ширина 6 пикселей, высота зависит от размера шрифта столбца и начинается от 12 пикселей). |
Show responses only |
Столбец используется для отображения информации только об ответных документах или документах типа «Ответ на ответ» |
Закладка Font
Позволяет установить такие параметры, как размер шрифта, гарнитура и стиль.
Закладка Style
Свойство |
Описание |
Sort Sequence |
Если столбец отсортирован, то можно выбрать порядок сортировки — по возрастанию или по убыванию: для текста – в соответствии с последовательностью ASCII (числа перед буквами), для чисел — числовая последовательность, для даты-времени – по дате. Если столбец должен быть разделен на категории или если он является первым столбцом представления, который используется при поиске, он должен быть отсортирован. |
Categorized (Разбитый на категории) |
Если вы не хотите отображать категории, оставьте значение по умолчанию — Standard (Стандартный). В противном случае укажите тип Categorized. Документы, появляющиеся в разных категориях, отрицательно влияют на производительность представления. Рекомендуется взвесить все за и против перед использованием таких представлений. |
Case sensitive sorting |
Сортировка с учетом регистра или нет. Если эта опция включена, буквы в нижнем регистре идут перед буквами в верхнем регистре. |
Accent Sensitive Sorting (Сортировка с учетом диакритического знака) |
Если эта опция включена, символы с этими знаками будут располагаться после символов без этих знаков. Значок, добавляемый в некоторых языках к буквам для обозначения различного произношения. |
Show multiple values as separate entries (Показывать множественные значения в виде отдельных записей) |
Если в сортированном столбце отображаются значения из поля, содержащего несколько значений, и вы хотите отображать каждое значение в отдельной строке, то укажите опцию Show Multiple Values as Separate Entries. В противном случае, множественные значения отображаются в одной записи и сортируются по первому значению из списка. Это свойство выбрано по умолчанию, если вы указали, что колонка категоризированная. |
Categorized is flat |
Позволяет вам группировать и сортировать документы по категориям, не отображая пользователю саму категорию. Например, вот так будет выглядеть представление, если указать для него это свойство. |
Click on column to sort |
Позволяет пользователям на лету сортировать представление по данному столбцу, нажимая на стрелочку в заголовке столбца. Можно задать столбец для вторичной сортировки Можно также указать, что если пользователь кликает на заголовок колонки, то открывается другое представление |
Totals |
Чтобы в столбце отображались итоговые значения, средние значения или процентные доли по столбцу, содержащему числа, укажите один из вариантов значения для поля Totals (Итоги), которые описаны в следующем списке. Помните, что расчеты по полю Totals производятся только для главных (main) документов, расчеты по документам-ответам не производятся. Также при этом снижается производительность, поскольку при каждом открытии представления нужно производить пересчет. Итак, имеются следующие варианты. None (Итоги отсутствуют, задано по умолчанию). Итоговые значения по столбцу не выводятся. Чтобы вычислить общую сумму для всех главных документов, выберите значение Total (Итог). Значение будет выводиться в нижней части столбца. Для вычисления общего среднего (определяется общая сумма по главным документам, и это число делится на количество главных документов), выберите значение Average per Document (Среднее по документам). Чтобы вычислить среднее значение по каждой категории (вычисляется сумма по документам в каждой категории и делится на количество документов), выберите значение Average per Sub—Category (Среднее по подкатегориям). Для вычисления процентной доли каждой категории в ее категории-родителе выберите значение Percent of Parent Category (Процент от родительской категории). Для вычисления процентной доли каждой категории в общей сумме по представлению, выберите значение Percent of All Documents (Процент от всех документов). Чтобы не выводить промежуточные данные для каждой категории и подкатегории, включите опцию Hide Detail Rows (Скрыть подробности). |
Также можно установить параметры для Names.
Закладка Title
|
Если в столбце отображаются числовые значения, вы можете указать параметры форматирования чисел, выбрав Numbers в списке. Если в столбце отображаются даты, вы можете установить параметры, управляющие форматом даты и времени, выбрав Date / Time в списке: User Settings (Пользовательские параметры) — при выборе этой опции формат даты и времени берется их параметров операционной системы. Custom Settings (Настраиваемые параметры) — эта опция предоставляет вам очень большие возможности для определения того, как дата и время будут отображаться в столбце. Вы можете заменить имеющийся в операционной системе формат mm/dd/yyyy и указать свой, более соответствующий вашим нуждам. Например, yyyy/mm/dd. |
Закладка Advanced
|
Закладка Title (Заголовок) используется для указания таких параметров, как размер, гарнитура и стиль шрифта заголовка столбца. |
Примеры формул столбцов для сортировки документов:
Show values in this column as links – если опция выбрана, то автоматически формируется гиперссылка, с помощью которой пользователь в браузере сможет открыть документ.
По умолчанию Domino использует в качестве ссылки самый левый столбец представления. После того как вы измените настройки ссылок, вы не сможете вернуться к значениям по умолчанию. Вы должны вручную определить, как минимум, один столбец представления как столбец-ссылку.
Пример использования имени столбца – Project After Lesson 16, вид Products by_Name.
Поиск по представлению
Для поиска по представлению выберите пункт меню View – Search this view.
Если нажать на закладку More, то панель поиска открывается с дополнительными настройками.
Пользователь может добавлять условия поиска, нажав на одну из кнопок «Date», «Author», «Field», «Form» и т.д.
Результаты поиска после нажатия кнопки «Search».
Также можно задавать сложные условия, используя между простыми условиями связку и/или.
Быстрый поиск
В клиенте Notes пользователи могут использовать встроенные инструменты для поиска документов.
Пункт меню View – Show фильтрует документы — можно отфильтровать только непрочитанные документы, выбранные документы или категории.
Пункт меню Edit – Find позволяет пользователю искать по строкам представления. Quicksearch (быстрый поиск) позволяет пользователям ввести набор символов для сравнения их с первой колонкой представления и перепрыгивать по строкам при совпадении.
Чтобы работал быстрый поиск, вы должны отсортировать столбец. Если он категоризированный, то быстрый поиск осуществляется по категориям.
Формулы отбора документов в представлении
Представления являются аналогами отчетов. Они строятся по всем или набору документов. Формулы отбора в представлении позволяет разработчику задать те документы, которые должны появиться в виде.
Вы можете отобрать документы в представлении 2 способами:
используя диалоговое окно «Search Builder»
написав формулу отбора на языке @-формул.
Использование диалогового окна Search Builder
Чтобы добавить формулу отбора документов нажмите кнопку «Add condition» внизу панели программирования.
Здесь вы можете отобрать документы, используя простое условие, например, все документы, у которых поле ProductName содержит строку «палатка».
Вы можете добавлять дополнительные условия, используя логический оператор «AND».
Если вы хотите использовать оператор «или», то просто удалите оператор «AND».
Если вы не укажите ни одного условия отбора, то все документы попадут в представление.
Внимание! Вы не можете использовать в условиях отбора поля типа Rich Text, вычисляемые для отображения поля, зашифрованные поля.
Кстати, не имеет значения проиндексирована ли ваша БД, так как полнотекстовый индекс не используется для отбора документов в представление.
Формулы, эквивалентные простым условиям отбора
В таблице приведены формулы – аналоги тем условиям, отбора, которые можно задать с использованием диалогового окна «Search Builder».
Использование формул
Формулы дают разработчику гораздо больше возможностей по отбору документов. Формула по умолчанию «SELECT @All» позволяет отобрать все документы в БД.
Примеры формул:
Отбор документов по времени
Формулы отбора документов могут основываться на временных характеристиках документа.
Например, эта формула отбирает документы, для которых поле AvialableOn содержит дату, относящуюся к текущему кварталу.
Внимание! Представления, в которых документы отбираются по времени, являются очень требовательными к ресурсам. Поэтому вам следует использовать их только тогда, когда все другие варианты невозможны (например, нельзя использовать категоризированное представление).
Отбор по имени пользователя
Отбор по имени пользователя можно использовать только в личных представлениях – обычно в представлениях типа «Общие, личные после первого использования». В этом случае формула отбора документов использует имя пользователя. Например, эта формула отбирает все документы, которые содержат имя пользователя в поле «From».
Представления типа «Shared» не могут использовать @UserName для отбора документов, относящихся к каждому из пользователей. В этом случае, следует создать личные представления, если вы хотите отбирать документы, относящиеся к данному пользователю. Личные представления требуют дополнительное дисковое пространство, влияют на производительность и не работают в браузерах. Решением проблемы является использование категоризированного представления.
Преобразование полей с именами
Так как имена хранятся в различных типах полей – в полях типа Text/List и полях типа Names/Authors/Readers – вам придется выполнять некоторые преобразования имен:
Формулы отбора, основанные на свойствах документа
Отбор с использованием исключений
Если вы хотите отобрать большинство документов, за исключением нескольких, то бывает удобно написать формулу с использованием неравенств.
Например, если в БД много форм, вы можете исключить одну из них следующим способом:
«Неточный» отбор документов
Есть варианты более гибкого поиска, чем просто совпадение (эквивалентность) значений.
Документы, не относящиеся ни к одной из категорий — (Not Categorized) documents
Если поле, которое используется для категоризации представления, в документе является пустым (незаполненным), то вы несомненно получите пустую категорию:
(Not Categorized) – не очень информативная фраза и поэтому может смутить пользователя. Для решения этой проблемы возможны следующие варианты:
Если это приемлемо, то не включать в вид документы с незаполненной категорией:
Разрешить документы без категории в представлении, но изменить формулу первого столбца, например, таким способом:
Фигурные скобки здесь используются для того, чтобы документы без категории попадут в категорию, расположенную в самом низу представления.
Встроенные представления
Представления могут встраиваться в формы и/или страницы, что позволяет разработчику лучше контролировать то, как пользователи работают с представлениями. Например, в форме или странице, наряду с представлением, можно использовать графику для улучшения внешнего вида. Чтобы встроить представление в форму или страницу, выполните следующие действия:
Откройте форму или страницу, в которую вы хотите встроить представление.
Поместите курсор в то место, в котором должно располагаться представление.
Выберите в меню пункт Create, Embedded Element, View (Создать, Встроенный элемент, Представление).
Выберите представление из списка или, при желании, выберите пункт Choose a View Based on Formula (Выбрать представление, основанное на формуле), чтобы ввести формулу для отбора данных для представления. Представление может находиться как в текущей базе данных, так и в другой.
Нажмите Ok, чтобы создать встроенное представление.
Вот, что вы увидите, если не указали какое представление встроить в форму.
Вот, что вы увидите, если укажите имя представления.
Встроенные представления позволяют отображать только одну категорию представления, т. е. отображаются только те документы, которые соответствуют указанному или вычисляемому значению. Для использования этой возможности в представлении должен содержаться разделенный на категории столбец.
Закладка Info
|
Name — имя для программного обращения к этому столбцу (в формулах других столбцов, Lotus Script, Java, внешние программы, использующие драйвер NotesSQL и др.) Опция Hide Column if formula is true (Скрыть столбец, если формула истинна) — вы можете написать формулу условного скрытия для отображения или скрытия столбца представления при определенных условиях. Опция Hide Column позволяет сделать столбец скрытым всегда. Помните, что это свойство не является средством безопасности, поскольку доступ к значению может осуществляться многими другими способами. Вам может понадобиться скрывать столбец всегда: Если вы используете его, например, для вычисления цвета строки. Если вы хотите использовать более «продвинутые» способы сортировки в нескольких первых столбцах представления. |
Закладка Display
Можно определить размер и другие свойства отображения представления.
Свойство |
Описание |
Frame |
Укажите целевой фрейм |
Web Access: Display Using … |
Если вы хотите отображать встроенное представление в Web, вы должны определить, как его следует отображать. У вас есть три варианта: HTML, Java Applet и вариант, основанный на текущих параметрах отображения. Чтобы Web-пользователям было доступно максимальное количество функций, используйте вариант Java Applet, который воспроизводит большую часть функций исходного представления Notes, в том числе изменяемые размеры заголовков столбцов, раскрывающиеся столбцы, динамическая сортировка столбцов и линейки прокрутки в окне апплета представления. |
Представления с одной категорией
Итак, личные представления могут использоваться для отображения документов, относящихся к данному пользователю. Для этого, может использоваться формула @UserName.
Однако при их использовании возникают определенные проблемы, одна из которых – это дополнительное место на диске и дополнительная нагрузка на сервер, так как для личных представлений надо постоянно обновлять индексы.
Самый лучший вариант показать набор документов из встроенного категоризированного представления – это вычислить значение, эквивалентное одной категории. Для этого и используются представления с одной категорией. Примеры использования:
задачи, связанные с конкретным пользователем,
отчеты по ошибкам, относящиеся к определенному номеру продукта,
контакты для выбранной компании.
Внимание! Чтобы во встроенном представлении отображалась только одна категория, вы должны разбить встроенное представление на категории.
Чтобы создать встроенное представление с одной категорией, выполните следующие шаги.
Откройте форму в клиенте Designer.
Поставьте курсор в то место на форме, где должно находиться представление.
Выберите пункт меню Create, Embedded Element, View (Создать, Встроенный элемент, Представление). Откроется диалоговое окно Insert Embedded View (Вставка встроенного представления).
Выберите нужное представление и нажмите ОК.
В Панели программирования выберите событие Show Single Category.
Show single category формула указывает имя категории, для которой отображаются соответствующие категории. Если имя категории не совпадает ни с одной из категорий представления, то документы отображаться не будут.
Если формула будет вычислять «*», то все категории будут отображены. Например, для некоторых пользователей при определенных условиях вы можете захотеть отображать все категории, а для других – только одну.
Напишите формулу, которая будет возвращать отображаемую категорию.
Сохраните форму.
Внимание! Вы не можете встроить несколько представлений на страницу или форму, но при этом вы можете встроить несколько навигаторов и схем на одну страницу или форму.
Презентация – DDBA6DEMO, форма DKSCVTest
Презентация – DDBA6DEMO, форма Embedded Editor
Изменение внешнего вида всех представлений для браузеров
Вы также можете настроить внешний вид представлений для браузеров. Но вместо того, чтобы создавать форму для каждого встроенного представления при использовании клиента Notes, для браузеров вы можете создать только одну форму, которую вы будете использовать как оболочку для всех представлений в БД.
Для этого в БД создается форма с именем $$ViewTemplateDefault. Все представления для просмотра их в браузере используют эту форму как оболочку.
Пример такой формы.
Форма содержит поле с именем $$ViewBody для отображения содержимого представления. Поле не содержит формулы. Поле ViewTitle опционально, это вычисляемое поле с формулой @ViewTitle.
Презентация – DDBA6DEMO, форма $$ViewTemplateDefault.
Создание отдельных шаблонов для каждого представления
Если вы хотите использовать другой шаблон для какого-то представления, вы можете создать другую форму и назвать ее $$ViewTemplate for <View Alias>. В этом случае для представления будет использоваться именно этот шаблон вместо стандартного. Также вы можете создать страницу со встроенным представлением.
Например, если вы хотите, чтобы внешний вид представления «Product By Name» отличался от других представлений, создайте форму с именем $$ViewTemplate for ProductByName. В данном случае «ProductByName» — это псевдоним представления «Product By Name». Также форма должна содержать поле $$ViewBody или встроенное представление.
Презентация – DDBA6DEMO, форма $$ViewTemplate for AllDocs.
Свойство |
Описание |
Disable Scrollbars |
Скрывает горизонтальную и вертикальную полосы прокрутки. |
Show header |
Отображать заголовки столбцов |
Selection tracks on mouse movement |
Если установлено, то при наведении мышкой на строку, она автоматически становится выбранной. Если пользователь наводит мышку достаточно долго, то во всплывающем окне появляется содержимое всей строки. При клике на строку открывается документ. |
Transparent background |
Позволяет использовать цвет фона формы или страницы при отображении встроенного представления. |
Show entries as web links |
Для браузеров – первая видимая колонка отображается в виде гиперссылок. |
Show action bar |
Отображать панель действий представления внутри небольшого встроенного окна. Если для формы или представления также есть панель действий, то она будет отображаться в самом верху окна. |
Show selection margin |
Отображать границы выделения. Не работает, если выбрано свойство Selection tracks on mouse movement |
Show only current thread |
Отображать ответные документы только для текущего родительского документа. |
Show recent first |
Позволяет отображать новые документы выше, чем более поздние. Может, например, использоваться в почтовой базе, чтобы отображать сначала более новые письма. |