博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
【转】asp.net不用CrystalReportViewer 直接打印
阅读量:5947 次
发布时间:2019-06-19

本文共 2301 字,大约阅读时间需要 7 分钟。

hot3.png

给页面放一个DropdownList,在PageLoad事件里添加以下代码:

 For Each iprt As String In System.Drawing.Printing.PrinterSettings.InstalledPrinters
            DropDownList1.Items.Add(iprt)
   Next

放一个Button,点击事件为:

Dim reportDoc As ReportDocument = New ReportDocument()

       reportDoc.Load(Server.MapPath("CrystalReport1.rpt"))

        reportDoc.PrintOptions.PrinterName = DropDownList1.SelectedItem.Text
        reportDoc.PrintToPrinter(1, False, 0, 0)

在VS2005上测试通过。

今天发现一个好的办法,给画面拖一个CrystalReportSource空间CrystalReportSource1,拖一个sqldatasource,在sqldatasource中进行数据筛选,然后将它与CrystalReportSource绑定,执行下边几句进行打印

CrystalReportSource1.DataBind(); '取出筛选的数据

CrystalReportSource1.ReportDocument.PrinterName = DropDownList1.SelectedItem.Text

CrystalReportSource1.ReportDocument.PrintToPrinter(1, False, 0, 0)

aspx 代码:

<CR:CrystalReportViewer ID="CrystalReportViewer1" runat="server" AutoDataBind="true"

            PrintMode="ActiveX" Width="600px" Height="400px" />
        <asp:DropDownList ID="DropDownList1" runat="server">
        </asp:DropDownList>
        <asp:Button ID="Button1" runat="server" OnClick="Button1_Click" Text="Button" />
        <CR:CrystalReportSource ID="CrystalReportSource1" runat="server">
        </CR:CrystalReportSource>

.cs代码:

string sql;

    protected void Page_Load(object sender, EventArgs e)
    {
        this.DropDownList1.Items.Clear();
        foreach (string iprt in System.Drawing.Printing.PrinterSettings.InstalledPrinters)   //只能列出本地打印机
            this.DropDownList1.Items.Add(iprt);
         this.DropDownList1.Items.Add(new ListItem("\\\\chen\\HP Deskjet F300 series", "0"));

        //设置数据源

        sql = "select [money],payMent,addTime from tableOpen where year(addTime) = 2007 and month(addTime) = 07 and day(addTime) = 14";
        //sql = "select [money],payMent,addTime from tableOpen";

        DataSet ds = HensomeWeb.DB.DbHelperSQL.Query(sql);

        this.CrystalReportSource1.ReportDocument.Load(Server.MapPath("CrystalReport8.rpt"));

        CrystalReportSource1.ReportDocument.SetDataSource(ds.Tables["ds"]);
        CrystalReportSource1.DataBind();
      

       //绑定到 CrystalReportViewer

        this.CrystalReportViewer1.ReportSource = CrystalReportSource1;
        this.CrystalReportViewer1.DataBind();

    }

   //button事件,选择打印机并打印报表

    protected void Button1_Click(object sender, EventArgs e)
    {
        CrystalReportSource1.ReportDocument.PrintOptions.PrinterName = DropDownList1.SelectedItem.Text;
        CrystalReportSource1.ReportDocument.PrintToPrinter(1, false, 1, 1);

转载于:https://my.oschina.net/starmier/blog/83812

你可能感兴趣的文章
LBS突围:从微信到微博
查看>>
SFB 项目经验-40-Skype for Business-呼入正常-呼出不正常
查看>>
吴忌寒江卓尔批“闪电网络”背后,是链圈和矿圈的的利益之争
查看>>
python的cls,self,classmethod,staticmethod
查看>>
应用系统中常见报表类型解析
查看>>
[Silverlight入门系列]使用MVVM模式(9): 想在ViewModel中控制Storyboard动画?
查看>>
3 项目计划
查看>>
SQL Server 2008 下载地址(微软官方网站)
查看>>
如何对已经发布过的InfoPath模板进行修改
查看>>
推荐系统高峰论坛
查看>>
移动互联
查看>>
basic4android 开发教程翻译(三)IDE 小贴士
查看>>
obj-c 定义一个类
查看>>
电脑APK
查看>>
HDU-4335 What is N? 欧拉函数,欧拉定理
查看>>
HDU 1044 Collect More Jewels(搜索,先bfs再dfs)
查看>>
使用RabbitMQ过程中遇到的一个问题(队列为空,但内存暴涨)以及与开发者的邮件沟通...
查看>>
C++/C学习笔记(九)
查看>>
ASP.net MVC 中Security.FormsAuthentication验证用户的状态(匿名|已登录)
查看>>
《C++ Primer》 Part III(Classes and Data Abstraction)
查看>>