crystalReport(水晶报表)动态输入参数

命名空间为:using CrystalDecisions.Shared        

private void BuildReportViewerParameters(CrystalDecisions.Web.CrystalReportViewer rptViewer, Hashtable ParamTable)
        {
            //定义报表视图的参数的方法
            ParameterFields ParamFields = new ParameterFields();
            foreach (object key in ParamTable.Keys)
            {
                ParameterField ParamField = new ParameterField();
                ParameterValues ParamValues = new ParameterValues();
                ParameterDiscreteValue ParamValue = new ParameterDiscreteValue();
                ParamValue.Value = ParamTable[key].ToString();
                ParamValues.Add(ParamValue);
                ParamField.ParameterFieldName = key.ToString();
                ParamField.CurrentValues = ParamValues;
                ParamFields.Add(ParamField);
            }
            rptViewer.ParameterFieldInfo = ParamFields;
        }

        private void BuildReportClassParameters(CrystalDecisions.CrystalReports.Engine.ReportClass rpt, Hashtable ParamTable)
        {
            //定义报表类的参数的方法
            foreach (object key in ParamTable.Keys)
            {
                ParameterValues ParamValues = new ParameterValues();
                ParameterDiscreteValue ParamValue = new ParameterDiscreteValue();
                ParamValue.Value = ParamTable[key].ToString();
                ParamValues.Add(ParamValue);
                rpt.DataDefinition.ParameterFields[key.ToString()].ApplyCurrentValues(ParamValues);
            }
        }
        
        protected void BuildReportParameters(CrystalDecisions.Web.CrystalReportViewer rpt,Hashtable ParamTable)
        {
            //定义报表参数的方法
            ParameterFields ParamFields = new ParameterFields();

            foreach(object key in ParamTable.Keys)
            {
                ParameterField ParamField;
                ParameterValues ParamValues;
                ParameterDiscreteValue ParamValue;

                ParamField = new ParameterField();
                ParamValues = new ParameterValues();
                ParamValue = new ParameterDiscreteValue();

                ParamValue.Value = (string)ParamTable[key];
                ParamValues.Add(ParamValue);
                ParamField.ParameterFieldName=(string)key;
                ParamField.CurrentValues = ParamValues;
                ParamFields.Add(ParamField);
            }
            rpt.ParameterFieldInfo = ParamFields;
        }  


然后再你的需要调用参数的地方,加如下引用:

private void Button_output_Click(object sender, System.EventArgs e)
        {
            CrystalDecisions.Shared.TableLogOnInfo logInfo = new CrystalDecisions.Shared.TableLogOnInfo();  //设置报表的登录信息
            logInfo.ConnectionInfo.ServerName = "ANGEL";  //设置报表与库的连接信息
            logInfo.ConnectionInfo.DatabaseName = "KaoQin";
            logInfo.TableName = "Emstatistic";
            logInfo.ConnectionInfo.UserID = "sa";
            logInfo.ConnectionInfo.Password = "";
            CrystalReportViewer1.ReportSource = Server.MapPath("cr_aa.rpt"); //指定报表的数据源
            CrystalReportViewer1.LogOnInfo.Add(logInfo);//对参数进行赋什值
    //        CrystalReportViewer1.DataBind();

            //声明变量并获取导出选项
            cr_aa myReport = new cr_aa();  //定义一个名为myReport的报表
            myReport.Database.Tables[0].ApplyLogOnInfo(logInfo);  
            CrystalReportViewer1.ReportSource = myReport;
            CrystalReportViewer1.DataBind();   

            Hashtable t = new Hashtable();    
            t.Add("p_st_month", Textmonth.Text);  //为参数赋值
            BuildReportParameters(CrystalReportViewer1, t);  //调用建立报表参数的方法  
            BuildReportViewerParameters(CrystalReportViewer1, t);   //给报表浏览器添加参数
            BuildReportClassParameters(myReport, t);  //给报表类添加参数   

            CrystalDecisions.Shared.DiskFileDestinationOptions diskOpts = new CrystalDecisions.Shared.DiskFileDestinationOptions();
            //设置导出格式
            myReport.ExportOptions.ExportDestinationType = CrystalDecisions.Shared.ExportDestinationType.DiskFile;
            myReport.ExportOptions.ExportFormatType = CrystalDecisions.Shared.ExportFormatType.Excel;
            //设置磁盘文件选项
            diskOpts.DiskFileName = "C://Documents and Settings//Administrator//My Documents//kaoqin_rpt.xls";   
            myReport.ExportOptions.DestinationOptions = diskOpts;
            myReport.Export();
            Response.Write("<script language='javascript'>alert('您已经将报表成功输出到Excel文件'); window.location.href='customRpt.aspx';</" + "script>");
        }
 
