在crystalReport中动态输入参数

王朝other·作者佚名  2006-11-24
宽屏版  字体: |||超大  

命名空间为: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();

[1] [2] 下一页

 
 
 
免责声明:本文为网络用户发布,其观点仅代表作者个人观点,与本站无关,本站仅提供信息存储服务。文中陈述内容未经本站证实,其真实性、完整性、及时性本站不作任何保证或承诺,请读者仅作参考,并请自行核实相关内容。
© 2005- 王朝网络 版权所有