提供3000多款全球软件/控件产品
针对软件研发的各个阶段提供专业培训与技术咨询
根据客户需求提供定制化的软件开发服务
全球知名设计软件,显著提升设计质量
打造以经营为中心,实现生产过程透明化管理
帮助企业合理产能分配,提高资源利用率
快速打造数字化生产线,实现全流程追溯
生产过程精准追溯,满足企业合规要求
以六西格玛为理论基础,实现产品质量全数字化管理
通过大屏电子看板,实现车间透明化管理
对设备进行全生命周期管理,提高设备综合利用率
实现设备数据的实时采集与监控
利用数字化技术提升油气勘探的效率和成功率
钻井计划优化、实时监控和风险评估
提供业务洞察与决策支持实现数据驱动决策
转帖|使用教程|编辑:龚雪|2016-04-20 16:00:43.000|阅读 660 次
概述:中国式复杂报表,以数据交叉及合并功能为主,呈现大量的数据信息。在ActiveReports10 中又很好的支持了中国式复杂报表的开发,让复杂报表不再复杂,只需要拖拖拽拽即可轻松实现。ActiveReports10 中的矩表控件很好的满足了中国式复杂报表的需求。
# 慧都年终大促·界面/图表报表/文档/IDE等千款热门软控件火热促销中 >>
相关链接:
能够满足中国特色需求和本地化习惯的报表称为中国式报表,谈到中国式报表,人们总习惯加上复杂二字,由此来看中国式报表不仅具有独特的中国风,它的设计与实现是非常复杂的。
西方的报表结构,以呈现数据为主,报表结构非常有规律且清晰易懂。而中国式报表呈现的信息量大、数据关系庞杂且受传统的报表习惯与文化造成了独特的复杂需求。中国式复杂报表可概括为“复杂的报表结构+大量数据呈现”,会在单个报表中显示多层级的数据信息。
中国式复杂报表,以数据交叉及合并功能为主,呈现大量的数据信息。在ActiveReports10 中又很好的支持了中国式复杂报表的开发,让复杂报表不再复杂,只需要拖拖拽拽即可轻松实现。ActiveReports10 中的矩表控件很好的满足了中国式复杂报表的需求。
本章就为大家讲解中国式复杂报表入门第一课—如何使用矩表(Tablix )控件实现类Excel 单维度交叉表,即行列决定数据显示。
在创建报表之前,我们不着急实现,先要冷静分析报表的结构,选择最适合的报表模板和数据控件,以及具体的实现框架,这样才能保证报表模板的顺利创建,提高开发效率。
由上图可获取信息:
1. 交叉报表,由行和列共同决定显示的数据,左上角使用斜线划分。
2. 行以月份分组,行数不固定,是根据月份动态生成的;
3. 列是以“类别”分组,列数是不固定的,根据类别的个数动态生成的。
< style="text-align:initial">4. 具体数据显示“销售额”;
5. 在最后一行,合计全年的商品的销售额,最后一列合计每月的总销售额。
综上分析,采用矩表控件快速实现交叉报表。
输入SQL 语句:
SELECT t.*, 类别.类别名称 FROM ( SELECT DATEPART("yyyy",订单.订购日期) AS 订购年, DATEPART("m",订单.订购日期) AS 订购月,类别.类别ID,产品.产品名称, 订单明细.数量, 订单明细.单价, 订单明细.折扣 FROM (( 订单 INNER JOIN 订单明细 ON 订单.订单ID = 订单明细.订单ID) INNER JOIN 产品 ON 订单明细.产品ID = 产品.产品ID) INNER JOIN 类别 ON 产品.类别ID = 类别.类别ID ) as t INNER JOIN 类别 ON t.类别ID = 类别.类别ID ORDER BY 订购年,订购月
在页眉区域,添加TextBox,输入报表标题“产品销售数据分析表”
添加Tablix后,会发现有类似[ 符号,表示分组,即可根据具体数据动态生成行。会发现设计器下面的矩表分组管理器;
注:分组管理器,需要在VS中手动调用显示,调用完成之后,需要重启VS,才能让矩表分组管理器显示分组详情哟:
选择“视图”——> 其他窗口——> 矩表分组管理器V10
将“订购月”直接拖拽到行分组单元格(一定要记得拖拽,拖拽,拖拽)
将“类别名称”直接拖拽到列分组单元格(一定要记得拖拽,拖拽,拖拽)
在选中TextBox4 中可以,将Value属性设为“=Sum(Fields!数量.Value *Fields!单价.Value * (1-Fields!折扣.Value))”;设置Format属性为Decimal,小数位数 2;
右键点击“行分组”单元格,选择“添加合计”—>”分组后面”,会自动生成合计行,注意合计行,会自动根据TextBox4 的值添加Sum 表达式,因此为了避免错误,需要手动删除合计行里面的第一个Sum表达式;将=Sum(Sum(Fields!数量.Value *Fields!单价.Value * (1-Fields!折扣.Value))) 修改为:=Sum(Fields!数量.Value *Fields!单价.Value * (1-Fields!折扣.Value))
当然,合计不仅限于Sum表达式,任何表达式都支持,如First,AVG等。
右键点击“列分组”单元格,选择“添加合计”—>”分组后面”,会自动生成合计列
拖拽Container控件到TexBox1,在Container中添加Line控件,添加两个Textbox,并输入文本“月份”,“类别”
效果图:
到这里,交叉报表就基本的已经实现了,接下来需要做的就是调整样式。
可以看到报表模板中,销售额低于3000的呈红色标识,大于20000背景色呈绿色,分两步实现:
1. “脚本”标签中添加以下代码:
Function SetColor(ByVal v As Double) As String If(v < 3000) Return "#3eb370" ElseIf( 10000 > v > 5000)Then Return "#000000" ElseIf(v > 20000) Then Return "#ee7800" Else Return "FFFFFF" End If End Function
2. 选中销售数据单元格,设置 BackgroundColor 属性: =Code.SetColor (Sum(Fields!数量.Value *Fields!单价.Value * (1-Fields!折扣.Value)))
本站文章除注明转载外,均为本站原创或翻译。欢迎任何形式的转载,但请务必注明出处、不得修改原文相关链接,如果存在内容上的异议请邮件反馈至chenjj@cahobeh.cn
本文探讨 SQL Server 中 NULL 和空值之间的区别,并讨论如何有效地处理它们。
Unity 是一款功能极其丰富的游戏引擎,允许开发人员将各种媒体集成到他们的项目中。但是,它缺少最令人兴奋的功能之一 - 将 Web 内容(例如 HTML、CSS 和 JavaScript)直接渲染到 3D 场景中的纹理上的能力。在本文中,我们将介绍如何使用 DotNetBrowser 在 Unity3D 中将 Web 内容渲染为纹理。
DevExpress v24.2帮助文档正式发布上线了,请按版本按需下载~
本教程将向您展示如何用MyEclipse构建一个Web项目,欢迎下载最新版IDE体验!
亚洲畅销的.NET报表控件,20万用户的选择,可在应用程序中生成各种报表,十多年来一直荣获应用程序的优秀报表生成控件。
服务电话
重庆/ 023-68661681
华东/ 13452821722
华南/ 18100878085
华北/ 17347785263
客户支持
技术支持咨询服务
服务热线:400-700-1020
邮箱:sales@cahobeh.cn
关注我们
地址 : 重庆市九龙坡区火炬大道69号6幢