Закажите бесплатную презентацию продуктов РосБизнесСофт прямо сейчас!
“Форма списка” используется для вывода списка объектов модуля (например, список “Счетов”). Добавляется в “Конфигураторе”, для этого нужно нажать кнопку “Добавить форму” и выбрать тип “Форма списка”. Например, добавим форму списка в модуль “Счета” (documents.orders).
Например, добавим форму списка в модуль “Счета” (documents.orders).
В шаблоне формы необходимо вывести таблицу для вывода объектов:
[[table | name: form]] [[column | table: form | name: number | width: 4% | header: № | type: link | path: /orders | tags: nowrap center]] [[column | table: form | name: date | width: 8% | tags: nowrap center]] [[column | table: form | name: owner | width: 35% | type: link | path: /companies | align: left | tags: nowrap]] [[column | table: form | name: total | width: 8% | tags: nowrap right]] [[column | table: form | name: payment | width: 9% | header: Оплачено | tags: nowrap right | th: no-sort | lock: true]] [[column | table: form | name: profit | width: 9% | tags: nowrap right]] [[column | table: form | name: responsible | width: 17% | align: center]] [[column | table: form | name: pay | width: 5% | header: | align: center | lock: true]] [[edit | table: form | path: /orders]] [[delete | table: form]] [[restore | table: form]] [[wipe | table: form]] [[table_end]]
Где:
[[edit | table: form | path: /orders]] [[delete | table: form]] [[restore | table: form]] [[wipe | table: form]]
Вывод:
В сценарии PHP объявить вывод таблицы, первый параметр form = Названию таблицы в шаблоне (name: form)
$this->printDataTable("form", [ "number" => ["id", "name" => "number", "owner" => "owner.id"], "owner" => ["id" => "owner.id", "date", "name" => "owner.name"], "total" => function($obj) { return Text::money($obj->total); }, "profit"=> function($obj) { return Text::money($obj->profit); }, "organization" => "organization.name", "edit" => ["id", "owner" => "owner"] ], [‘date’, DESC]);
Метод printDataTable() используется для вывода таблицы в формах списка и выбора.
Например, выведем в списке «Счетов» в поле «Контрагент» комбинированное значение: «Имя контрагента» и «Город контрагента».
PHP-сценарий:
"owner" => function($obj) { return $obj->owner->name . ' ' . $obj->owner->city; }
Где:
Шаблон:
[[column | table: form | name: owner | width: 30%]]
Также можно задать виртуальное комбинирование поле, которое не существует в структуре Объекта.
PHP-сценарий:
"companyData" => function($obj) { return $obj->owner->name . ' ' . $obj->owner->region->name . ' Статус: ' . $obj->owner->status->name; }
Шаблон:
[[column | table: form | name: companyData]]
Где:
Для вывода ссылок необходимо передать массив данных в формате «ключ» => «значение», где:
Если названия ключа и значения совпадают, то ключ можно опустить.
Пример: Вывод ссылки на поле номер счета
PHP-сценарий:
'number' => ['id', 'name' => 'number']
Где:
Шаблон:
[[column | table: form | name: number | type: link | path: /orders | width: 30%]]
Обязательно использование type: link при передаче массива из PHP и указание path (пути).
В результате Система выведет в столбце number ссылку на счет c номером «8», с id счета «10»:
<a href="/order/10">8</a>
Пример: Вывод ссылки на «Контрагента» в списке «Счетов»
PHP-сценарий:
"owner" => ["id" => "owner.id", "name" => "owner.name"]
Где:
Шаблон:
[[column | table: form | name: owner | width: 35% | type: link | path: /companies]]
Обязательно использование type: link при передаче массива из PHP и указание path (пути).
Результат:
<td leftnowrap="" lock="0" link-click-td="/companies/1/" row-name="owner"> <a nowrap="" href="/companies/1/">РосБизнесСофт CRM</a> </td>
Для любого ключа поля также можно задать анонимную функцию.
Пример: Вывод поля суммы счета в денежном формате.
PHP-сценарий:
"total" => function($obj) { return Text::money($obj->total); },
Шаблон:
[[column | table: form | name: total | width: 8% | tags: nowrap right]]
Результат:
<td row-name="total" nowrap="" right="" lock="0">54'807.00</td>