zoukankan      html  css  js  c++  java
  • Silverlight打印解决方案2.1正式发布(支持打印预览、页面设置(横向纵向,页边距,纸张大小、字体大小)、自动分页和多页连续打印)

    此次版本更新,主要是针对用户的反馈意见进行的。本着尽量多写Demo,少写文档的原则。毕竟文档千言,不如代码一行,关键是我语言表达能力也不行啊!:)

    主要实现以下新功能:

    1、不弹出打印对话框(需要提升的权限,只支持Silverlight 5):

    Silverlight 5支持使用默认打印机直接打印,而不弹出打印对话框。但是,需要用户权限提升,如果是OOB浏览器外应用的话只需要两步:

    你的应用程序项目属性,中勾选:

    点击"浏览器外设置",勾选:

    如果是浏览器内运行的程序,需要设置成浏览器内受信任的应用程序,参见我的另一篇文章:企业内部使用Silverlight5浏览器内受信任的应用程序

    调用很简单:

    Report.Print(true); //传参数true即可

    2、设置打印纸张大小和方向(需要提升的权限)

    silverlight完全受信任运行时,可以通过平台调用PInvoke做任何事情,当然包括改变打印纸张大小和方向。

    3、增加多个回调函数,让用户对打印过程有更多控制,有更多自由发挥的空间。

    例如:1)实现“本页小计”功能,可以通过“PrintPageFooterCallBack”回调,在页脚添加:

    甚至可以在表体最后一行添加:

    2)通过“PrintReportFooterCallBack”,可以在报表的最后打印图表等任何东西,并实现自动分页。

    4、从单独的文件中,或者从字符串中加载报表模板:

    有时我们可能需要将报表定义放到单独的文件中,或者从后台加载报表定义,然后绑定数据源。详情参见Demo-“动态加载表模板”

    5、自定义表体:

    通常情况下,我们的表体是二维表格的形式。如果你的表体不是,例如是一条记录一个表。这可以通过自定义项模板实现,同样可以实现自动分页。其实这不是什么新功能,只是Demo中没有演示。详情可参见我的另一篇blog:Silverlight打印解决方案2.0之如何自定义表体

    6、套打:

    其实只要对Silverlight的数据绑定熟悉的话,可以很轻松的实现套打。Demo中有两个例子,可以参考。

    7、手动分页:

    支持手动插入分页符,是通过报表的ManualPager数组实现的。

    8、动态表头:

    如果要实现按月统计订单的功能,动态设置表头的数据源还是需要有的!

    9、报表组合:

    有时我们需要把几份报表合成一份打印,可以定义多个Report对象,将其组合起来就可以了!

    789在一个Demo中演示——“手动分页/动态设置页头/分月份合计/报表组合”

    10、动态设置表头、表体和表尾的数据模板

    由于报表控件不能可视化设计,对于不熟悉Xaml的开发人员是个问题。数据模板支持动态设置,我们就可以用VS或Blend设计好模板,然后加载了。 参见Demo-套打(子报表)

    11、打印预览对话框随着容器窗口的改变而改变。

    预览对话框继承自ChildWindow,我们会发现当我们改变了容器窗口,例如浏览器窗口缩小或放大了,全屏预览窗口不会随之改变。此次版本更新解决了这个问题。

    Bug修复:

    多层表头在特殊情况下,通常是多于2层时表格线显示不对的bug。

    注意:

    1) 程序使用vs 2010 sp1和Silverlight 5 开发。如果不能打开解决方案,可能是没有安装Microsoft® Silverlight® 5 Tools for Visual Studio® 2010 SP1。

    安装Microsoft® Silverlight® 5 Tools for Visual Studio® 2010 SP1

    2) 如果如果源代码编译出错,可能是没有安装Silverlight Toolkit

    安装Silverlight 5 toolkit

    获取全部源代码

    购买以前版本的用户请注意查收是否收到此次更新的源代码,您的支持就是我的动力!


    兼容历史版本:

    Silverlight打印解决方案2.0

    Silverlight打印解决方案1.0

  • 相关阅读:
    nowcoderD Xieldy And His Password
    Codeforces681D Gifts by the List
    nowcoder80D applese的生日
    Codeforces961E Tufurama
    Codeforces957 Mahmoud and Ehab and yet another xor task
    nowcoder82E 无向图中的最短距离
    nowcoder82B 区间的连续段
    Codeforces903E Swapping Characters
    Codeforces614C Peter and Snow Blower
    Codeforces614D Skills
  • 原文地址:https://www.cnblogs.com/slmk/p/2570303.html
Copyright © 2011-2022 走看看