如何在 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;
}
}
在我的 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;
}
}