深入了解SSRS美国地图报告

时间:2013-03-27 19:38:32

标签: dictionary reporting-services report reporting-services-map

我一直对地图报告感兴趣,所以我想创建一个具有向下钻取功能的地图报告,因此基本上创建了两个报告,如下所示: a)基于SQL Server Spatial数据的主报告,用于显示美国各州的销售情况 b)根据ESRI shapfile深入查看地图报告,以显示所选州的美国县销售额

我下载了美国县ESRI shapefile。

完成报告后,我使用向下钻取功能测试了地图。我预览了主要报告,将鼠标悬停在德克萨斯州上方,我没有看到德克萨斯州的县。我只看到一张带有小圆点的美国地图。

所以,我不确定我错过了什么。我从空间数据中选择了“县名称”列,并从分析数据集中选择了县名。它是ESRI shapefile吗?

请告知。

1 个答案:

答案 0 :(得分:1)

据我所知,SSRS不支持'悬停'功能只有'动作'功能。该操作可以转到超链接,转到报告或转到部分。要对报表进行深入分析,即使它是地理位置,您也需要引用可以传递给其他内容的内容。我最近做了类似于你问的事情。您可以创建一个“子报表”,动态地从表示状态的地理数据类型创建。我做了什么:

  1. 我下载了一个程序,该程序使用Census形状文件并将它们放入SQL数据库中: http://www.sharpgis.net/page/sql-server-2008-spatial-tools.aspx

  2. 我从人口普查中得到了美国各州的形状文件。

  3. 我创建了一个名为'Spatial'的数据库
  4. 我创建了一个表,并从第1步的应用程序“Counties”
  5. 中将数据插入其中
  6. 我使用美国的地理选项创建了一张美国通用地图作为我的“主要”报告。
  7. 我创建了地图类型的子报表,但选择了空间数据向导。这些选项并不重要,但您如何制作图像。此报告从我所创建的表的“地理”列中获取数据,因此查询将是这样的(确保将数据源转到空间数据库):

    Select StateName, Counties, geog(geographic type)
    from UsCounties
    where StateName = @State
    
  8. 完成后的报告看起来像blob,因为它是在运行时创建的,而不是静态创建的。您可以“预览”它并从应该创建的名为“State”的变量中传入“OR”或“WA”之类的状态。如果它不是自动创建的,您可以这样做并使其成为“文本”变量。如果设置正确,它将显示状态形状。

  9. 您可以返回步骤5中的报告,然后转到您创建的图层的“多边形属性”。
  10. 选择左侧的“操作”窗格。选择“转到报告”,指定您创建的子报告,报告将希望变量匹配“状态”,通用美国州有一个“缩写”,对应于州的两位数代码。
  11. 现在,您应该能够运行主报表,当您单击状态中的任意位置时,它将“钻取”到在运行时从空间数据库创建的报表。这是基于矢量的,因此它相当快,具体取决于您托管机器的硬件和显示的数据量。
  12. 请记住,使用SSRS很难让它具有一些3D功能,并且由于某些原因将鼠标悬停在对象上会被完全忽略,但只会被降级为“工具提示”,您可以使用这些功能来加载文本和数字但不多。我在另一个地方写了一个关于如何使用javascript弹出一个窗口的黑客攻击,但是在幕后你真的只是用不同的方式进行演练。