Как использовать пользовательские служебные классы в RDL? - PullRequest
2 голосов
/ 12 марта 2011

как вы используете свои собственные служебные классы (те, которые вы используете в коде приложения) в отчетах Microsoft в локальном режиме? Это вообще возможно?

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

Простой вызов кода не работает, даже если я вызываю его с префиксом пространства имен.

1 Ответ

3 голосов
/ 12 марта 2011

Допустим, у вас есть сборка, полностью квалифицированная как ReportUtils, Version=1.0.0.0, Culture=neutral, PublicKeyToken=null с вашими служебными методами.

Имеет 2 класса:

  • public static class ReportUtils.Foo с открытым методом string GetValue()
  • открытый класс Bar с конструктором без параметров и открытым свойством Id.

Visual Studio 2008

Report -> Report Properties -> References - Список литературы раздел.

RDL xml

добавить

<CodeModules>
    <CodeModule>ReportUtils, Version=1.0.0.0, Culture=neutral, PublicKeyToken=null</CodeModule>
</CodeModules>

под элементом Report.

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

Visual Studio 2008

то же меню, что и раньше - Классы раздел.

RDL xml

добавить

<Classes>
    <Class>
        <ClassName>ReportUtils.Bar</ClassName>
        <InstanceName>barInstance</InstanceName>
    </Class>
</Classes>

под элементом Report.

Вы можете использовать свой метод статической утилиты следующим образом:

<Value>=ReportUtils.Foo.GetValue()</Value>

Вы можете использовать свой экземпляр класса следующим образом:

<Value>=Code.barInstance.Id</Value>

Вы должны добавить свою сборку как доверенную для LocalReport используемого вами экземпляра:

localReport.AddTrustedCodeModuleInCurrentAppDomain("ReportUtils, Version=1.0.0.0, Culture=neutral, PublicKeyToken=null");

Возможно, вам придется скопировать вашу сборку ReportUtils в каталог VS2008 \ Common7 \ IDE \ PrivateAssemblies , чтобы вы могли создавать отчеты в конструкторе отчетов Visual Studio без ошибок.

Я использовал это недавно, так что это должны быть все необходимые шаги для достижения вашей цели.

...