关于微软RDLC报表打印时文字拉伸问题(Windows server 2003 sp2)
最近我们开发的打印服务频频出现打印文字拉伸问题,客户意见络绎不绝,最为明显的是使用黑体加粗后 “2.0份” 打印出来后小数点几乎看不见了,用户很容易误认为 “ 20份” 。所以问题达到了不得不停下手上的工作,集中研究RDLC打印问题。
下面是打印出来的效果
由于使用RDLC打印已经是1年前的事了,以前都是偶尔出现几次都是说明性文字,也都没太关注。
到底是什么原因呢?
我在网上收了不少资料,都没有讲到重点,最后在Stack OverFlow的一个问题中看到了些初略说法(http://stackoverflow.com/questions/4136484/report-viewer-font-getting-stretched-on-windows-server-machine-only)
大概是这么理解:由于远程桌面连接导致分辨率不同,所以Windows在处理RDLC报表转换成图片打印时对文字处理出现瑕疵。
经过反复测试,最后总结了如下规则
操作系统及配置:Windows server 2003 sp2(32位),SQLServer 2008 R2, .ENT Framework 4.0
SERVER 2003系统默认允许多用户(session)同时访问计算机
假设我有电脑 A(2003 本机安装了上述系统配置) 和 B(远程电脑与A的显卡不同(或分辨率不同)),下面的测试将说明问题如何出现
1. 没有问题 打印程序在A上打开,在B上通过多例模式(开新的Session),从AB上下打印任务到DB
2. 有问题 打印程序在A上打开,在B上通过单例模式(打开后A会被注销),从AB上下打印任务到DB
3. 有问题 打印程序在B上通过单例或多例模式打开,在AB上下打印任务到DB
可以看出只要是通过远程Session打开的打印程序就会出现打印拉伸问题。
SharePoint PerformancePoint开发实例
由于工作的原因,有一段时间没有发新的随笔了,最近使用了SharePoint PerformancePoint做了一些报表,与大家分享经验。
本文完全原创,转载请说明出处,希望对大家有用。
阅读目录:
- 开发环境
- BI目标
- BI实施
- 总结
一、开发环境
操作系统:Windows Server 2008R2
数据库:SQL Server 2008R2
SharePoint Server 2010
二、BI目标
需求:
- 根据销售数据显示所选年份的月销售额
- 根据销售数据显示所选年份销售额前十的供应商
- 根据销售数据显示所选年份每个供应商每月的销售额(包括合计)
根据上述需求,我们可以分析出此报表需要至少2个纬度:时间维度,供应商维度。
首先设计报表的呈现方式,为了更好的对比所选年份的月销售额,我们选择柱状图。
销售额前十的供应商选择饼图来体现不同的百分比。
每个供应商每月的销售额选择表格来呈现。
其他问题:多数据源,需要使用ETL将多个数据源数据汇总。
三、BI实施
首先使用SSIS创建ETL,用来将多个数据源处理后汇总。
这里我们不做详细解释,因为SSIS功能很强大,希望大家多做研究,我只对我自己做的进行截图并解释一下:
上图显示的是ETL中最重要的数据处理阶段,根据需求,我们从3个不同的数据库中取得数据,经过数据转换(为了数据格式统一),汇总到新的数据库(可以认为是数据仓库)。
接下来是重要的数据分析阶段,使用SSAS构建多维数据库
根据BI目标中的需求,我们根据ETL汇总的数据生成2个纬度的Cube
分别是Dim.date,Dim.supply
Dim.date维度中包括有日->月->年
Dim.supply维度主要是供应商的信息
到这里我们数据已经准备就绪,需要使用PerformancePoint来呈现数据
首先要新建数据源,连接我们之前建好的多维数据库
接下来是具体的报表操作
1、新建1个年份筛选器(year)
按照个人需求,选择筛选器的值,这里选择成员选择器,也就是说筛选器的值是由多维数据库中的维度填充。
2、新建一个Analytic chat报表
如图:
我们可以使用PerformancePoint提供的可视化设计页面,将所需要呈现的数据分别拖拽到行、列以及数据背景
如图:
3、最后新建一个Dashboard,用来承载我们做好的报表
效果如图:
按照需求,我们还需要做2个报表,制作方法与上面的示例相同,仅数据选择上有些不同,按照自己的需要添加即可。
有时我们只用PerformacePoint提供的可视化界面无法实现我们想要的,可以点击界面中的Query(查询)标签,可以看到报表的MDX,这样就可以更加自由的编辑了。
需要注意的是,如果自定义了MDX,参数也需要自定义,否则无法识别。
如图:
这样我们的报表已经创建完成,剩下的工作就是测试和优化了。
下面贴一下我做好的页面效果:
四、总结
PerformancePoint优势:
- 作为报表呈现的一种方式,简单、丰富、直观
- 支持多种数据源
- 支持分析报表钻取
PerformancePoint限制:
- 报表样式无法定制;
- 只能作为基础报表的一种方式,同时必须承载于SharePoint