2010-08-17 4 views
1

Приложение ASP.Net подключается к веб-службе SSRS 2008.Параметр отчета SSRS Пользовательские типы данных

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

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

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

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

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

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

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

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

Спасибо заранее,

Лиам

ответ

1

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

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

RDL Schema

<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 [Присвоение имени параметра со значительным префиксом], кажется, единственный вариант.

Liam

1

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

+0

Спасибо за это Бенджамин. – Liam

Смежные вопросы