从web表单参数传递给水晶报表 [英] passing parameters to Crystal report from webforms

查看:204
本文介绍了从web表单参数传递给水晶报表的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我有一个报告,我想在一个Web窗体显示。不带参数的报告正在漂亮而精致。带参数的报表创建头疼的我。这是$ C $词都写在BindReport方法,这就是所谓的形式的页面加载事件。

i have a report and i want to display it on a webform. Reports without parameters are working nice and fine. Reports with parameters are creating headache for me. this is the code i have written in BindReport method, which is called on page load event of the form.

    ReportDocument rpt = new ReportDocument();
    rpt.Load(Server.MapPath("rptPositionwiseMontwiseActualSale.rpt"));
    rpt.FileName = Server.MapPath("rptPositionwiseMontwiseActualSale.rpt");
    rpt.SetParameterValue("CompanyName", "Cirin Pharmaceutical Pvt. Limited".ToString());
    rpt.SetParameterValue("ReportTitle", "PositionWise MonthWise Sales".ToString());
    rpt.SetParameterValue("parameters", "Year:2011".ToString());
    //CrystalReportViewer1.ParameterFieldInfo = paramFields;
    DataSet ds = getReportData();
    rpt.SetDataSource(ds.Tables[0]);
    CrystalReportViewer1.ReportSource = rpt;
    CrystalReportViewer1.ReuseParameterValuesOnRefresh = true;

    //CrystalReportViewer1.RefreshReport();

我已经尝试过各种各样的事象分配ParameterFieldInfo到ReportViewer控件,但它让我提示在页面加载要求报告的参数值。 I M使用.NET 4.0
修改使用推模式水晶报表IM。它改变了我们可以传递参数从asp.net报告  
感谢

i have tried variety of things like assigning ParameterFieldInfo to reportviewer control but, it shows me prompt on page load asking for parameter values of the report. i m using .NET 4.0
EDIT i m using push model for crystal reports. does it change the way we can pass parameters to report from asp.net
thanks

推荐答案

在设定的参数值在运行时ASP.NET我觉得你需要做更多的工作不仅仅是一个名为 SetParameterValue

When setting Parameter values at runtime for ASP.NET I think you need to do a bit more work than just called SetParameterValue

string rptTitle = "This is Report Title";

rpt.SetParameterValue("ReportTitle", rptTitle);

ParameterDiscreteValue val = new ParameterDiscreteValue();
val.Value = rptTitle;

ParameterValues paramVals = new ParameterValues();

paramVals.Add(val);

rpt.ParameterFields["ReportTitle"].CurrentValues = paramVals;

rpt.DataDefinition.ParameterFields[0].ApplyCurrentValues(paramVals);

这可能是有点大材小用,但它实际工作,很适合我反正。你必须确保参数名称完全匹配。

This is probably a bit of overkill but it does actually work, well for me anyway. You must ensure that the parameter names match exactly.

这篇关于从web表单参数传递给水晶报表的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