Инструменты пользователя

Инструменты сайта


lss-server-php:datasource-fields

Описатели полей

Введение

Поля в контроллере источника данных описываются массивом. Получить описатели можно вызвав методы: getFields($rowType) и getField($name, $rowType).

Описание полей в источнике данных

Общие описатели

  • name - имя поля, обязательный параметр
  • type - тип поля в терминах LSS: string, password, status, memo, date, num, check, ref, list, icons, radio, multilist, html
  • caption - название поля в понятном человеку виде
  • len - отображаемая ширина поля в символах
  • maxlength - максимально допустимое кол-во символов в поле
  • stretch - ширина поля на максимум, по умолчанию false
  • default - значение поля по умолчанию, при добавлении новой строки
  • notnull - значение поля должно быть обязательно задано
  • log - изменение значения поля необходимо логировать

Числа

  • dec - кол-во знаков после запятой

Справочники

Параметры поля type=«ref»

  • reftable - имя источника данных справочника. В терминах LSS datasource элемента ref
  • refrowtype - означает, что справочник является деревом. Задает тип узла, из которого можно выбирать значения. В терминах LSS row.type элемента ref
  • ref.params - массив, задает значения параметров при вызове справочника. Если значение параметра начинается с get( или getplus( то значение подставляется в js_value и добавляется skipempty=1, иначе значение подставляется в value. Например:
$fld['reftable']='worker';
$fld['ref.params']=array (
  'filter.orgid' => "get('orgid')",
  'filter.code' => "QWERT"
);

соответствует LSS описанию:

<field type="ref" ...>
  <ref datasource="worker">
    <param name="filter.orgid" js_value="get('orgid')" skipempty="1"/>
    <param name="filter.code" value="QWERT"/>
  </ref>
</field>

параметры начитываемых из справочника полей:

  • refid - имя поля справочника (type=ref)
  • refname - имя поля в источнике данных справочника, связанного с текущем полем (по умолчанию name)
  • reftext - имя поля справочника, отображаемого в диалоге выбора значений, если не задано, то из refname
  • dlgwidth - ширина диалога выбора значения из справочника

Списки: list, radio, icons

  • list - список значений, разделенный ',' или ';'. Возможны варианты:
    • список вида: код=значение;код=значение;код=значение. В таком варианте в поле хранится код, а отображается значение.
    • список вида: значение;значение;значение. В таком варианте все зависит от basetype. Если basetype=string, то в поле хранится значение. Если basetype=num то в поле хранится порядковый номер (от 1), а отображается значение.
  • basetype - string или num

Права и видимость

  • visible - видимость поля, по умолчанию true
  • readonly - запрет на правку поля, по умолчанию false
  • js_visible - выражение JavaScript задающее видимость поля, отрабатывается только на клиенте
  • js_readonly - выражение JavaScript задающее запрет на правку поля, отрабатывается только на клиенте

Взаимодействие клиента с сервером

  • save - при изменении значения поля автоматически вызывать запрос save
  • change - при изменении значения поля автоматически вызывать запрос change
  • change.params - параметры, передаваемые запросу change. Аналогично ref.params
  • change.clears - массив имен полей, которые надо очистить при изменении значения поля. Если в списке перечислено поле type=«ref» то ссылающиеся на него поля refid указывать необязательно.

Серверные

  • virtual - поле виртуальное, в автогенерации SQL запросов не участвует. Для таких полей атрибуты table и alias не используются.
  • hidden - значение поля не передается на клиент
  • log - изменение поля надо логировать
  • info - дополнительная служебная информация в виде массива (ключ=значение). Используется для спецобработки на сервере.

Параметры поля в экранной форме "структура БД"

В экранной форме «структура БД» описывается таблицы и поля базы данных. По этим описателям генерятся контроллеры источников данных - описатели полей, SQL запросы к таблицам.

описатели полей REF

  • ref - параметры, передаваемые запросу для начитки содержимого справочника
filter.mode=РАБ
filter.statusid=get('statusid')

будет построено:

<param name="filter.mode" value="РАБ"/>
<param name="filter.statusid" js_value="get('statusid')" skipempty="1"/>

Если значение параметра начинается с: get(, !get(, getplus(, !getplus( то это выражение, подставляется в js_value, добавляется skipempty. Иначе это константа, подставляется в value.

  • ref_join - подстраивает поведение связи при выполнении join. Стандартное поведение: подменять ссылки для restrict связей и удалять для cascade. Если параметр задан, то поведение зависит не от типа связи а от значения этого параметра. Значения 1, r, R означают подмену ссылок, все остальное означает удаление.
  • ref_copy - подстраивает поведение связи при выполнении copy. Стандартное поведение: копировать только для cascade связей. Если параметр задан, то поведение зависит не от типа связи а от значения этого параметра. Значения 1, c, C означают копирование.
  • ref_logparent - при любом изменении в строке отписывать в лог родительской таблицы по этой ссылке. Если значение 1, то имя в логе совпадает с именем таблицы, иначе значение задает имя в логе
  • ref_readonlytest - при правке у удалении строки проверять признак row.readonly строки связанного источника данных.

стандартные описатели

  • change - при изменении поля отсылать запрос change или выполнять очистку полей

при изменении поля посылать запрос change без параметров

1

при изменении поля посылать запрос change с параметрами

field1=get('field1')
field2=get('field2')

при изменении поля очищать значения перечисленных полей

field1=clear
  • save - 1|0 при изменении значения поля автоматически вызывать запрос save
  • info - произвольная информация вида cod=значение. Перенесется в описатель поля fld

видимость и доступность

  • readonly - 1|0 можно объявить поле readonly
  • js_readonly - можно объявить поле readonly в зависимости от условия: get('mode_code')=='ОТКЛ'

описатели полей MAIN при подключении их в справочник

  • reftext - при подключении поля как справочник задает значение reftext
  • reffind - при подключении поля как справочник задает значение reffind
  • dlgwidth - при подключении поля как справочник задает значение dlgwidth
  • refcaption - 1|0 при подключении поля как справочник брать caption из поля ссылки (type=ref)

Расширенный описатель info

Описатель info позволяет пополнить описание поля массивом вида имя=значение. Имена могут быть произвольными. Однако, некоторые имена обрабатываются особым образом - подменяют описатели поля. Вот список таких имен:

  • refid
  • refname
  • visible
  • js_visible
  • default
  • hidden
  • list
  • basetype
lss-server-php/datasource-fields.txt · Последнее изменение: 2024/07/15 15:30 — madmin

Donate Powered by PHP Valid HTML5 Valid CSS Driven by DokuWiki