RDL(C) Report Design Step by Step 3: Mail Label

VisualStudio自带报表RDLC(GotReportViewer的实例) 很多人都不知道VS自带了报表工具,普通功能基本上都能满足,该压缩文件中是RDLC的相关示例,其中【RDLC-MailLabel(多列报表).rar】为多行多列交叉报表示例,很实用。 立即下载

RDL(C) Report Design Step by Step 3: Mail Label

    Crystal Report在报表向导中提供了三种向导类型给用户进行选择——Standard、Cross-Tab和Mail Label,而Visual Studio/BIDS报表向导只有两种——表格格式和矩阵,这是和Crystal Report的前两种报表类型相对对应的,那么怎么在Visual Studio/BIDS中实现Mail Label呢?

    先来看一下什么是Mail Label。Mail Label如果直译成中文的话,就是“邮件标签”,这是一个有歧义的名词,一些邮箱(如Gmail)和客户端邮件工具(如Foxmail)将“邮件标签”作为一种将邮件进行分类以方便信息管理的工具。而本篇随笔讨论的显然无关“电子”邮件,而是一种比较常用的报表。设想如下的场景:如果一个组织(比如一家出版社)需要向一批客户发一份比较正式的书面信件(比如征订启事)。而这些客户的通信地址、收件人邮政编码等又以某种形式(数据库、平面文件等)存储在计算机中,工作人员显然不希望在每一个信封上手工书写这些信息,他/她要做的无非是把这些打印出来并粘贴到信封上就可以了。这样的话,一个普通的报表也可能就已经能够满足他/她的需求了,尽管我们知道邮政编码、通信地址、收件人三个字段之间是需要换行的。但是,如果他/她恰巧使用的是常见的如A4之类的纸张,而同时他/她又不希望浪费纸张,那么他/她希望要的报表可能就是如图1所示的报表了。这就是所谓的“邮件标签”报表了,当然“邮件标签”报表不仅仅局限于多个信件通信地址的一次打印,凡是具有类似结构的报表都可以被称为“邮件标签”报表。



图1 Access的Northwind示例数据库中的“邮件标签”报表(点击小图看大图)

    正如图1的标题所示,Access是支持“邮件标签”报表的,不过在报表设计上只是让标签中涉及到的字段纵向排列而已,真正实现多列标签打印是通过对报表的“页面设置”来完成的,如图2所示。



图2 Access中“邮件标签”报表的“页面设置”

    在进行报表设计之前,我们先为本文的邮件标签进行数据准备。本文的示例报表的数据来源于SQL Server 2005的示例数据库AdventureWorks,在AdventureWorks数据库中使用以下SQL语句建立视图Production.MailLabel:

