【问题标题】:Crystal Report Viewer Next Page Closed sub report tab and return to main report second pageCrystal Report Viewer Next Page 关闭子报表选项卡并返回主报表第二页
【发布时间】:2021-12-24 00:09:22
【问题描述】:

我有一个主报告和两个子报告作为按需显示,我的问题是单击子报告时 链接一切都很好,第一页将显示为子报告,但如果我想转到下一页或将子报告导出为 pdf,则只会导出主报告。如果我想进入下一页水晶报表查看器关闭我的子报表选项卡并返回到第二个主报表页面 我的 CrystalReportViewerPage.cs 类

 public partial class CrystalReportViewerPage : System.Web.UI.Page
{

    protected void Page_Load(object sender, EventArgs e)
    {
        if (IsPostBack)
        {
            CrystalReportViewer1.ReportSource = (ReportDocument)Session["Report"];
        }
        else
        {
            if (string.IsNullOrEmpty(Page.RouteData.Values["userId"].ToString()))
                throw new ArgumentNullException();

            var userId = Guid.Parse(Page.RouteData.Values["userId"].ToString());

            CrystalReportViewer1.ReportSource = CrystalController.Statements[userId];
            Session["Report"] = CrystalController.Statements[userId];
        }
    }
}

和aspx页面

<%@ Page Language="C#" AutoEventWireup="true" CodeBehind="CrystalReportViewerPage.aspx.cs" Inherits="Mahya.ITS.CityMan.Views.Shared.CrystalReportViewerPage" %>
<%@ Register TagPrefix="CR" Namespace="CrystalDecisions.Web" Assembly="CrystalDecisions.Web, Version=13.0.4000.0, Culture=neutral, PublicKeyToken=692fbea5521e1304" %>

<!DOCTYPE html>
<html xmlns="http://www.w3.org/1999/xhtml">

<script src='<%=ResolveUrl("~/Content/crystalreportviewers/js/crviewer/crv.js")%>' type="text/javascript"></script>

<body style="margin: auto;">
    <form id="form1" runat="server">
        <div style="text-align: center; margin: auto; direction: rtl; display: table" >
            <CR:CrystalReportViewer ID="CrystalReportViewer1" runat="server" AutoDataBind="true" BestFitPage="True"
                       ToolPanelView="None"   EnableTheming="True" HasToggleGroupTreeButton="False"   HasCrystalLogo="False"  />
        </div>
    </form>
</body>
</html>

CrystalDecisions.Web dll 版本=13.0.4000.0

【问题讨论】:

    标签: asp.net webforms crystal-reports


    【解决方案1】:

    所以经过几个小时,终于发现问题了。必须在 OnInit 而不是 page_load 事件中作为报表查看器的初始源。所以一切都很好,报告来源不会再被补充。

    protected void CrystalReportViewer1_OnInit(object sender, EventArgs e){
        if (string.IsNullOrEmpty(Page.RouteData.Values["userId"].ToString()))
            throw new ArgumentNullException();
    
        var userId = Guid.Parse(Page.RouteData.Values["userId"].ToString());
    
        CrystalReportViewer1.ReportSource = CrystalController.Statements[userId];
    }
    

    【讨论】:

    • 正如目前所写,您的答案尚不清楚。请edit 添加其他详细信息,以帮助其他人了解这如何解决所提出的问题。你可以找到更多关于如何写好答案的信息in the help center
    • 没错。将帖子标记为答案
    猜你喜欢
    • 2016-04-09
    • 1970-01-01
    • 1970-01-01
    • 2010-10-08
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多