crystal在运行时报告参数

时间:2012-07-05 07:27:24

标签: crystal-reports

我想在我的网站上应用一个项目(http://www.aspdotnet-suresh.com/2012/01/pass-parameters-to-crystal-reports-in.html)。我只获得我第一次选择的任何价值并获得所需的报告,但如果我选择其他值,那么我再次得到报告上一次报告。有人能帮助我吗?

default.aspx.cs

protected void btnSearch_Click(object sender, EventArgs e)
{
    //CrystalReportViewer1.RefreshReport();
    ReportDocument reportdocument = new ReportDocument();
    reportdocument.Load(Server.MapPath("CrystalReport.rpt"));
    reportdocument.SetDatabaseLogon("", "", "ghaffar-pc", "Northwind");
    //reportdocument.SetParameterValue("Username", txtUserName.Text);
    reportdocument.SetParameterValue("CategoryID", Convert.ToInt32(txtUserName.Text));
    CrystalReportViewer1.ReportSource = reportdocument;
}

Default.aspx的

    <table>
    <tr>
    <td><b>Enter UserName</b></td>
    <td><asp:TextBox ID="txtUserName" runat="server"/></td>
    </tr>
    <tr>
    <td></td>
    <td><asp:Button ID="btnSearch" runat="server" Text="Search" onclick="btnSearch_Click" /></td>
    </tr>
    </table>

</div>
<CR:CrystalReportViewer ID="CrystalReportViewer1" runat="server" 
    EnableDatabaseLogonPrompt="False" AutoDataBind="true" ReuseParameterValuesOnRefresh="False"
    EnableParameterPrompt="False" ToolPanelView="None" />

请注意,无论我选择哪种值来显示报告,我都会在CrystalReport.rpt文件中获得所需的结果。

2 个答案:

答案 0 :(得分:0)

呼叫

reportdocument.Refresh();

就在上面的stmt。

之上
CrystalReportViewer1.ReportSource = reportdocument;

答案 1 :(得分:0)

这一行之后:

reportdocument.SetParameterValue("CategoryID", Convert.ToInt32(txtUserName.Text));

添加:

CrystalReportViewer1.ParameterFieldInfo.Clear();