Как вы ссылаетесь на поле во встроенном коде отчета SSRS? - PullRequest
4 голосов
/ 09 сентября 2009

Есть ли правильный способ ссылаться на поля отчета ssrs из встроенного кода отчета ssrs?

Когда я пытаюсь использовать Fields!Program.Value, я получаю следующую ошибку -

В строке 3 пользовательского кода имеется ошибка: [BC30469]
Ссылка на элемент без общего доступа требует ссылки на объект.

При поиске, я обнаружил, что вы можете ссылаться на параметры отчета, добавив Report. в начале. Поэтому я попробовал это Report.Fields.Program.Value.

Это приводит к следующей ошибке ...

В строке 3 пользовательского кода есть ошибка: [BC30456] 'Поля' не является членом 'Microsoft.ReportingServices.ReportProcessing.ExprHostObjectModel.IReportObjectModelProxyForCustomCode'.

Итак ... в общем, есть ли способ ссылки на поля из встроенного кода. Я понял, что могу передать значения полей самой функции, но я бы предпочел обращаться к полям напрямую.

Сет

Ответы [ 2 ]

4 голосов
/ 01 ноября 2011

У вас есть две другие альтернативы передаче по параметру, хотя ни одна из них не очень красива.

(Осторожно! После того, как я написал следующий абзац, я обнаружил, что значения по умолчанию для запросов не поддерживаются в режиме локальной обработки, поэтому это первое решение может оказаться неэффективным для вас, как и для меня.)

Вы можете создать скрытый параметр отчета со значением по умолчанию, установленным из набора данных, а затем сослаться на него с помощью синтаксиса Report.Parameters!MyParam.Value. Вы должны быть осторожны при тестировании, поскольку (по крайней мере, в BI studio 2005) параметры отчета, по-видимому, надежно не инициализируются повторно из БД на вкладке Предварительный просмотр.

В качестве альтернативы вы можете создать скрытое текстовое поле в отчете с его текстом, заданным из набора данных, а затем ссылаться на текстовое поле из кода. В этом случае вы должны передать объект ReportItems в качестве параметра, но небольшое преимущество состоит в том, что это только один дополнительный параметр. Обязательно строго введите параметр при его объявлении:

public Sub MyCustomCode(ri as ReportItems)

Код будет работать в BI studio без объявления типа, но для меня это вызвало ошибки при управлении средством просмотра отчетов в режиме локальной обработки, если не было 'as ReportItems'.

В любом случае это действительно полезно только для данных на уровне страницы, поэтому функции для использования в таблице должны по-прежнему принимать параметры.

4 голосов
/ 09 сентября 2009

Вы должны передать его как параметр.

= Code.ToUSD (Fields! StandardCost.Value)

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