在B/S系统下面如何用水晶报表打印指定的内容.
打印效果如下:
1、可以定长打印(如可按指定的A4纸进行打印)
2、可以按内容的多少进行连续打印(如,有10000条记录,不分页一次性打下来)分不够再加……

解决方案 »

  1.   

    http://www.csdn.net/develop/author/netauthor/haibodotnet/
      

  2.   


    DataTable dtBjajdj = clsPublicVaria.DataBase.proRptBjajdjTable(this.strbookid);
    rptBjajdj rptbjajdj = new rptBjajdj();
    rptbjajdj.SetDataSource(dtBjajdj);
    // this.rptview.ReportSource = rptbjajdj;
    // this.DataBind();
    // this.rptview.Visible=true;

    CrystalDecisions.Shared.DiskFileDestinationOptions  DiskOpts=new CrystalDecisions.Shared.DiskFileDestinationOptions();
    rptbjajdj.ExportOptions.ExportDestinationType = CrystalDecisions.Shared.ExportDestinationType.DiskFile;
    rptbjajdj.ExportOptions.ExportFormatType = CrystalDecisions.Shared.ExportFormatType.WordForWindows;
    DiskOpts.DiskFileName = "D://c.doc";
    rptbjajdj.ExportOptions.DestinationOptions = DiskOpts;
    rptbjajdj.Export();
                Response.ClearContent();
    Response.ClearHeaders();
    Response.ContentType="application/msword";
    Response.WriteFile("D://c.doc");
    //Response.WriteFile("D://b.pdf",1000,10000);
    Response.Flush();
    Response.Close();
    System.IO.File.Delete("D://c.doc");
    导出WORD打印,,也可也直接 用水晶观察器掉用ie 打印
                把你要打印的内容,不过这个打印有网址,推荐用word打印。我也是这样做的
    不过客户端要安装word ,还有你可以省级到crystalreport 10 有自己的打印
      

  3.   

    我已经放在详细资料里了,可是还是不行啊...那如果只有一条记录还是要用掉一张纸啊...现在的目的是如果只有一条记录,就用能够打一条记录的纸.就是说有多少记录用多少纸...还有 jinbingg(bing)你的DataTable dtBjajdj = clsPublicVaria.DataBase.proRptBjajdjTable(this.strbookid);clsPublicVaria这个我这里怎么没有呢???
      

  4.   

    请问我导到word之后,为什么是乱码?
      

  5.   

    我把它改成Excel了,
    导出来是没问题,
    我把这句话给引掉了:System.IO.File.Delete("D://c.xls");
    发现D盘下是有文件存在
    可是页面上老是提示下载本页:*.aspx
    晕了,为什么不是提示下载c.xls文件,却是提示下载这个aspx文件呢?
    是不是还要加什么代码,麻烦帮下忙,谢谢
      

  6.   

    导出后  Response.Redirect(@"d;\c.xls");
      

  7.   

    现在存在两个问题
    1。如果导出到word,在IE里出现的是乱码,但是导出的文件用word打开是正常的
    2。如果改为Excel,导出的时候就会出现上面的问题:它会弹出一个对话框,提示下载本页面(*.aspx文件)。而且在IE里也不能出现 Excel。导出来在D盘的文件也能正常打开,内容也是正确的。
    不知道这个问题怎么解决。
      

  8.   

    clsPublicVaria 这个是我自定义的公共类
    你不用管。。我给你的代码在b/s 下导出word 打印已经给客户安装。也不错。乱码的原因可能是你word的问题。。 建议从新装 最好是word 2000 , 你必需是先生成报表然后在输出到叶面,这个你放心肯定是没有问题的。
    DataTable dtBjajdj = clsPublicVaria.DataBase.proRptBjajdjTable(this.strbookid);
    //获得数据源,你要得数据源
    rptBjajdj rptbjajdj = new rptBjajdj();
    //定义报表
    rptbjajdj.SetDataSource(dtBjajdj);
    //设置报表的数据源//this.rptview.ReportSource = rptbjajdj;
    //this.DataBind();
    //this.rptview.Visible=true;
    //上面的三条被注释掉了。你可以显示报表到叶面看看有没有数据
    CrystalDecisions.Shared.DiskFileDestinationOptions  DiskOpts=new                      CrystalDecisions.Shared.DiskFileDestinationOptions();
    rptbjajdj.ExportOptions.ExportDestinationType = CrystalDecisions.Shared.ExportDestinationType.DiskFile;
    rptbjajdj.ExportOptions.ExportFormatType = CrystalDecisions.Shared.ExportFormatType.WordForWindows;
    DiskOpts.DiskFileName = "D://c.doc";
    rptbjajdj.ExportOptions.DestinationOptions = DiskOpts;
    rptbjajdj.Export();
    //报表的导出
    Response.ClearContent();
    Response.ClearHeaders();
    Response.ContentType="application/msword";
    Response.WriteFile("D://c.doc");
    Response.Flush();
    Response.Close();
    System.IO.File.Delete("D://c.doc");
    //客户端显示
      

  9.   

    谢谢jinbingg(bing)大歌的帮忙
    我在家里的机器出现我前面说的问题
    今天到公司的机器上试了下,居然正常,我晕,估计是我家里机器上word的问题
    不过公司机器不能正常显示图片,就是报表的柱状图,还是翻页之类的按钮图片,这个我又不知道是什么原因了,这个我在家里的机器上能正常显示的。
      

  10.   

    友情顶贴
    友情链接,哈哈
    http://community.csdn.net/Expert/topic/4076/4076672.xml?temp=.6320917
      

  11.   

    web下打印其实很简单ExpTab rp=new ExpTab();//创建水晶报表对象//
    //当然中间可有一些对textobject赋值的,因为你不可能作一个很呆的报表.
    ////打印代码
    rp.PrintOptions.PrinterName =@\\ZHOUFENG\hp LaserJet 1000 DOS;
    //打印机名,可为网络打印机,若出现"用户取消了请求",也其解决方案
    rp.PrintToPrinter(1, false, 1, 1);
      

  12.   

    我从数据库读出一条记录,并想在程序中把这些值依次赋给水晶报表中的文本字段里。应该怎样实现呢??不要用水晶报表向导。就是要求实例化水晶报表,然后对报表页眉里的文本对象进行赋值。
    我用的是C#.NET,请高手指点!