Пользовательский тип данных параметра отчета SSRS - PullRequest
2 голосов
/ 17 августа 2010

Наше приложение ASP.Net подключается к веб-службе SSRS 2008.

Категории и отчеты перечислены в виде дерева в нашем приложении, заполненном вызовом для получения списка отчетов из веб-службы.

Когда пользователь выбирает отчет, параметры отчета извлекаются, и мы отображаем соответствующий элемент управления для типа данных параметра. т.е. календарь для типа данных даты / времени, текстовое поле для типа данных строки и т. д. Пользователь вводит значения параметров, и отчет отображается в VS Report Viewer

Все вышеперечисленное прекрасно работает.

Проблема в том, что некоторые из наших отчетов имеют геопространственные параметры. то есть некоторые из наших отчетов будут иметь параметры, которые потребуют от пользователя выбрать регион на карте, а выбранная фигура [Полигон и т. д.] будет значением параметра. [Он может быть передан в отчет в виде серии XY-координат, но реализация здесь не важна].

У нас есть 2 варианта для определения необходимости отображения ссылки карты для параметра GeoSpatial.

Опция 1. Создать новый тип данных параметра Отчет SSRS [Предпочтительная опция] Когда созданный отчет создает новый параметр и после выбора типа данных параметра будет доступен новый пользовательский тип данных, называемый пространственным [в дополнение к существующим типам данных float, boolean, text и т. Д.]

Вариант 2. Назовите параметр с известным префиксом. т.е. Geo_ParameterName [Simple] Дизайнер отчетов [не всегда внутренний дизайнер] должен знать, что префикс имеет особое значение для нашего приложения, и использовать его при необходимости.

Есть у кого-нибудь идеи о том, возможен ли вариант 1. Этот выбор также связан с простотой развертывания, даже если это возможно.

Заранее спасибо,

Ли

Ответы [ 2 ]

1 голос
/ 18 августа 2010

Я не думаю, что это возможно.

Схема RDL подробно описана здесь и ограничена 5 стандартными значениями.Кажется, что даже типы CLR отображаются на один из них.

Схема RDL

  <xsd:complexType name="ReportParameterType">
<xsd:choice minOccurs="1" maxOccurs="unbounded">
  <xsd:element name="DataType">
    <xsd:simpleType>
      <xsd:restriction base="xsd:string">
        <xsd:enumeration value="Boolean" />
        <xsd:enumeration value="DateTime" />
        <xsd:enumeration value="Integer" />
        <xsd:enumeration value="Float" />
        <xsd:enumeration value="String" />
      </xsd:restriction>
    </xsd:simpleType>
  </xsd:element>

Вариант 2 [Наименование параметра со значительным префиксом] представляетсяединственный вариант.

Лиам

1 голос
/ 17 августа 2010

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

...