Базовая конфигурация
В статье рассмотрен пример настройки шаблона панели отчетов с указанием минимального числа опций.
Шаблон панели отчетов создается на основе контрола-раскладки Layout/reportPopup:Stack. В минимальной конфигурации в раскладке достаточно задать значение в опции bodyContentTemplate, в которую передают контрол Layout/reportPopup:Browser.
<!-- WML -->
<div>
<Layout.reportPopup:Stack>
<ws:bodyContentTemplate>
<Layout.reportPopup:Browser/>
</ws:bodyContentTemplate>
</Layout.reportPopup:Stack>
</div>
В конфигурации Layout/reportPopup:Browser в опции content разместите списочный контрол и задайте ему базовую конфигурацию. В следующем примере в опции размещена Таблица.
<!-- WML -->
<div>
<Layout.reportPopup:Stack>
<ws:bodyContentTemplate>
<Layout.reportPopup:Browser>
<ws:content>
<Controls.grid:View
columns="{{_columns}}"
header="{{_headers}}"/>
</ws:content>
</Layout.reportPopup:Browser>
</ws:bodyContentTemplate>
</Layout.reportPopup:Stack>
</div>
В конфигурации Layout/reportPopup:Browser
в опции source установите конфигурацию для источника данных.
<!-- WML -->
<div>
<Layout.reportPopup:Stack>
<ws:bodyContentTemplate>
<Layout.reportPopup:Browser
source="{{_source}}">
<ws:content>
<Controls.grid:View
columns="{{_columns}}"
header="{{_headers}}"/>
</ws:content>
</Layout.reportPopup:Browser>
</ws:bodyContentTemplate>
</Layout.reportPopup:Stack>
</div>
В конфигурации Layout/reportPopup:Browser
в опцию filterSource передайте значение из поля _items
, которое доступно в области видимости шаблона. Такое поле автоматически заполняется значением из свойства filterOptions.items, которое конфигурируется в контроле-опенере Layout/report:Opener, о чем подробнее можно прочитать здесь.
<!-- WML -->
<div>
<Layout.reportPopup:Stack>
<ws:bodyContentTemplate>
<Layout.reportPopup:Browser
source="{{_source}}"
filterSource="{{_items}}">
<ws:content>
<Controls.grid:View
columns="{{_columns}}"
header="{{_headers}}"/>
</ws:content>
</Layout.reportPopup:Browser>
</ws:bodyContentTemplate>
</Layout.reportPopup:Stack>
</div>
В опцию filterView добавьте контрол Controls/filter:View (см. Объединенный фильтр), для которого задайте в опции detailPanelTemplateName задайте шаблон всплывающей панели. Подробнее о настройке такого шаблона читайте здесь.
<!-- WML -->
<div>
<Layout.reportPopup:Stack>
<ws:bodyContentTemplate>
<Layout.reportPopup:Browser
source="{{_source}}"
filterSource="{{_items}}">
<ws:content>
<Controls.grid:View
columns="{{_columns}}"
header="{{_headers}}"/>
</ws:content>
<ws:filterView>
<Controls.filter:View detailPanelTemplateName="wml!Engine-demo/Report/resources/filterButtonEngineTemplate"/>
</ws:filterView>
</Layout.reportPopup:Browser>
</ws:bodyContentTemplate>
</Layout.reportPopup:Stack>
</div>