水晶报表传递参数:(不少时候有用)
页面:
<%
...
@ Page Language="C#" AutoEventWireup="true" CodeFile="Default.aspx.cs" Inherits="_Default"
%>
<% ... @ Register TagPrefix="CR" Namespace="CrystalDecisions.Web" Assembly="CrystalDecisions.Web, Version=10.2.3600.0, Culture=neutral, PublicKeyToken=692fbea5521e1304" %>
<! DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.1//EN" "http://www.w3.org/TR/xhtml11/DTD/xhtml11.dtd" >
< html xmlns ="http://www.w3.org/1999/xhtml" >
< head runat ="server" >
< title > Untitled Page </ title >
< link href ="/aspnet_client/System_Web/2_0_50727/CrystalReportWebFormViewer3/css/default.css"
rel ="stylesheet" type ="text/css" />
</ head >
< body >
< form id ="form1" runat ="server" >
< div >
< CR:CrystalReportViewer ID ="CrystalReportViewer1" runat ="server" AutoDataBind ="True"
Height ="1039px" ReportSourceID ="CrystalReportSource1" Width ="901px" />
< CR:CrystalReportSource ID ="CrystalReportSource1" runat ="server" >
< Report FileName ="CrystalReport1.rpt" >
</ Report >
</ CR:CrystalReportSource >
< asp:Button ID ="Button1" runat ="server" Text ="Button" />
</ div >
</ form >
</ body >
</ html >
<% ... @ Register TagPrefix="CR" Namespace="CrystalDecisions.Web" Assembly="CrystalDecisions.Web, Version=10.2.3600.0, Culture=neutral, PublicKeyToken=692fbea5521e1304" %>
<! DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.1//EN" "http://www.w3.org/TR/xhtml11/DTD/xhtml11.dtd" >
< html xmlns ="http://www.w3.org/1999/xhtml" >
< head runat ="server" >
< title > Untitled Page </ title >
< link href ="/aspnet_client/System_Web/2_0_50727/CrystalReportWebFormViewer3/css/default.css"
rel ="stylesheet" type ="text/css" />
</ head >
< body >
< form id ="form1" runat ="server" >
< div >
< CR:CrystalReportViewer ID ="CrystalReportViewer1" runat ="server" AutoDataBind ="True"
Height ="1039px" ReportSourceID ="CrystalReportSource1" Width ="901px" />
< CR:CrystalReportSource ID ="CrystalReportSource1" runat ="server" >
< Report FileName ="CrystalReport1.rpt" >
</ Report >
</ CR:CrystalReportSource >
< asp:Button ID ="Button1" runat ="server" Text ="Button" />
</ div >
</ form >
</ body >
</ html >
在报表设计中添加2个参数字段,注意名称对应即可。
C#代码如下:
using
System;
using System.Data;
using System.Configuration;
using System.Web;
using System.Web.Security;
using System.Web.UI;
using System.Web.UI.WebControls;
using System.Web.UI.WebControls.WebParts;
using System.Web.UI.HtmlControls;
using CrystalDecisions.Shared;
using CrystalDecisions.CrystalReports.Engine;
public partial class _Default : System.Web.UI.Page
... {
protected void Page_Load(object sender, EventArgs e)
...{
// 查看器控件所需的变量。
ParameterFields paramFields = new ParameterFields();
//设置传递第一个参数
ParameterField paramField = new ParameterField();
ParameterDiscreteValue discreteVal = new ParameterDiscreteValue();
paramField.ParameterFieldName = "qymc";
discreteVal.Value = "南方企业名称一";
paramField.CurrentValues.Add(discreteVal);
paramFields.Add(paramField);
//设置传递第二个参数
ParameterField paramField1 = new ParameterField();
ParameterDiscreteValue discreteVal1 = new ParameterDiscreteValue();
paramField1.ParameterFieldName = "qyjc";
discreteVal1.Value = "南方企业名称二";
paramField1.CurrentValues.Add(discreteVal1);
paramFields.Add(paramField1);
//绑定
CrystalReportViewer1.ParameterFieldInfo = paramFields;
}
}
using System.Data;
using System.Configuration;
using System.Web;
using System.Web.Security;
using System.Web.UI;
using System.Web.UI.WebControls;
using System.Web.UI.WebControls.WebParts;
using System.Web.UI.HtmlControls;
using CrystalDecisions.Shared;
using CrystalDecisions.CrystalReports.Engine;
public partial class _Default : System.Web.UI.Page
... {
protected void Page_Load(object sender, EventArgs e)
...{
// 查看器控件所需的变量。
ParameterFields paramFields = new ParameterFields();
//设置传递第一个参数
ParameterField paramField = new ParameterField();
ParameterDiscreteValue discreteVal = new ParameterDiscreteValue();
paramField.ParameterFieldName = "qymc";
discreteVal.Value = "南方企业名称一";
paramField.CurrentValues.Add(discreteVal);
paramFields.Add(paramField);
//设置传递第二个参数
ParameterField paramField1 = new ParameterField();
ParameterDiscreteValue discreteVal1 = new ParameterDiscreteValue();
paramField1.ParameterFieldName = "qyjc";
discreteVal1.Value = "南方企业名称二";
paramField1.CurrentValues.Add(discreteVal1);
paramFields.Add(paramField1);
//绑定
CrystalReportViewer1.ParameterFieldInfo = paramFields;
}
}
运行结果:
测试通过!