如何更改水晶报表导出文件的名称

如何更改水晶报表导出文件的名称

很多朋友都利用水晶报表技术来做报表,它支持直接将报表导出为包括Excel,Pdf在内的多种格式。它的导出操作是通过CrystalReportViewer上面的一个导出按钮实现的。我们无需为此编写任何代码。

正因为我们没有为其编写代码,所以有一个问题就随之出现了。它内部处理的机制是:导出的时候自动用CrystalReportViewer的ID属性作为文件名,如果该ID 有空格,自动以下划线替换之。

那么,如果我们需要用这个CrystalReportViewer动态加载多个报表,很显然,我们希望导出的时候文件名是不一样的。但是该CrystalReportViewer的ID却只能有一个,这是不是一个矛盾呢?

其实也不难解决,我们可以在DataBind之后,通过编码的方式修改CrystalReportViewer的ID。

 

private void PrintQuo()
    {
        try
        {
            clsQuoHd quoHd = new clsQuoHd(clsQuoHd.getSrvCode(this.squoCode));
            DataSet ds = clsRptQuotation.GetQuoItem(squoCode);


            //if (sQuoClass == "国内")
            //if (sQuoClass == "0")
            if (quoHd.quoClass == "1") //国内
            {
                CrystalReportSource1.ReportDocument.Load(Server.MapPath("RptQuotationZH.rpt"));

            }
            else
            {
                CrystalReportSource1.ReportDocument.Load(Server.MapPath("RptQuotation.rpt"));
            }
            CrystalReportSource1.ReportDocument.SetDataSource(ds);


            //注意此处必需指明Dataset中的表的名称,否则会提示“您请求的报表需要更多信息.”


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

            CrystalReportSource1.DataBind();
            CrystalReportViewer1.ReportSource = CrystalReportSource1;
            CrystalReportViewer1.DataBind();
            CrystalReportViewer1.ID = this.squoCode;
        }
        catch (Exception ex)
        {
            Response.Write(ex.ToString());
        }
    }

 

http://www.cnblogs.com/chenxizhang/archive/2008/08/22/1273751.html

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值