如何在 crystal 报告导航到下一页时隐藏输入参数值?

How to hide Enter Parameter Value when navigate to next page in crystal reports?

在我的 crystal 报告中,当我导航到下一页要求再次输入参数值时,我已经在 运行 crystal 报告时传递了参数值。为什么在导航到下一页时再次询问?

我尝试了一些解决方案,但在导航到下一页时仍然要求输入参数值?

我试过这段代码:

CrystalReportViewer1.ReuseParameterValuesOnRefresh = false;

我希望在单击下一页按钮时使用相同的参数值,而不是再次要求输入值。

这是我的代码:

我的数据在数据网格视图中的另一个 window 中,单击它时有 hyperlink 打印结果 我通过使用查询字符串将主键发送到 crystal报告 window 这是超级 link 代码

<asp:TemplateField>
                    <HeaderTemplate>Options</HeaderTemplate>
                    <ItemTemplate>
                         <asp:HyperLink ID="HyperLink1"  NavigateUrl='<%#"/RPT/WebForm1.aspx?order_id=" +Eval("Request number")+"&DEPT ID=" +Eval("DEPT ID")+"&Test Id=" +Eval("Test Id")%>' runat="server">Print Result</asp:HyperLink>
                    </ItemTemplate>
                </asp:TemplateField>

这是另一个 window 中的页面加载代码:

protected void Page_Load(object sender, EventArgs e)
        {

            if (!IsPostBack)
            {

              TXTORDERID.Text = Request.QueryString["order_id"].ToString();
                TXTDEPTID.Text = Request.QueryString["DEPT ID"].ToString();
                TXTTESTID.Text = Request.QueryString["Test Id"].ToString();
                ReportDocument reportDocument = new ReportDocument();
                ParameterFields paramFields = new ParameterFields();
                ParameterField paramField = new ParameterField();
                ParameterDiscreteValue paramDiscreteValue = new ParameterDiscreteValue();



                        paramField.Name = "@ORDER_ID";
                        paramDiscreteValue.Value = TXTORDERID.Text.ToString();
                        paramField.CurrentValues.Add(paramDiscreteValue);
                        paramFields.Add(paramField);

                        paramField = new ParameterField(); 
                        paramDiscreteValue = new ParameterDiscreteValue();  
                        paramField.Name = "@deptid";
                        paramDiscreteValue.Value = TXTDEPTID.Text.ToString();
                        paramField.CurrentValues.Add(paramDiscreteValue);
                        paramFields.Add(paramField);

                        CrystalReportViewer1.ParameterFieldInfo = paramFields;
                        CrystalReportViewer1.ReuseParameterValuesOnRefresh = true;
                        CrystalReportViewer1.ToolPanelView = CrystalDecisions.Web.ToolPanelViewType.None;
                        reportDocument.Load(Server.MapPath("~/RPT/RPT_RESULT.rpt"));
                        CrystalReportViewer1.ReportSource = reportDocument;
                        reportDocument.SetDatabaseLogon("DBA", "2006");
                    }
                }

您可以在您的页面加载中或在您调用 crystal 报告代码的按钮中使用以下代码,还可以在您的代码下导航到下一页时显示的消息添加以下代码,它将隐藏留言 "The report you requested requires further information "

if (!IsPostBack)
{
   // your code inside 


    var connectionInfo = new ConnectionInfo();
    connectionInfo.ServerName = "server_name";
    connectionInfo.DatabaseName = "database_name";
    connectionInfo.UserID = "database_user_name";
    connectionInfo.Password = "database_password";
    connectionInfo.Type = ConnectionInfoType.SQL;
    connectionInfo.IntegratedSecurity = false;

for (int i = 0; i < CrystalReportViewer1.LogOnInfo.Count; i++)
{
    CrystalReportViewer1.LogOnInfo[i].ConnectionInfo = connectionInfo;
}
}