======================================================= == 如果喜欢英文文档的朋友 == Crystal-Reports-2008-For-Dummies.pdf == == 链接: == http://download.youkuaiyun.com/download/a6566232/4627865 ======================================================= Crystal Reports 2008 用户指南 Crystal Reports 2008 Windows 2.1 介绍.....................................................31 2.1.1 2.1.2 2.1.3 2.1.4 2.1.5 利用 Flash、Flex 和 Xcelsius 实现的高级信息可视化...32 改善的最终用户报表查看体验..........................33 增强的报表设计器功能................................33 新增的灵活部署选项..................................34 灵活的应用程序集成..................................35 2.2 不同之处.................................................35 第 3 章安装 Crystal Reports 2008 37 3.1 安装概述.................................................37 3.2 安装 Crystal Reports 2008................................37 3.3 安装要求.................................................38 3.4 在本地计算机上安装 Crystal Reports.......................38 3.4.1 在本地计算机上安装...................................39 3.5 创建安装点并从网络服务器进行安装.........................45 3.5.1 创建 Crystal Reports 的安装点........................46 4 Crystal Reports 2008 用户指南 3.5.2 从网络安装 Crystal Reports...........................46 3.6 自定义安装...............................................52 3.7 运行无提示安装...........................................54 3.8 设置自定义横幅...........................................59 3.9 升级 Crystal Reports 组件................................60 第 4 章快速开始61 4.1 了解如何使用 Crystal Reports.............................61 4.1.1 示例数据 -- Xtreme.mdb...............................61 4.2 报表创建向导.............................................62 4.2.1 标准.................................................62 4.2.2 交叉表...............................................62 4.2.3 邮件标签.............................................62 4.2.4 OLAP.................................................63 4.3 新用户快速入门...........................................63 4.3.1 开始之前.............................................63 4.3.2 创建报表.............................................64 4.3.3 记录选择.............................................75 4.3.4 分组及排序...........................................79 4.3.5 完成报表.............................................82 4.4 高级用户快速开始.........................................83 4.4.1 选择报表类型及数据源.................................83 4.4.2 在“设计”选项卡上处理报表元素.......................84 4.4.3 使用其他报表功能.....................................86 第 5 章报表设计概念88 5.1 基本报表设计.............................................88 目录5 5.2 决定报表内容.............................................88 5.2.1 说明目的.............................................88 5.2.2 确定报表布局 ........................................89 5.2.3 查找数据.............................................90 5.2.4 操作数据.............................................91 5.2.5 确定打印区域特性.....................................92 5.3 设计纸张原型.............................................94 5.3.1 设计纸张原型.........................................94 第 6 章报表创建基础95 6.1 报表创建选项.............................................95 6.1.1 报表创建向导.........................................95 6.1.2 另一个报表...........................................95 6.1.3 新建报表.............................................96 6.1.4 报表创建向导.........................................96 6.1.5 另一个报表...........................................96 6.1.6 新建报表.............................................96 6.2 选择数据源和数据库字段...................................97 6.2.1 数据库专家...........................................97 6.2.2 字段资源管理器.......................................99 6.3 关于报表设计环境........................................101 6.3.1 “设计”选项卡......................................101 6.3.2 “预览”选项卡......................................105 6.3.3 HTML 预览选项卡.....................................109 6.4 创建新报表..............................................110 6.4.1 选择数据源..........................................110 6.4.2 添加表..............................................111 . . . .
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值