首页 > 解决方案 > 为什么水晶报表总是显示在开发者端打开的第一个订单?

问题描述

我正在使用 VS 2019 和水晶报告,单击下载结果按钮时,我将订单 ID 和测试 ID 传递给报告这是代码:

<li><a style="margin-left:700px;margin-bottom:15px" href="/RPT/WebForm1.aspx/?order_number=@Model.labClinicsViewResult.First().order_number&deptid=0&testid=@Model.labClinicsViewResult.First().Test_Id&Culture=@Model.labClinicsViewResult.First().Culture" class="btn btn-danger">Download Result</a></li>

然后在 webform1.aspx 页面中,我创建了水晶报表查看器并显示从另一个页面传递的数据,这是代码:

<form id="form1" runat="server">
    <div>
    <asp:TextBox ID="TXTORDERID" runat="server"></asp:TextBox>
        <asp:TextBox ID="TXTDEPTID" runat="server"></asp:TextBox>
        <asp:TextBox ID="TXTTESTID" runat="server"></asp:TextBox>
        <asp:TextBox ID="TXTCULTURE" runat="server"></asp:TextBox>
        <asp:TextBox ID="TXTPOSITIVE" runat="server"></asp:TextBox>
      
        <br />
    
        <br />
        
        
    </div>
        <br />

        <div id="dvReport">
      <CR:CrystalReportViewer ID="CrystalReportViewer1" runat="server" AutoDataBind="true" />
        </div>

    </form>

这也是添加参数和运行报告的代码:

if (Convert.ToInt32(TXTDEPTID.Text) == 0)
                    {

                        parameterField1.Name = "@ORDER_ID";
                        parameterDiscreteValue1.Value = (object)this.TXTORDERID.Text.ToString();
                        parameterField1.CurrentValues.Add((ParameterValue)parameterDiscreteValue1);
                        parameterFields.Add(parameterField1);

                     
                        this.CrystalReportViewer1.ParameterFieldInfo = parameterFields;
                        this.CrystalReportViewer1.ReuseParameterValuesOnRefresh = true;
                        this.CrystalReportViewer1.ToolPanelView = ToolPanelViewType.None;
                        reportDocument.Load(this.Server.MapPath("~/RPT/RPTCREDITRESULTS.rpt"));
                        this.CrystalReportViewer1.ReportSource = (object)reportDocument;
                        reportDocument.SetDatabaseLogon("sa", "123456");

                        ConnectionInfo connectionInfo = new ConnectionInfo();
                        connectionInfo.ServerName = "server";
                        connectionInfo.DatabaseName = "DB";
                        connectionInfo.Password = "123456";
                        connectionInfo.UserID = "sa";
                        connectionInfo.Type = ConnectionInfoType.SQL;
                        connectionInfo.IntegratedSecurity = false;
                        for (int index = 0; index < this.CrystalReportViewer1.LogOnInfo.Count; ++index)
                            this.CrystalReportViewer1.LogOnInfo[index].ConnectionInfo = connectionInfo;

         

       }

例如,当我测试报告时,我打印了 order_id = 2100022182 当我运行项目并单击下载结果时,它总是显示订单 id = 2100022182 的结果我在测试中打开,而不是刷新并获取我下次选择的订单 ID

我需要你的帮助。

重要的一点:我在 VS 2015 之前使用,它在 VS 2015 之前工作正常,现在我转向使用 VS 2019 是否需要为报告或代码做任何设置或更新?

在此处输入图像描述

这是第一个图像订单 ID 传递到第二个图像中的文本框,但打印顺序不同

在此处输入图像描述

标签: asp.netasp.net-mvccrystal-reports

解决方案


推荐阅读