← 返回所有博客文章

我们通过如下步骤实战一个带地图控件的AR8页面报表:

  • Visual Studio winform工程添加页面报表
  • 页面报表添加数据源(Data Source)
  • 页面报表添加数据集(DataSet)
  • 添加地图控件到页面报表并配置数据-空间数据源、分析数据
  • 配置地图控件的外观
  • 浏览页面报表(运行时效果)

备注:

  • 本例使用的报表数据源是Reels.mdb文件,当您安装AR8后可在C:\Users\[计算机名]\Documents\ComponentOne Samples\ActiveReports 8\Data\Reels.mdb下找到。
  • 新建一个Windows form工程,本例用的Visual Studio 2013创建。

设计时截图(Design Time):

 AR8-Design

运行时截图(Runtime):

 AR8-运行时

 

  • Visual Studio winform工程添加页面报表

    选择AR8_winform_Map(VS Winform类型)项目,添加ActiveReports 8页面报表。命名为”PageReport1_map.rdlx”

    AR8_new_page

  • 页面报表添加数据源(Data Source)

    在【报表资源管理器 8】中点击数据源,右键--添加数据源,在弹出的【报表数据源--常规】中选择类型为”Microsoft OleDb Provider”类型的数据源;同时选择OLE DB提供程序为“Microsoft.Jet.OLEDB.4.0”。

  • 点击服务器或文件名称后面的…按钮,选择上面提到的Reels.mdb文件(AR8安装后自带数据库)

    连接到服务器选择:使用一个特定的用户名和密码,并选择空密码即可。

    AR8-DataSource

    启动【报表资源管理器 8】办法:在VS中通过【视图】-->【其他窗口】-->【报表资源管理器 8】点击启动。

    AR8-资源管理器

  • 页面报表添加数据集(DataSet)

    在上一步建立好的DataSource1上,右键--添加数据集。
    在【弹出的数据集--查询】对话框中,输入如下的SQL语句,并点击验证对号。

    SELECT Address.Region, Customer.CustomerID FROM (Address INNER JOIN Person ON 
    Address.[AddressID] = Person.[AddressID]) 
    INNER JOIN Customer ON Person.[PersonID] = Customer.[PersonID];
  • AR8-DataSet

  • 点击确认,添加DataSet1到DataSource1下面。

    添加地图控件到页面报表并配置数据-空间数据源、分析数据

    从 Visual Studio 控件工具栏(toolbox)添加Map控件到页面报表PageReport1_map.rdlx(设计器视图下),并选择默认的地图模板--美国地图。AR8-map-geoData

     

    点击美国地图后,则自动会添加一个多边形图层(PolygonLayer1),并加载系统自带的美国各州图层数据.

    通过点击多边形图层PolygonLayer1,右键--层数据,在【地图层数据属性--常规】中,有2个字段:

    STATE_NAME: 美国各州名称(全程)

    STATE_ABBR:  美国各州名称(简写)

    AR8_data1

    在地图上显示标签的方法:

    通过点击多边形图层PolygonLayer1,右键--编辑,在【地图多边形层--常规】中,选择标签文本,如#STATE_ABBR则显示各州字母简称.

    AR8_data2

    综上所述,我们已经能够添加一个默认的多边形地理图层,并能够呈现标签,事实上,已经完成了空间数据源的基本操作。 下面,我们需要把报表业务的核心--分析数据在地图上呈现出来,首先要明确一个概��:

    空间数据源是一堆经纬度集合;分析数据是有业务意义。

    为了在地图上呈现分析数据,需要这2者能够映射(Mapping),如我们可通过美国各州的分母简写来作为映射的“桥梁”,操作如下:

    在地图【层数据】属性--分析数据对话框中,选择上面添加的数据集DataSet1;点击匹配按钮,选择空间字段STATE_ABBR和分析字段=[Region]  (下拉选择即可,不用输入)

    AR8_data3

    点击确定,我们已经成功了完成了空间数据源和分析数据在多边形图层PolygonLayer1中的映射(Mapping)

    备注:

    1 每个图层,需要各种配置映射(Mapping)

    2 空间和分析字段要求:数据类型相同、数据内容相同

  • 配置地图控件的外观

    为了在报表运行时呈现出真正的业务分析数据,我们需要配置渲染颜色和分段。

    通过点击多边形图层PolygonLayer1,右键--编辑,在【地图多边形层--颜色规则】中,选择“通过调色板显示数据”,并在常规--数据字段中输入:=Count([CustomerID]) , 调色板选择:SemiTransparent。

    则会在地图运行时刻/浏览下呈现出:各州客户总数的业务渲染效果。

    AR8_data4

    特别注意:能够被地图渲染的数据字段一定是数字型字段。 如已在Access下测试过的String、货币单位都无法被渲染。

    其他的外观设置见列表

    在页面报表,选择地图控件,在【属性】里面分别设置如下属性。
    Property NameProperty Value
    BackgroundColor White
    BackgroundGradientEndColor White
    BorderStyle Solid
    ColorScale > Hidden True
    DistanceScale > Hidden True
    Location 0in, 0.625in
    Size 6.5in, 4.75in
    ViewPort > BackgroundColor LightSteelBlue
    ViewPort > BackgroundGradientEndColor White
    ViewPort > BorderStyle None
    ViewPort > CoordinateSystem Planar
    ViewPort > Margin > Right 20pt
    ViewPort > Meridians > Hidden True
    ViewPort > Parallels > Hidden True
    ViewPort > View > Zoom 115

     

    图层(Layer)属性中:

    Property NameProperty Value
    BackgroundColor LightSteelBlue
    BackgroundGradientEndColor White
    Location > DockOutsideViewport False
    Location > DockPosition RightBottom
    Title > (Caption) Number of Customers
    Title > Font Normal, Arial, 10pt, Bold

    标题(Title)属性:

    Property NameProperty Value
    (Text) 消费者数量
    Color Black

    配置完上上面属性后,在【设计器】中截图如下:

    AR8_data5

    浏览页面报表(运行时效果)

     

    AR8_data6

     

    下面我们来完成最后一公里:通过地图上的州来钻取报表(Drill-Through)---查询各州的消费者详细数据。

    参数传递前面已经有多篇博客专门说过,供深入了解参考:

    Activereports参数设置之页面报表传递多值参数

    自定义ActiveReports的报表参数面板

    ActiveReports报表案例之:招聘系统--个人简历模板报表

    有过编程经验的都知道,参数传递中,参数分形参(函数声明)和实参(调用者)两种:在2个报表调用过程,触发调用动作的是实参,负责传递参数过去;接收参数的属于形参。

    AR8-map

    源码如下所示:C#  VS2013.net

     

     

    立即下载 ActiveReports 8, 体验 交互式地图控件 的强大功能吧。