水晶报表 中一刀格式设定

水晶报表 连接博客: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列分栏

原文地址:https://www.cnblogs.com/zqstc/p/1615086.html