我们的ASP.Net应用程序连接到SSRS 2008 Web服务。
类别和报告列在我们的应用程序的树视图中,该应用程序填充了从Web服务检索报告列表的调用。
当用户选择报告时,将检索报告的参数,并为参数数据类型呈现适当的控件。即日期/时间数据类型的日历,字符串数据类型的文本框等。 用户在VS报告查看器中输入参数值和报告呈现
以上所有工作都很好。
问题是我们的一些报告有地理空间参数。即我们的一些报告将有一些参数需要用户在地图上选择一个区域,并且所选的形状[多边形等]将是参数的值。 [它可能作为一系列XY coardinates传递给报告,但这里的实现并不重要]。
我们有2个选项可以确定需要为GeoSpatial参数显示地图链接。
选项1.创建新的SSRS报告参数数据类型[首选项] 当设计的报告创建一个新参数并且在选择参数数据类型时,一个名为Spatial的新自定义数据类型将可用[除现有数据类型float,boolean,text等]
选项2.使用已知前缀命名参数。即Geo_ParameterName [简单] 报告设计者[可能并不总是内部设计师]需要知道前缀对我们的应用程序具有特殊含义,并在适当时使用它。
是否有任何关于选项1是否可行的想法。即使可能,这种选择也易于部署。
提前致谢,
利安
答案 0 :(得分:1)
您可以使用自定义数据类型,但是您需要将定义这些类型的程序集部署到SSRS服务器。然后,您还必须为任何为您创建报告的人提供该程序集。
答案 1 :(得分:1)
我认为不可能。
此处详细介绍了RDL架构,并且仅限于5个标准值。甚至CLR类型也会映射到其中一个。
<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 [使用重要前缀命名参数]似乎是唯一的选择。
利安