基于上面2节内容,我们搭建了AR9的开发环境,配置好了数据源。在本节,我们以官方提供的3个中文图文并茂的报表来展示AR9的功能,并通过实战的方式一一分享。

以往做报表相关的工作时,最害怕的是报表的UI设计工作,当遇到一个布局非常复杂的报表,往往会花上两、三时间才能完成报表的UI设计工作。造成这一问题的原因除了报表本身比较复杂之外,其中一个主要原因就是报表设计器没有提供足够多的功能来辅助报表的UI设计工作。
      ActiveReports 是一个非常容易使用控件,可有一些功能却经常被遗忘---例如AR报表的配置菜单。

当我们打开ActiveReports报表设计画面时(如双击*.rdl、*.rpx、*.rdlx),我们最关心的可能是工具箱和属性窗口,而没有注意到VS菜单栏上面的 报表菜单选项,报表菜单总共有6个菜单项,保存报表报表报表到服务器加载报表从服务器加载报表数据源设置等。接下来就主要谈一谈设置菜单项。

1、可选的标尺单位

ActiveReports提供了Inches(英寸)和Centimeters(厘米)两种标尺单位,我们可以根据自己的需要来选择适合于自己的标尺单位,从而省去了繁琐的长度换算工作。(备注:默认单位是英寸)

2、可选的对齐方式

ActiveReports 提供了SnapLines(按边线对齐)和Snap to Grid(按表格对齐)两种对齐方式。当选择SnapLines时,可以根据对齐辅助线来判断控件之间的相对位置关系;当选择Snap to Grid时,通过鼠标移动控件的最小单位是一个单元格的距离,而且可以根据单元格的数量来判断控件的正确位置。

3、可选的网格间距

当选择Show Grid(显示网格)时,在报表的设计视图中会显示网格,而且网格数量是可以调整的。选择合适的标尺单位和网格数量能为我们判断空间的位置带来便利,比如:标尺单位选择Centimeters(厘米),网格数量设置为10*10,此时相邻网格之间的距离恰好是1mm。

了解报表布局后,下面我们通过3个官方提供的demo进行实战操练。

报表实战1:常规报表--数据清单--客户清单

本实例,通过组合使用AR报表的Lable、TextBox控件,来实现表格展现客户数据。

Step 1: 新建一个 rptCustomerList.rpx 报表文件

Step 2: 新建数据源

Step 3:设计PageHeader(报表头)

依次拖入AR9的Label控件,修改显示的文字、并调整背景色。

在Pageheader左上角,添加TextBox,按照下面截图修改汇总算法--可实现对当前页面用户信息进行汇总。

 

Step 4 设计Detail(报表数据区域)

设计Detail区域,可通过Step 3的办法,从AR9工具箱拖入TextBox控件,修改DataField字段内容。

这里我们使用一个AR报表设计的小技巧直接从报表资源管理器中选择字段拖入Detail区域

Step 5 设计PageFooter区域

至此,我们通过上面的实战步骤,完成了客户清单报表。

小技巧:通过报表设计器下面的设计器、脚本、预览可方便的实现报表设计、预览效果,效率非常高。

快速验证一下效果吧:

怎么和官网的不一样呢?

呵呵,请在脚本中添加如下脚本,用于修改行变色:

int RowNo = 0;public void detail_Format()
{    if ((RowNo % 2) == 1){        this.detail.BackColor = Color.Gainsboro;}    else{        this.detail.BackColor = Color.Transparent;}RowNo++;
}public void ActiveReport_ReportStart()
{rpt.Document.Printer.PrinterName = "";
}

报表实战2:常规报表--图表报表--常规图表

本实例中,通过用报表控件Chart展示图表数据,更直观。

Step 1:新建rptSalesByRegion.rdlx报表

Step 2:新建数据源

Step 3:添加Chart报表控件

选择显示为柱形图--堆积图,通过选中Chart后再单击属性对话框。

Step 4: 填充Chart数据

还可以通过选择Chart后,单击图表数据进行修改:序列(系列)、类别分组、序列分组数据填充操作。

在这个例子中,我们分别按照如下数据进行操作:

  • 拖动“销售量”到序列数据区域

  • 拖动“类别名称”到X轴数据区域

  • 拖动“货主地区”到序列分组区域

Step 5: 预览运行效果

报表实战3:常规报表--条形码--国航机票

在这个实例中,我们通过条形码和AR9新出的圆角设计进行一个类似国航机票的报表实战。

Step 1:新建 rptFlightBarcode.rdlx 报表和数据源

添加报表、数据源,请参加本文的第1个例子,用到的数据源SQL:

select 航班信息.* from 航班信息 order by ID;

Step 2:设计报表的背景图

添加一个嵌入式的图像

添加Image报表控件,并设置国航机票的背景图片。

Step 3:添加条形码

上面添加了Image控件后,我们来添加条形码控件。

配置条形码属性

  • LayerName:设置为Layer1。我们为了方便管理,数据控件统一放在Layer1层。

  • Symbology:设置为Ansi39类型条形码。

  • Value:         设置条形码数据,可指定当前机票的ID号。

备注: ActiveReports 提供的Barcode控件支持37种条码格式,其中包括:Code39码、Code25码、ITF25码、Matrix25码、UPC-A码、UPC-E码、EAN-13码、EAN-8码等一维条码和PDF417等二维条码。

Step 4:添加数据区域

添加完背景图片、条形码后,开始拖动数据字段填充乘客、出发点等数据信息。

有时候设计报表,在多个层之间控制非常不方便,明明选中了,但是报表就是无法编辑数据。

