SSRS报表服务随笔(rdl报表服务)-报表结构与样式
设计rdl报表,比设置HTML页面简单多了,Reporting报表分为页眉,页脚,主体三个部分
rdl文件实际是xml结构的文件,具体是什么语言呢,很抱歉,这点我还不能回复,在我看来,是由固定节点的xml文本
报表结构
通过查看Reporting的报表,一个完整的报表,包含报表的一些配置(默认字体样式,自动刷新,语言,容器空白,报告单元类型,报表ID),数据源,数据集,报告部分(相当于容器),报表参数,报表参数布局这几个主要组成部分,根据报表样式的不同会有不同的组成部分,比如在报表中内嵌了一个图片,那么会多一个内嵌式图片的结构
此处附上一个rdl报表的代码
<?xml version="1.0" encoding="utf-8"?>
<Report MustUnderstand="df" xmlns="http://schemas.microsoft.com/sqlserver/reporting/2016/01/reportdefinition" xmlns:rd="http://schemas.microsoft.com/SQLServer/reporting/reportdesigner" xmlns:df="http://schemas.microsoft.com/sqlserver/reporting/2016/01/reportdefinition/defaultfontfamily">
<df:DefaultFontFamily>Segoe UI</df:DefaultFontFamily>
<AutoRefresh>0</AutoRefresh>
<DataSources>
<DataSource Name="DataSource1">
<ConnectionProperties>
<DataProvider>SQL</DataProvider>
<ConnectString>Data Source=DESKTOP-A2OHBFG\MSSQLSERVER2016;Initial Catalog=CN_BBG_TEST1108</ConnectString>
</ConnectionProperties>
<rd:SecurityType>None</rd:SecurityType>
<rd:DataSourceID>2a3c9c46-1d9d-470c-a113-05fac2f082d4</rd:DataSourceID>
</DataSource>
</DataSources>
<DataSets>
<DataSet Name="DataSet1">
<Query>
<DataSourceName>DataSource1</DataSourceName>
<CommandText>select * from student</CommandText>
</Query>
</DataSet>
</DataSets>
<ReportSections>
<ReportSection>
<Body>
<ReportItems>
<Chart Name="DataBar1">
<ChartCategoryHierarchy>
<ChartMembers>
<ChartMember>
<Label />
</ChartMember>
</ChartMembers>
</ChartCategoryHierarchy>
<ChartSeriesHierarchy>
<ChartMembers>
<ChartMember>
<Label />
</ChartMember>
</ChartMembers>
</ChartSeriesHierarchy>
<ChartData>
<ChartSeriesCollection>
<ChartSeries Name="Series">
<ChartDataPoints>
<ChartDataPoint>
<ChartDataPointValues>
<Y>=123</Y>
</ChartDataPointValues>
<ChartDataLabel>
<Style />
</ChartDataLabel>
<Style />
<ChartMarker>
<Style />
</ChartMarker>
<DataElementOutput>Output</DataElementOutput>
</ChartDataPoint>
</ChartDataPoints>
<Subtype>Stacked</Subtype>
<Style />
<ChartEmptyPoints>
<Style />
<ChartMarker>
<Style />
</ChartMarker>
<ChartDataLabel>
<Style />
</ChartDataLabel>
</ChartEmptyPoints>
<ValueAxisName>Primary</ValueAxisName>
<CategoryAxisName>Primary</CategoryAxisName>
<ChartSmartLabel>
<CalloutLineColor>Black</CalloutLineColor>
<MinMovingDistance>0pt</MinMovingDistance>
</ChartSmartLabel>
</ChartSeries>
</ChartSeriesCollection>
</ChartData>
<ChartAreas>
<ChartArea Name="Default">
<ChartCategoryAxes>
<ChartAxis Name="Primary">
<Visible>False</Visible>
<Style>
<Border>
<Color>Gainsboro</Color>
<Style>None</Style>
</Border>
<FontSize>8pt</FontSize>
<Color>#5c5c5c</Color>
</Style>
<ChartAxisTitle>
<Caption />
<Style>
<FontSize>9pt</FontSize>
<Color>#5c5c5c</Color>
</Style>
</ChartAxisTitle>
<Margin>False</Margin>
<ChartMajorGridLines>
<Enabled>False</Enabled>
<Style>
<Border>
<Color>Gainsboro</Color>
</Border>
</Style>
</ChartMajorGridLines>
<ChartMinorGridLines>
<Style>
<Border>
<Color>Gainsboro</Color>
<Style>Dotted</Style>
</Border>
</Style>
</ChartMinorGridLines>
<ChartMajorTickMarks>
<Style>
<Border>
<Color>Gainsboro</Color>
<Style>None</Style>
</Border>
</Style>
</ChartMajorTickMarks>
<ChartMinorTickMarks>
<Style>
<Border>
<Color>Gainsboro</Color>
</Border>
</Style>
<Length>0.5</Length>
</ChartMinorTickMarks>
<CrossAt>NaN</CrossAt>
<Minimum>NaN</Minimum>
<Maximum>NaN</Maximum>
<ChartAxisScaleBreak>
<Style />
</ChartAxisScaleBreak>
</ChartAxis>
<ChartAxis Name="Secondary">
<Visible>False</Visible>
<Style>
<Border>
<Color>Gainsboro</Color>
<Style>None</Style>
</Border>
<FontSize>8pt</FontSize>
<Color>#5c5c5c</Color>
</Style>
<ChartAxisTitle>
<Caption />
<Style>
<FontSize>9pt</FontSize>
<Color>#5c5c5c</Color>
</Style>
</ChartAxisTitle>
<Margin>False</Margin>
<ChartMajorGridLines>
<Enabled>False</Enabled>
<Style>
<Border>
<Color>Gainsboro</Color>
</Border>
</Style>
</ChartMajorGridLines>
<ChartMinorGridLines>
<Style>
<Border>
<Color>Gainsboro</Color>
<Style>Dotted</Style>
</Border>
</Style>
</ChartMinorGridLines>
<ChartMajorTickMarks>
<Style>
<Border>
<Color>Gainsboro</Color>
<Style>None</Style>
</Border>
</Style>
</ChartMajorTickMarks>
<ChartMinorTickMarks>
<Style>
<Border>
<Color>Gainsboro</Color>
</Border>
</Style>
<Length>0.5</Length>
</ChartMinorTickMarks>
<CrossAt>NaN</CrossAt>
<Location>Opposite</Location>
<Minimum>NaN</Minimum>
<Maximum>NaN</Maximum>
<ChartAxisScaleBreak>
<Style />
</ChartAxisScaleBreak>
</ChartAxis>
</ChartCategoryAxes>
<ChartValueAxes>
<ChartAxis Name="Primary">
<Visible>False</Visible>
<Style>
<Border>
<Color>Gainsboro</Color>
<Style>None</Style>
</Border>
<FontSize>8pt</FontSize>
<Color>#5c5c5c</Color>
</Style>
<ChartAxisTitle>
<Caption />
<Style>
<FontSize>9pt</FontSize>
<Color>#5c5c5c</Color>
</Style>
</ChartAxisTitle>
<ChartMajorGridLines>
<Style>
<Border>
<Color>Gainsboro</Color>
</Border>
</Style>
</ChartMajorGridLines>
<ChartMinorGridLines>
<Style>
<Border>
<Color>Gainsboro</Color>
<Style>Dotted</Style>
</Border>
</Style>
</ChartMinorGridLines>
<ChartMajorTickMarks>
<Style>
<Border>
<Color>Gainsboro</Color>
<Style>None</Style>
</Border>
</Style>
</ChartMajorTickMarks>
<ChartMinorTickMarks>
<Style>
<Border>
<Color>Gainsboro</Color>
</Border>
</Style>
<Length>0.5</Length>
</ChartMinorTickMarks>
<CrossAt>NaN</CrossAt>
<Minimum>0</Minimum>
<Maximum>NaN</Maximum>
<ChartAxisScaleBreak>
<Style />
</ChartAxisScaleBreak>
</ChartAxis>
<ChartAxis Name="Secondary">
<Visible>False</Visible>
<Style>
<Border>
<Color>Gainsboro</Color>
<Style>None</Style>
</Border>
<FontSize>8pt</FontSize>
<Color>#5c5c5c</Color>
</Style>
<ChartAxisTitle>
<Caption />
<Style>
<FontSize>9pt</FontSize>
<Color>#5c5c5c</Color>
</Style>
</ChartAxisTitle>
<ChartMajorGridLines>
<Style>
<Border>
<Color>Gainsboro</Color>
</Border>
</Style>
</ChartMajorGridLines>
<ChartMinorGridLines>
<Style>
<Border>
<Color>Gainsboro</Color>
<Style>Dotted</Style>
</Border>
</Style>
</ChartMinorGridLines>
<ChartMajorTickMarks>
<Style>
<Border>
<Color>Gainsboro</Color>
<Style>None</Style>
</Border>
</Style>
</ChartMajorTickMarks>
<ChartMinorTickMarks>
<Style>
<Border>
<Color>Gainsboro</Color>
</Border>
</Style>
<Length>0.5</Length>
</ChartMinorTickMarks>
<CrossAt>NaN</CrossAt>
<Location>Opposite</Location>
<Minimum>NaN</Minimum>
<Maximum>NaN</Maximum>
<ChartAxisScaleBreak>
<Style />
</ChartAxisScaleBreak>
</ChartAxis>
</ChartValueAxes>
<Style>
<BackgroundColor>#00ffffff</BackgroundColor>
<BackgroundGradientType>None</BackgroundGradientType>
</Style>
<ChartElementPosition>
<Top>3</Top>
<Left>10</Left>
<Height>96</Height>
<Width>80</Width>
</ChartElementPosition>
</ChartArea>
</ChartAreas>
<Palette>BrightPastel</Palette>
<ChartBorderSkin>
<Style>
<BackgroundColor>Gray</BackgroundColor>
<BackgroundGradientType>None</BackgroundGradientType>
<Color>White</Color>
</Style>
</ChartBorderSkin>
<ChartNoDataMessage Name="NoDataMessage">
<Caption>没有可用数据</Caption>
<Style>
<BackgroundGradientType>None</BackgroundGradientType>
<FontWeight>Bold</FontWeight>
<TextAlign>General</TextAlign>
<VerticalAlign>Top</VerticalAlign>
</Style>
</ChartNoDataMessage>
<rd:DesignerMode>DataBar</rd:DesignerMode>
<DataSetName>DataSet1</DataSetName>
<Top>1.31974cm</Top>
<Left>4.67995cm</Left>
<Height>1.25cm</Height>
<Width>3.75cm</Width>
<Style>
<Border>
<Color>LightGrey</Color>
<Style>Solid</Style>
</Border>
<BackgroundColor>White</BackgroundColor>
<BackgroundGradientType>None</BackgroundGradientType>
</Style>
</Chart>
</ReportItems>
<Height>5.13367in</Height>
<Style />
</Body>
<Width>8.78968in</Width>
<Page>
<PageHeight>29.7cm</PageHeight>
<PageWidth>21cm</PageWidth>
<LeftMargin>2cm</LeftMargin>
<RightMargin>2cm</RightMargin>
<TopMargin>2cm</TopMargin>
<BottomMargin>2cm</BottomMargin>
<ColumnSpacing>0.13cm</ColumnSpacing>
<Style />
</Page>
</ReportSection>
</ReportSections>
<ReportParametersLayout>
<GridLayoutDefinition>
<NumberOfColumns>4</NumberOfColumns>
<NumberOfRows>2</NumberOfRows>
</GridLayoutDefinition>
</ReportParametersLayout>
<rd:ReportUnitType>Cm</rd:ReportUnitType>
<rd:ReportID>ab81ed71-215d-4adb-b126-6bdadaa2f604</rd:ReportID>
</Report>
Reporting报表
报表版式
限于页眉页脚的数据,不能用于主体,比如页码,会导致报表报错
在报表数据的内置字段,是全部可以放在页眉和页脚中,部分可以放在主体中
限于主体的数据,不能直接放在页眉和页脚,可以通过聚合来实现现在在页眉,比如求和,平均值等等
在分组数据中,不能直接放到页眉和页脚,可以对分组进行分页,然后显示First(字段名)显示到页眉页脚中
报表样式
在第一篇就说明了,有地图,各种图,表和矩阵
下面是分页报表的所有布局控件
内嵌字段
具体也不用我讲了吧,看字面意思就知道是做什么来着
邮箱:linjie.rd@gmail.com
若有问题,请大家指出
SSRS报表服务随笔(rdl报表服务)-报表结构与样式的更多相关文章
- SSRS报表服务随笔(rdl报表服务)-创建一个简单的报表
这段时间一直在敲rdl报表,在国内的不这么留在,在国外的话,还是挺流行的,国内的话,这方面的资料很少很少,也踏过不少坑 先从SSRS了解起,SSRS全称 SQL Server Reporting Se ...
- SSRS报表服务随笔(rdl报表服务)-报表数据:使用第三方控件生成条形码
因为工作需要,需要将订单号显示成条形码,比如数据库存储的20190106A,我需要把这个转换为Code128来显示出来 在国内我没有找到这方面的教程,最后还是一个人自己摸索出来的 在这里我是使用的是B ...
- SSRS报表服务随笔(rdl报表服务)-报表参数
上一篇我们说了创建一个简单的显示报表,但在实际工作中,我们有很多要带条件的报表 现在先认识一下报表数据,首次打开SSDT,报表数据在窗口的左侧,要是找不到了,没关系,在工具栏-视图-最下面的报表数据 ...
- 深入详解美团点评CAT跨语言服务监控(八)报表持久化
周期结束 我们从消息分发章节知道,RealtimeConsumer在初始化的时候,会启动一个线程,每隔1秒钟就去从判断是否需要开启或结束一个周期(Period),如下源码,如果 value < ...
- ActiveReport系列报表开发随笔收集
转自:博客园 http://www.cnblogs.com/dahuzizyd/archive/2007/04/11/ActiveReport_All.html 使用ActiveReport for ...
- 犀利的报表系统,发票据与报表开发的快速利器,AgileEAS.NET SOA中间件GReport使用指南
一.前言 AgileEAS.NET SOA 中间件平台是一款基于基于敏捷并行开发思想和Microsoft .Net构件(组件)开发技术而构建的一个快速开发应用平台.用于帮助中小型软件企业建立一条适合市 ...
- 在报表中给session赋值实现报表间参数共享
1. 问题描述 在报表开发工具FineReport中,若有几张不同的报表,每张报表都有一个共同的项可以选择,比如日期时间.我们希望选择了第一张报表的时间之后,其他报表的默认时间都变为第一张报表选择的时 ...
- ActiveReports 报表应用教程 (2)---清单类报表
在大多报表系统中都有清单类报表的身影,比如:客户清单.商品信息清单.设备清单.物品采购清单.记账凭证.货品发货清单.员工清单等等.清单类报表看视乎比较简单,但是,由清单类报表演变而来的报表类型却十分丰 ...
- 在VS2012后的版本中做数据报表时,提示尚未指定报表“Report1”的报表定义
有一群的朋友在用VS2012做数据报表时,老是提示 本地报表处理期间出错. 尚未指定报表“Report1”的报表定义 未将对象引用设置到对象的实例. 我看了一下,步骤没错,我用VS2010做了一下,一 ...
随机推荐
- Ocelot中文文档-请求Id和关联Id
Ocelot支持一个客户端以头的形式发送requestid. 如果设置了,一旦中间件管道中可用,Ocelot便会使用这个requestid进行日志记录. Ocelot也会使用指定头将requireid ...
- JVM学习记录-垃圾回收算法
简述 因为各个平台的虚拟机的垃圾收集器的实现各有不同,所以只介绍几个常见的垃圾收集算法. JVM中常见的垃圾收集算法有以下四种: 标记-清除算法(Mark-Sweep). 复制算法(Copying). ...
- JSON Patch
1.前言 可以这么说的是,任何一种非强制性约束同时也没有"标杆"工具支持的开发风格或协议(仅靠文档是远远不够的),最终的实现上都会被程序员冠上"务实"的名头,而 ...
- 集成支付宝,报警告warning: (arm64) /Users/tommy/Desktop/Project/ios-msdk-git/AlipaySDK4Standard/AlipaySDK/Library/UTDI
集成支付宝的时候遇到的问题,找到了解决办法,还说明了原因,非常好,觉得应该记下来,反正以我的记性下次一定是会忘光光哒~ 1) Go to Build Settings -> Build Opt ...
- DX11 Without DirectX SDK--02 渲染一个三角形
回到 DirectX11--使用Windows SDK来进行开发 目前暂时没有写HLSL具体教程的打算,而是着重于如何做到不用DirectX SDK来进行渲染.除此之外,这里也没有使用Effects框 ...
- MongoDb进阶实践之七 MongoDB的索引入门
一.引言 好久没有写东西了,MongoDB系列的文章也丢下好长时间了.今天终于有时间了,就写了一篇有关索引的文章.一说到"索引",用过关系型数据库的人都应该知道它是一个什么 ...
- TCP/IP Http 和Https socket之间的区别
TCP/IP Http 和Https socket之间的区别 TCP/IP是个协议组,它分为网络层,传输层和应用层, 在网络层有IP协议.ICMP协议.ARP协议.RARP协议和BOOTP协议. ...
- linux学习(JDK,Tomcat,nginx)安装
最近学习了在linux,在上面搭建了一个tomcat的服务器,后来又使用nginx进行反向代理了一下下,希望文章对初学者有所帮助. 1.安装JDK.(采用jdk的rpm包进行安装) 安装jdk之前需要 ...
- 数据结构和算法总结(一):广度优先搜索BFS和深度优先搜索DFS
前言 这几天复习图论算法,觉得BFS和DFS挺重要的,而且应用比较多,故记录一下. 广度优先搜索 有一个有向图如图a 图a 广度优先搜索的策略是: 从起始点开始遍历其邻接的节点,由此向外不断扩散. 1 ...
- MYSQL数据库设计规范与原则
MYSQL数据库设计规范 1.数据库命名规范 采用26个英文字母(区分大小写)和0-9的自然数(经常不需要)加上下划线'_'组成; 命名简洁明确(长度不能超过30个字符); 例如:user, stat ...