从ASP.NET传递参数给水晶报表

时间:2023-03-09 08:45:50
从ASP.NET传递参数给水晶报表

原文 http://www.cnblogs.com/insus/p/3281114.html

上次Insus.NET有简单写了一篇文章《Visual Studio 2012使用水晶报表Crystal Reporthttp://www.cnblogs.com/insus/archive/2013/05/22/3090786.html
此篇只是简单介绍了Visual Studio 2012可以方便是以快捷安装Crystal Report了,Crystal Report的创建与显示于ASP.NET网页上。

今天Insus.NET 想跟大家分享的是从ASP.NET网页传递参数给水晶报表。

首先创建两个存储过程,第一个是参数,Insus.NET将把这个参数做成一个下拉式菜单(DropDownList),供用户选择。
从ASP.NET传递参数给水晶报表

第二个存储过程,是供水晶报使用:
从ASP.NET传递参数给水晶报表

然后去asp.net程序,创建两个对象(class类):
从ASP.NET传递参数给水晶报表

准备另外一个类:

从ASP.NET传递参数给水晶报表

准备完毕,我们开始创建一个水晶报表。创建过程中,为了减少篇幅而且生动形象,Insus.NET把过程做成一个实时操作。让你慢慢看来。
从ASP.NET传递参数给水晶报表

我们在网站上创建一个网页asp.net,用来显示报表。不过我们的重点是从asp.net传递参数给水晶报表。因此先在网页放一个DropDownList,并绑定数据给它。
从ASP.NET传递参数给水晶报表

去.aspx.cs为DropDownList写绑定程序:
从ASP.NET传递参数给水晶报表

上图中#13和#23行代码,可以参考:http://www.cnblogs.com/insus/archive/2013/01/28/2880618.html

现在我们开始在网页上显示水晶报了,添加一个铵钮(#15行html markup)。把光标定在#16行位置,去工具栏,双击
从ASP.NET传递参数给水晶报表

将产生下图#3行和#16行html markup。

从ASP.NET传递参数给水晶报表

接下来,我们去写铵钮的事件:
从ASP.NET传递参数给水晶报表

引用命名空间:

using Insus.NET;
using CrystalDecisions.CrystalReports.Engine;
using CrystalDecisions.Shared;

第#34至#39行为本篇博文重点,参数设置:

 ParameterValues prmV;
ParameterDiscreteValue pdv = new ParameterDiscreteValue();
prmV = rptDoc.DataDefinition.ParameterFields["@FruitKind_nbr"].CurrentValues;
pdv.Value = this.DropDownList1.SelectedItem.Value;
prmV.Add(pdv);
rptDoc.DataDefinition.ParameterFields["@FruitKind_nbr"].ApplyCurrentValues(prmV);

最后是网页实时操作,在浏览时,遇上一些小问题,及解决方法,还是显示的一些格式情况,均一一展现。
从ASP.NET传递参数给水晶报表