Представление (view)

Layout

Атрибут

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

type

тип документа на фронтенде

tableBox

только для представлений — имя tableBox компонента на фронтенде, синоним (_displayType_)

title

переопределение генерированного по умолчанию заголовка

hideTitle

прячет заголовок (типа entity: view) для представлений

mode

«named» — выводить значение колонок по именам, по умолчанию это массив

defaultPageLimit

задание лимита записей по умолчанию

Примеры:

layout: '{"type":"modalForm"}'
layout: '{"mode":"named"}'
layout: '{"tableBox":"galleries", "mode":"named", "defaultPageLimit": 30}'

Атрибуты колонок

Атрибуты колонок позволяют добавить дополнительную мета-информацию в SQL запросах для настройки вывода результатов запроса, как правило, в виде таблицы.

При этом в отличие от встроенных функций той или иной СУБД, эти функции, исполняясь ядром BeanExplorer’а, являются платформенно независимыми, то есть SQL запрос может выполняться на любой СУБД.

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

  1. Встраивание в колонку SQL запроса.

SELECT
  someValue AS "Value;<blankNulls/>"
FROM someTable

В данном примере при помощи <blankNulls/> мы определяем, что NULL значения при выводе должны заменяться пустыми строками.

Описанный способ оказывается не применим на всех базах данных, поскольку многие из них накладывают ограничения на максимальную длину заголовка колонки. Так например Oracle и IBM DB2 не позволяют иметь длину больше 30 символов. В таких случаях можно использовать второй способ.

  1. Встраивание в выборку.

SELECT
  someValue AS "Value"
  '<blankNulls/>' AS ";Value"
FROM someTable

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

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

Атрибут

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

<link/>

генерация перекрестных ссылок между представлениями

<sql/>

встраиваемые запросы

<ref/>

генерация перекрестных ссылок между представлениями

<grouping/>

группировка записей по колонке

<aggregate/>

подсчет агрегированных функций

<safexml/>

Замена угловых скобок в выводимых значениях на &lt;; &gt;

<quick/>

быстрое скрытие/показ полей в таблице

<nosort/>

выключение сортировки по колонке

<roles />

Управление видимостью колонки в зависимости от роли

<format/>

Форматирование выводимого числового значения по маске (<format mask="###,###,###.00" />)

<sql>

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

SELECT
  some_column AS "___param",
  '<sql using="___param">SELECT COUNT(*) FROM comments WHERE col = ?</sql>'
  AS "Value;<nosort/>"
FROM ...