zoukankan      html  css  js  c++  java
  • 水晶报表 中一刀格式设定

    水晶报表 连接博客:http://www.cnblogs.com/babyt/archive/2008/01/03/1024941.html 阿泰
    http://blog.csdn.net/haibodotnet/archive/2003/11/09/21504.aspx 海波
    热心的网友<寒羽枫>帮忙解决水晶报表打印纸张问题  http://www.cnblogs.com/daxia/archive/2006/12/15/593666.html

    蜡人张的报表博客  http://www.cnblogs.com/waxdoll/category/49402.html

    Crystal Reports for Visual Studio 2005

    教程和示例代码   http://msdn.microsoft.com/zh-cn/library/ms227881%28VS.80%29.aspx 

    PageSize是枚举值,参考资料http://msdn.microsoft.com/zh-cn/library/ms226507(VS.80).aspx
    设定报表尺寸,应在加载报表后绑定前设定
    repDoc为ReportDocument类的实例
            CrystalDecisions.Shared.PageMargins margins;
                margins = repDoc.PrintOptions.PageMargins;
                margins.leftMargin = 0;//设定页边距
                margins.rightMargin = 0;
                margins.topMargin = 0;
                margins.bottomMargin = 0;
                repDoc.PrintOptions.ApplyPageMargins(margins);
    //设置成   139.7   x   215.9   毫米的纸张,也就是“半刀纸”,约   A4   的一半。
             repDoc.PrintOptions.PaperSize = CrystalDecisions.Shared.PaperSize.PaperStatement;

    //设置报表方向为横向
           repDoc.PrintOptions.PaperOrientation = CrystalDecisions.Shared.PaperOrientation.Landscape; 

    这个打印出来的是横向的了,还是按照A4纸跳页的

    //设置成   A4纸
    repDoc.PrintOptions.PaperSize = CrystalDecisions.Shared.PaperSize.PaperA4;

    //设置报表方向为纵向
                repDoc.PrintOptions.PaperOrientation = CrystalDecisions.Shared.PaperOrientation.Portrait;

    在详细资料节点的“在这之后分页”加入公式,RecordNumber<>0,代表每一个记录都分页

    在水晶报表中版本设成中一刀的版面,

    image

    这边设定成中一刀的话,预览的时候就是按照中一刀格式预览的。

    但为什么打印机打印的时候还是按照A4纸张跳页呢,

    这个要在代码里面设定纸张格式。

    #region ==== 設定紙張 ====

    int PaperRowKind = 0;
    System.Drawing.Printing.PageSettings pageSettings = new System.Drawing.Printing.PageSettings();
    foreach (System.Drawing.Printing.PaperSize pageSize in pageSettings.PrinterSettings.PaperSizes)
    {
        if (pageSize.PaperName == "中一刀")
        {
            PaperRowKind = pageSize.RawKind;
            break;
        }
    }
    rptMain.PrintOptions.PaperSize = (CrystalDecisions.Shared.PaperSize)PaperRowKind;

    #endregion

    这里的“中一刀”就是打印机上设定的中一刀格式了。

    0G}6UTSZWM4T3{`~EHY_W7O

    这个画面是在控制面板的服务器属性里面设定的,宽带为21.4公分,高度为14公分,这个就是中一刀的尺寸了,打印机要设定这个尺寸,才能正确打印出来。

    还有一个问题,在给客户部署这个程序的时候,这个程序选择的打印机是在别人电脑上连接的打印机,这个程序选择的打印机是那个人电脑上的,那个连打印机的电脑上也设置了中一刀的格式了,这个外挂报表上的电脑也设置了中一刀了,但在列印的时候不是按照中一刀跳页的,问题出在执行这个程式,点列印功能的时候,虽然选择了这个打印机,但他默认的纸张格式不是中一刀,要手动选择设置它纸张格式(在高级的地方可以设置)。每次点击打印选择打印机都要重新设置,我估计的原因是要装打印机的那台电脑和执行程序的电脑都要把那个打印中一刀格式的打印机设成默认的打印机。

    水晶报表分栏的经验,在详细资料节点配置中,选中多重资料列格式化,在出现的配置节点中,设置详细资料单列的宽度,要求在页边距为0的情况下,单列宽度*要分成的几列列数<页面宽度,eg:A4纸,它的宽度是21cm,分成三列的话,单列宽度要设<7cm的值才能实现3列分栏

  • 相关阅读:
    整理sql server数据类型
    【MVC4升级到MVC5】ASP.Net MVC 4项目升级MVC 5的方法
    MVC学习笔记:入门
    maven第一次创建项目太慢解决方法
    idea中创建maven的Javaweb工程并进行配置
    idea中MavenWeb项目不能创建Servlet的解决办法
    Java模拟客户端向服务器上传文件
    Java学习随笔---常用API(二)
    ssh设置超时时间
    linux 登陆失败处理
  • 原文地址:https://www.cnblogs.com/zqstc/p/1615086.html
Copyright © 2011-2022 走看看