zoukankan      html  css  js  c++  java
  • 微软RDLC报表打印

     

    关于微软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打开的打印程序就会出现打印拉伸问题。

     

    The most powerful weapon on earth is the human soul on fire.

     

     

     

    分类: RDLC Report

    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
    Fight or flight ^-^!
    即使做个独行侠,也要与众不同
     
     
    标签: SharePoint
  • 相关阅读:
    java基于redis事务的秒杀实现
    redis事务
    java 根据经纬度坐标计算两点的距离算法
    Spring ElasticsearchTemplate 经纬度按距离排序
    springboot springmvc拦截器 拦截POST、PUT、DELETE请求参数和响应数据,并记录操作日志
    jpa Auditor 自动赋值与自定义 @CreatedBy @LastModifiedBy @CreatedDate @LastModifiedDate
    docker安装elasticsearch
    win10中使用 Windows照片查看器
    Springboot 项目启动后执行某些自定义代码
    SimpleDateFormat 线程不安全及解决方案
  • 原文地址:https://www.cnblogs.com/Leo_wl/p/3329363.html
Copyright © 2011-2022 走看看