这里给大家分享一个AR9新增的小技巧:在AR报表中,多个图层直接切换可见性、是否选中,请通过在VS工具栏空白处单击右键,选择ActiveReports 9:

然后激活图层管理---层列表 V9:

Step 5: 运行完整的demo效果:

官方提供的完整demo和中文数据库文件下载地址:

为了方便共享和交流,还可通过Git@OSC进行Watch。

转载于:https://blog.51cto.com/powertoolsteam/1587503

ActiveReports 9实战教程(3): 图文并茂的报表形式相关推荐

  1. ActiveReports 9实战教程(2): 准备数据源(设计时、运行时)

    2019独角兽企业重金招聘Python工程师标准>>> 在上讲中<ActiveReports 9实战教程(1): 手把手搭建环境Visual Studio 2013 社区版&g ...

  2. ActiveReports 9实战教程(1): 手把手搭建环境Visual Studio 2013 社区版

    ActiveReports 9刚刚发布3天,微软就发布了 Visual Studio Community 2013 开发环境. Visual Studio Community 2013 提供完整功能的 ...

  3. 视频教程-SEM实战教程(五)-网络营销

    SEM实战教程(五) 毕业于中国人民大学,从事网络营销推广多年,网络营销讲师,有丰富的SEM.微博微信营销培训经验,多年的网络营销实战派研究者,操作过医疗集团.出国留学.教育培训等推广项目,现专注SE ...

  4. PyTorch 高级实战教程:基于 BI-LSTM CRF 实现命名实体识别和中文分词

    20210607 https://blog.csdn.net/u011828281/article/details/81171066 前言:译者实测 PyTorch 代码非常简洁易懂,只需要将中文分词 ...

  5. ArcGIS水文分析实战教程(9)雨量计算与流量统计

    ArcGIS水文分析实战教程(9)雨量计算与流量统计 本章导读:降水是水文循环中重要的一环,降水包括雨.雪.雾.露.雹等,本章介绍的是降雨的环节.通过雨量站与插值的方式,实现雨量的空间分布就算,为水文 ...

  6. 宏基因组分析实战教程1. 背景知识

    上次我写的学习经验和推荐的教程--<微生物组入门必读+宏基因组实操课程=新老司机赶快上车>,小伙伴们当天阅读破2700+人次,3.5天破3000+,达到了宏基因组快车满三千人发车的要求.我 ...

  7. js模板字符串自定义类名_【Vue.js 入门到实战教程】07Vue 组件注册 | 基本使用和组件嵌套...

    来源 | https://xueyuanjun.com/post/21929除了前面介绍的基本语法之外,Vue.js 还支持通过组件构建复杂的功能模块,组件可以称得上是 Vue.js 的灵魂,是 Vu ...

  8. python商业爬虫教程_廖雪峰老师的Python商业爬虫课程 Python网络爬虫实战教程 体会不一样的Python爬虫课程...

    廖雪峰老师的Python商业爬虫课程 Python网络爬虫实战教程 体会不一样的Python爬虫课程 1.JPG (53.51 KB, 下载次数: 1) 2019-8-9 08:15 上传 2.JPG ...

  9. Swift游戏开发实战教程(大学霸内部资料)

    Swift游戏开发实战教程(大学霸内部资料) 试读下载地址:http://pan.baidu.com/s/1sj7DvQH 介绍:本教程是国内第一本Swift游戏开发专向资料. 本教程详细讲解记忆配对 ...

最新文章

  1. jenkins ssl证书报错问题解决
  2. 一幅画十六芒星盾---程序员or艺术家
  3. 【控制】《多智能体系统的动力学分析与设计》徐光辉老师-第6章-基于间歇控制的非线性多智能体系统的多一致
  4. 信噪比与误码率的计算
  5. java局域网 端口扫描_java 如何端口扫描出ssh端口?
  6. 昨天安装复习中遇到的问题小结
  7. php怎么配置configure,PHP编译参数configure配置详解(持续更新中)
  8. html5.0用什么编程语言,HTML5.0,求好心人详解,谢谢
  9. 关于si4438以往犯的一些错误
  10. 计算机computer英语划分音节,英语基础知识1.computer有___个音节,按划分音节的规则,应为____.A.1;computer B.2;com...
  11. 微信浏览器跳转app解决方案
  12. 杭州衣服批发市场服饰外贸SOHO族:实战运营
  13. Matlab Function输入输出
  14. android组件悬浮,Andorid 任意界面悬浮窗,实现悬浮窗如此简单
  15. 用python偷偷给班级群女同学的颜值进行排名,排最后的大姐说开学要打爆我(文末送书)...
  16. HarmonyOS应用开发培训一
  17. ubuntu20.4安装ROS2 Noetic Ninjem
  18. Deep Knowledge Tracing with Transformers论文阅读
  19. 2023年机器人与人工智能国际会议(JCRAI 2023)
  20. VMware重装:网络适配器驱动安装失败解决办法

热门文章

  1. 成功编译Webkit-cairo
  2. 浅析LAN交换机的线速释义 From: www.c114.net
  3. elasticsearch】org.elasticsearch.bootstrap.StartupException: java.lang.NullPointerException
  4. 玩转Linux系统用户管理
  5. beautifulsoup 搜索第二个标签_自定义网站搜索教程
  6. Python 数据类型 布尔类型
  7. php代码正确 插不进表,在表中插入值在PHP中不工作,使用
  8. python处理子进程_Python多处理+子进程问题
  9. 动物识别系统 c语言代码_C ++程序员避不开虚函数的,就像C语言程序员避不开指针一样...
  10. popup弹出html页面,在页面加载时打开所有弹出窗口popup.html