Как динамически отобразить список подотчетов из набора данных в SSRS? - PullRequest
1 голос
/ 29 сентября 2011

Context

На самом деле я работаю над проектом, в котором мне нужно составить отчет, который будет разработан с помощью нашего пользовательского инструмента. Пользователь будет составлять этот отчет, используя существующие отчеты, которые он будет размещать в определенном порядке. Таким образом, в основном, чтобы записать составленный дизайн отчета, мы храним его в объектной модели, которая содержит список базовых отчетов с их порядком.

Вызов

Цель состоит в том, чтобы просто отобразить список SubReport, который ReportName извлекается из DataSet.

Что я пробовал

Я сделал DataSet, который будет возвращать строки, содержащие порядок, в котором отображается отчет, путь к отчету на сервере и параметры отчета, если они доступны. Поэтому я добавил Табликс с одной ячейкой, которая содержит SubReport. Поскольку Tablix будет перебирать все строки DataSet, я попытался установить ReportName для SubReport. Но, к сожалению, похоже, что SubReport.ReportName не принимает значения, вычисленные из DataSet.

Я пробовал это, но это не работает:

...
<Tablix Name="ReportModuleTablix">
    <DataSetName>ReportModules</DataSetName>
    ...
    <TablixBody>
        ... 
        <TablixRows>
            <TablixRow>
                ...
                <TablixCells>
                    <TablixCell>
                        <CellContents>
                            <Rectangle Name="SubReportRectangle">
                                <ReportItems>
                                    ...
                                    <Subreport Name="ModuleReport">
                                        <ReportName>=Fields!Path.Value</ReportName>
                                    </Subreport>
                                </ReportItems>
                            </Rectangle>
                        </CellContents>
                    </TablixCell>
                </TablixCells>
            </TablixRow>
        </TablixRows>
    </TablixBody>
    ...
</Tablix>
...

= Fields! Path.Value представляет путь отчета для текущей строки DataSet.

Мне действительно нужно иметь возможность отображать список отчетов, параметризованных из DataSet, поэтому я хотел бы знать, как мне достичь своей цели. Я посмотрел на пользовательский ReportItem, но документация довольно неловкая и не очень актуальна.

Спасибо.

1 Ответ

2 голосов
/ 30 сентября 2011

Наконец, мы выбрали генерацию RDL из кода, что означает, что элементы SubReport будут добавляться вручную с использованием объектной модели RDL, но это потребовало некоторого взлома внутренних классов (RdlSerializer).

Я писал об этомв этой статье: https://github.com/Ucodia/Blog-CustomReportingServices

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...