USE [AdventureWorks]
GO
/**//****** 对象:  View [Production].[MailLabel]    脚本日期: 08/26/2006 16:05:26 ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
CREATE VIEW [Production].[MailLabel]
AS
SELECT     Production.Product.Name, Production.Product.Color, Production.ProductPhoto.ThumbNailPhoto
FROM         Production.Product INNER JOIN
                      Production.ProductProductPhoto ON Production.Product.ProductID = 

Production.ProductProductPhoto.ProductID INNER JOIN
                      Production.ProductPhoto ON Production.ProductProductPhoto.ProductPhotoID = 

Production.ProductPhoto.ProductPhotoID
WHERE     (Production.Product.Color IS NOT NULL)
GO


打开视图,我们可以得到如图3所示的示例数据,这将是本文示例所使用的报表数据。



图3 示例使用数据

    也就是说,本文的示例演示的邮件标签中展示的数据是AdventureWorks生产的自行车的名称、颜色以及缩略图。

    既然是邮件标签,我们要将Name、Color以及ThumbNailPhoto这三个一行中字段纵向显示,这个比较容易实现;我们还需要将指定行数的数据作为一列显示在报表中,这就涉及到行到列的转换问题。事实上,可以说行列转换问题是邮件标签报表面临的最大的问题,要解决这个问题,一种可行的方案是使用SQL语句中出现在FROM子句中的PIVOT关系运算符将表结构进行转换,然后使用Table控件显示数据。另外,我们知道标准控件中的Matrix控件的功能其实就是一个Pivot Table(数据透视表),我们可以清楚地在控件工具栏上看到对Matrix控件的提示是“用于任何多列样式报表的行列布局”,该控件对数据的处理其实是和PIVOT运算符是相通的,就是说使用该控件可以避免使用PIVOT运算符而实现一个交叉表的结构,所以本文选择使用这种方案来实现邮件标签报表。

    1、创建报表服务器项目RDLML。

    2、新建共享数据源DataMailLabel,设置到数据库AdventureWorks的连接,并为报表指定相应的访问凭据。

    3、不使用向导新建报表rptMailLabel,在报表设计器的“数据”选项卡,新建数据集MailLabel,使用工具栏按钮切换到通用查询设计器,在“关系图”窗格中使用右键菜单“添加表”并选择视图Production.MailLabel,选择Name、Color、ThumbNailPhoto三列作为输出,这样我们在SQL窗口中可以看到以下SQL语句:

SELECT 
    Name, 
    Color, 
    ThumbNailPhoto
FROM Production.MailLabel


4、在SQL窗格中修改代码2中的SQL语句如代码3所示。

SELECT 
    (ROW_NUMBER() OVER (ORDER BY Name) - 1) / 4 + 1 AS TitleRow, 
    (ROW_NUMBER() OVER (ORDER BY Name) - 1) % 4 + 1 AS TitleColumn, 
    Name, 
    Color, 
    ThumbNailPhoto
FROM Production.MailLabel


代码3中,ROW_NUMBER()用于为返回数据的行号,需要和OVER关键字结合使用,使用OVER关键字可能会导致图4所示提示信息的出现,这是由于通用查询设计器不支持OVER关键字所导致的,而事实上T-SQL是支持该关键字的,可以忽略此信息的出现。



图4 使用OVER关键字出现的提示信息

    代码3选择出的数据如图5所示。



图5 代码3选择出的数据

    5、按照图6的方式进行报表布局设计。



图6 报表布局设计

    其中,拖动图像控件到报表布局时会出现“图像向导”,在“选择图像源”页面中选中“数据库”,并在接下来的“指定图像字段”页面中,进行如图7所示的设置。



图7 指定图像字段(点击小图看大图)

    6、选中值为“=Fields!TitleRow.Value”的文本框,右键“属性”,在“文本框属性”对话框的“可见性”选项卡中,选择“初始可见性”为“隐藏”,同样设置值为“=Fields!TitleColumn.Value”的文本框。

    7、为了明显区分邮件标签列表中的各个项目,可以选中列表框控件,F4调出属性浏览器,设置BorderColor为LightGray,设置BorderStyle为Dashed;另外,为了使报表看起来更美观,可以在列表框中微调控件的位置。

    OK,到此为止,一个邮件标签报表就设计完成了,其预览效果如图8所示。



图8 预览效果(点击小图看大图)

    至于在这些步骤中隐藏的设计思路,请朋友们自己总结。

    DEMO下载

    感谢jimmyhell在本Blog的评论,是他提出了这个问题,不然我不会想到要去做一个邮件标签报表,谢谢!

 

 

Microsoft RDL ReportBuilder3 微软官方提供,用于依托SSRS设计rdl或者(rdlc)报表的工具。可以脱离Visual Studio提供的Report Designer。 立即下载

相关推荐

细说VLAN之untag和tag

一、拓扑图 先给出上面拓扑图的结论,后面再详细讲解: 结论:只有PC1与PC4之间能相互通信,除此之外,所有PC之间均不能通信,比如PC1与PC3不能建立通信。 针对Ping命令的一个知识: 要想ping通某台主机,必须满足两个条件: 1,源主机的ICMP请求包必须能达到目的主机。 2,目的主机的ICMP应答包必须能回到源主机。 二、理论基础 端口的出...

NoobMaster的博客 3万+

水晶报表CrystalReport实现报表打印和动态图片导入

在新弹窗中,选择"报表字段",在字段列表中找到封装了动态URL的字段,双击后,会自动带出到下方的输入框中,选择"保存并关闭"SAP网站是国外网站,是全英文的,网站资源很丰富,找个CrytalReport都费劲。或者可通过网盘下载链接下载相关jar依赖,直接放到maven仓库下的\com目录下解压。设计好报表的样式,把数据源的字段拖曳过来即可,这里主要详细介绍一下动态图片的配置。我用的水晶报表设计器是2008版本,有需要的可通过以下链接下载破解版。下载后傻瓜式的安装就可以了,破解安装后,打开的界面如下。

wusy001的博客 2679

计算机模拟爆破过程,基于LSDYNA岩石爆破模拟建模分析

原标题:基于LSDYNA岩石爆破模拟建模分析 Ls Dyna岩石爆破模拟仿真作者:dyna_focus擅长领域:dyna/abaqus/hypermesh一、 数值模型的建立1.1 单元及算法的选择岩石,炸药,空气都采用solid164实体单元。岩石采用常应力实体单元,该种单元属于纯粹的lagrange算法,该种算法单元网格附着在材料上,随着材料的流动而产生单元网格的变形,但是在结构变形巨大时,有...

weixin_29494379的博客 7314

水晶报表 CrystalReport 使用 锦集

1、指定报表的相对路径。方法一: like this:use add ..\ before the path Code<CR:CrystalReportViewerID="CrystalReportViewer1"runat="server"AutoDataBind="True"Height="50px"ReportSourceID="Cr...

weixin_30460489的博客 596

YOLO详解

本文参考知乎 https://zhuanlan.zhihu.com/p/25236464 1. YOLO的创新点 YOLO将物体检测作为回归问题求解。基于一个单独的end-to-end网络,完成从原始图像的输入到物体位置和类别的输出。 从网络设计上,YOLO与two steps的目标检测方法如RCNN、Fast RCNN和Faster RCNN的区别如下: YOLO训练和检测均是在一个单独网...

UnknownPlayer的博客 9949

基于STM32设计的老人监护系统(OneNet)_118

该项目是基于STM32设计的老人监护系统。本系统可以通过脉搏心率传感器,体温传感器检测老人的脉搏状态,体温状态,把老人的数据状态在STM32单片机内部进行处理,然后通过GSM模块上传到OneNet云平台,在通过可视化界面显示出来,这样可以让子女随时随地了解到老人现在的身体情况,以便对老人的突发情况能够做出及时的预防和处理。而且如今,随着老人年纪不断的增长,身体体质不断的衰弱,在上楼梯或者走斜坡的时候很容易会发生摔倒或跌倒,如果不及时的接收到治疗,很可能会造成很严重的后果。

7456

RDL(C) Report Design Step by Step

RDL(C) Report Design Step by Step 1: DrillThrough Report    前一段时间,发了几篇关于RDLC报表的随笔,由于这些随笔中没有关于报表设计方面的内容,于是不少网友和我联系,问了一些关于报表设计方面的问题,最近准备写几篇关于RDLC报表设计的随笔。    这篇随笔主要描述实现钻取报表的步骤。    钻取报表的数据源应该是两个

keisuoy的专栏 3121

商用车重型多挡位机械式变速器(AMT)结构设计与仿真分析

本文针对商用车重型AMT变速器开展结构设计与仿真分析。设计采用12挡双中间轴结构,匹配400kW柴油发动机,最大扭矩2000Nm。通过等比级数分配传动比(头挡14.5,最高挡0.78),采用主副箱组合实现多挡位。双中间轴结构可抵消径向力,提升承载能力。关键设计包括:235mm中心距、4.5-5.0mm齿轮模数、锁环式同步器和复合润滑系统。通过Python参数化建模进行强度校核,计算显示中间轴在2000Nm工况下等效应力满足安全系数要求(屈服强度850MPa,安全系数≥2)。该设计解决了传统MT变速器操作强度

AI的内部世界的博客 113

[转]RDL(C) Report Design Step by Step 3: Mail Label

本文转自:http://www.cnblogs.com/waxdoll/archive/2006/09/02/493350.html  Crystal Report在报表向导中提供了三种向导类型给用户进行选择——Standard、Cross-Tab和Mail Label,而Visual Studio/BIDS报表向导只有两种——表格格式和矩阵,这是和Crystal Report的前两种报表类型相...

weixin_34198453的博客 163

Python 爬虫实战:在房天下抓取房产信息,分析房价走势

通过本次 Python 爬虫实战,我们成功地从房天下爬取了房产信息,并进行了存储、处理、分析和可视化展示。在这个过程中,我们不仅掌握了爬虫技术的基本应用,还学会了如何对动态加载的数据进行处理和分析。然而,本次爬虫任务也存在一些局限性,例如仅爬取了部分区域的房产数据,且未对房产的图片和视频内容进行分析。在未来的工作中,我们可以进一步优化爬虫程序,爬取更多区域的房产数据,并深入分析房产的多媒体内容、用户行为模式等,为购房者和房地产从业者提供更有价值的数据支持。

u014481728的博客 1367

手把手教你学Simulink——整流器场景:基于PWM控制的单相全桥整流器设计

摘要:本文详细介绍了使用Simulink搭建基于PWM控制的单相全桥整流器的完整设计流程。主要内容包括:系统结构设计(含交流电源、全桥整流器、滤波电路等模块)、分步骤建模过程(从创建项目到添加各功能模块)、双闭环控制系统设计(电压外环和电流内环PI控制)、参数设置建议及仿真分析。通过仿真验证,该整流器可实现单位功率因数运行和稳定输出电压,并提供了数字锁相环等优化方向。文章为电力电子系统设计提供了实用的Simulink建模指导。(149字)

MHD0815的博客 324

[导入]RDL(C) Report Design Step by Step 3: Mail Label

摘要: Crystal Report在报表向导中提供了三种向导类型给用户进行选择——Standard、Cross-Tab和Mail Label,而Visual Studio/BIDS报表向导只有两种——表格格式和矩阵,这是和Crystal Report的前两种报表类型相对对应的,那么怎么在Visual Studio/BIDS中实现Mail Label呢?阅读全文蜡人张 2006-09...

weixin_30918633的博客 134

【深度学习|多实例学习】多实例学习(Multiple Instance Learning, MIL)的起源、发展和应用,附代码(一)

【深度学习|多实例学习】多实例学习(Multiple Instance Learning, MIL)的起源、发展和应用,附代码(一)

2401_89898861的博客 1921

RDL(C) Report Design Step by Step 2: SubReport

RDL(C) Report Design Step by Step 2: SubReport http://www.cnblogs.com/waxdoll/archive/2006/07/24/458409.html 前两天,有网友在Blog上评论要求将子报表的配置贴出来,由于这两天有些别的事情,所以耽搁了;另外,自己也比较懒,有些东西明明应该早就写出来的。呵呵,说声“对不起”,然后还有“...

编程资料大全 137

C# WinForm 基于DirectShow.dll编写的程序,可边预览边保存视频,音频和图片

基于微软的DirectShow.dll的二次开发1.自动识别连接的摄像头跟麦克风且可以对其进行选择(默认选中第一个)2.可录制wmv和avi两种格式的视频并且都带有音频,avi可以录制的分辨率和帧数进行选择,wmv默认进行了淸晰度优化如不喜欢可去除代码中有相关提示3.可在预览点开之后进行拍照,也可边录制视频边拍照4.添加了视频和音频的压缩功能(酌情使用)这次二次开发发现C#对DirectShow的相关信息太少,这次做完也不敢藏私共享出来,还望大家指正

老版QQ原生表情gif动态

这是老版的QQ表情,不过全是动态的的,Windows照片查看器是不会动的,可以右击用浏览器打开查看,再说一遍是老版的,只是分享给宁愿用老版也要动态的人。

一个简单的 Reporting Services 报表示例

准备工作首先必须安装SQL Server 2005的高级版本,比如Enterprise和Development版,否则不会有Business Intelligence Development Studio的存在。其次就是配置好服务器与客户端,当然如果服务器就是本地机器就好办些,若是正统的C/S,出现远程连接问题的时候请参照我这篇blog文章:http://ustc.blog.hexun.c

大森林的专栏(Jack Wu) 1020

Devexpress16.2.6破解工具

Devexpress16.2.6破解工具Devexpress16.2.6破解工具Devexpress16.2.6破解工具Devexpress16.2.6破解工具

微软Rdlc报表设计器下载 RdlcDesigner

使用Vs下载太慢了 ,分享下下载好的安装包 链接:https://pan.baidu.com/s/1j-H-wB8YBBuGiWrBGAmFlw 提取码:k1z0

急景流年的博客 2293

IEM模型,地表粗糙度模拟

利用微波反演土壤水分时候,利用IEM模型可以实现对随机地表的模拟

Microsoft RDLC Report Designer 下载

Microsoft RDLC Report Designer VS2019专用。

504

Microsoft RDLC Report Designer下载地址

Microsoft.RdlcDesigner,rdlc报表设计器,Microsoft.RdlcDesigner.vsix

hualeo的专栏 2186

在VS中 Microsoft RDLC Report Designer 2022 (Microsoft RDLC报表设计器2022)安装方法

下载Microsoft RDLC Report Designer 2022 (Microsoft RDLC报表设计器2022)安装。Microsoft RDLC Report Designer 2022 (Microsoft RDLC报表设计器2022)添加报表设计器,可以在扩展----管理扩展—联机,里面找到下面这个,然后点下载。

微软Dynamics 365 CRM,Power Apps,Power Platform技术和技能培训 4506

水晶报表 Report Viewer .rdlc

环境有两种:一种是直接使用 visual studio 2010 版本, 安装后自动带有 报表另一种是在visual studio 2022 版本 安装插件, Report Viewer 查看器来实现。

用心就有翼 3317

C# winform 报表安装与使用--RDLC篇

winform 使用rdlc报表设计,新手教程。

qq_36721497的博客 1300
上一篇: RDL(C) Report Design Step by Step 2: SubReport
下一篇: RDLC子报表
GoodShot
博客等级 码龄22年 968粉丝 281原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值