报表层定位

在页面报表和Rdl报表中,使用层在印制好的表格布局中以像素级别精确定位。

此示例展示了如何在登机牌的扫描图片上为数据字段精确定位。下面的步骤在页面报表上展示结果同样适用于Rdl报表。

注:在示例开始之前将下面的图片保存到项目文件夹中。

<BR>

本示例被分解为下面的步骤:

      在Visual Studio项目中添加一个ActiveReport

      报表连接到XML数据源

      添加数据集

      在不同层创建报表布局

      预览报表

当完成此示例后,会获得和下面相似的设计时布局和运行时布局。

设计时布局

<BR>

运行时布局

<BR>

添加ActiveReport到Visual Studio项目

1.    创建一个新Visual Studio Windows窗体应用程序项目。

2.    项目菜单中选择添加新项

3.    在弹出的添加新项对话框中,选择ActiveReport 9 RDL报表然后在名称中输入Bording

4.    点击添加按钮在设计界面中打开一个新的固定页面报表。

参见在工程中添加ActiveReports章节获取更多关于添加不同报表布局信息。

报表连接XML数据源

 

1.   从解决方案资源管理器中,打开之前创建的Boarding.rdlx。

2.   在报表资源管理器中,右键点击数据源节点,然后选择添加数据源选项或者在添加按钮下选择数据源

3.   在弹出的报表数据源对话框中,选择常规页,在名称中输入CustomDS

4.   类型下拉列表中选择Xml Provider

5.   在连接字符串区域添加下面的自定义数据。

Xml

 XmlData =

<Flight ID="31">
  <Passengers>
    <Passenger>

      <PassengerName>Maria Anders</PassengerName>
      <Seat>23A</Seat>
      <Tracking>2322- 030-0074321</Tracking>
    </Passenger>

    <Passenger>
      <PassengerName>Ana Trujillo</PassengerName>
      <Seat>18E</Seat>
      <Tracking>2322- 030-0074343</Tracking>
    </Passenger>

    <Passenger>
      <PassengerName>Antonio Moreno</PassengerName>
      <Seat>25A</Seat>
      <Tracking>6722- 034-6784349</Tracking>
    </Passenger>

    <Passenger>
      <PassengerName>Christina Berglund</PassengerName>
      <Seat>14B</Seat>
      <Tracking>5678- 543-6784349</Tracking>
    </Passenger>
    <Passenger>
      <PassengerName>Thomas Hardy</PassengerName>
      <Seat>28F</Seat>
      <Tracking>9834- 413-6784569</Tracking>
    </Passenger>
  </Passengers>
</Flight>

6.   点击确定关闭对话框。

添加数据集

1.    报表资源管理器中,右键点击上一步创建的数据源节点然后选择添加数据集选项或者在添加按钮下选择数据集

2.    在弹出的数据集对话框中,选择常规页然后输入数据集名称BoardingData。此名称会作为数据源的子节点出现在报表资源管理器中。

3.    在数据集对话框的查询页中,在命令类型下选择Tex然后在查询文本框中输入下面的XML路径访问每个用户的数据。

//Passenger

4.    字段页,输入下面表格中的值为报表创建字段。XML数据的字段值必须是合法的XPath表达式。

字段名称

类型

Tracking

Database Field

Tracking

PassengerName

Database Field

PassengerName

Seat

Database Field

Seat

5.    点击确定关闭对话框。新数据集和查询出来的字段会作为节点出现在报表资源管理器下。

参见添加数据集章节获取更多添加数据集到数据源的信息。

在不同创建报表布局

1.   在层列表窗口中,点击图标添加一个新层到报表。注意到默认层已经添加到层列表中。

2.   选中Layer1使其成为激活层,然后在属性窗口中修改层Name属性为ImgLayer

3.   在层列表窗口中,勾选上Lock复选框锁定ImgLayser层,确保在图片上定位时不会被修改或者改变。

4.   在层列表窗口中,点击移到后面按钮移动ImgLayser层到默认层下面。

5.   在层列表窗口中,选中默认层使其成为激活层。

6.   在属性窗口中,设置默认层的DesignerTransparency属性为0.5用于展示ImgLayer层上的扫描图片。

7.   从工具箱中,拖拽一个列表(List)数据区域控件到报表的设计界面。

8.   在属性窗口中为列表控件设置如下属性值。

属性名称

属性值

DataSetName

BoardingData

FixedSize

Width: 6.27in
Height: 3in

Location

Left: 0in
Top: 0.125in

Size

Width: 6.27in
Height: 2.87in

 

9.   在报表资源管理器中,右键点击Embedded Images节点然后选择Add Embedded Image。

10. 在弹出的打开对话框中,浏览项目文件夹位置然后选择之前保存的BoardingPass.jpg图片。

11. 点击打开按钮将图片嵌入到项目中。

12. 从报表资源管理器中,拖拽内嵌的BoardingPass图片到列表数据区域中,然后按照下面表格中的描述设置属性。

属性名称

属性值

LayerName

ImgLayer

Location

0in, 0.125in

Size

6.27in, 2.875in

 

13. 从报表资源管理器中,拖拽下面的字段到列表数据区域中然后按照下面为其设置属性。

字段名称

属性值

PassengerName

LayerName: Default

Location: 2.91in, 0.35in

Size: 1.375in, 0.25in

PassengerName

LayerName: Default

Location: 0.15in, 0.9in

Size: 1.37in, 0.25in

PassengerName

LayerName: Default

Location: 4.5in, 0.9in

Size: 1.25in, 0.25in

Tracking

LayerName: Default

Location: 0.15in, 2.19in

Size: 1.5in, 0.25in

Seat

LayerName: Default

Location: 4.5in, 1.45in

Size: 1in, 0.375in

Font > FontSize: 22pt

 

14. 在层列表窗口中,选择默认层然后选择ImgLayer在属性窗口中修改它们的TargetDevice属性为Screen。更多信息参见查看,导出或打印章节。

预览报表

在设计时点击预览标签页查看报表

或者

在报表浏览器中预览报表。详情参见使用报表查看器控件章节。