Базовая конфигурация

В статье рассмотрен пример настройки шаблона панели отчетов с указанием минимального числа опций.

Пример
Исходный код

Шаблон панели отчетов создается на основе контрола-раскладки 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>