3

我第一次使用 ASP.Net Web 表单尝试 SSRS。

我创建了一个本地 RDLC 报告并在“默认”网络表单中使用了 ReportViewer。在智能标签下,我选择了“选择报告”并选择了 RDLC 报告。

当我按 f5 运行报告时,即使我确实从智能标记中选择了报告,也会显示以下错误。

"The report definition for report 'xxx' has not been specified."

请让我知道为什么这不能按预期工作。

谢谢。

报告编码:

<asp:Content runat="server" ID="FeaturedContent" ContentPlaceHolderID="FeaturedContent">
<section class="featured">
    <div class="content-wrapper">
        <hgroup class="title">
            <h1><%: Title %>.</h1>
            <h2>Modify this template to jump-start your ASP.NET application.</h2>
        </hgroup>
        <p>
            To learn more about ASP.NET, visit <a href="http://asp.net" title="ASP.NET Website">http://asp.net</a>.
            The page features <mark>videos, tutorials, and samples</mark> to help you get the most from ASP.NET.
            If you have any questions about ASP.NET visit <a href="http://forums.asp.net/18.aspx" title="ASP.NET Forum">our forums</a>.
        </p>
    </div>
</section>
</asp:Content>

<asp:Content runat="server" ID="BodyContent" ContentPlaceHolderID="MainContent">
<rsweb:ReportViewer ID="ReportViewer1" runat="server" Font-Names="Verdana" Font-Size="8pt" WaitMessageFont-Names="Verdana" WaitMessageFont-Size="14pt" Width="739px">
    <LocalReport ReportEmbeddedResource="WebApplicationFirstReports.Web Products.rdlc">
        <DataSources>
            <rsweb:ReportDataSource DataSourceId="ObjectDataSource1" Name="DataSet1" />
        </DataSources>
    </LocalReport>
</rsweb:ReportViewer>
<asp:ObjectDataSource ID="ObjectDataSource1" runat="server" SelectMethod="GetData" TypeName="DataSetWebTableAdapters.DataTable1TableAdapter"></asp:ObjectDataSource>
</asp:Content>
4

3 回答 3

8

好的,看起来您在本地报告中缺少您的 ReportPath。这是直接来自我的工作项目的代码示例。

<body class="center">
    <form id="form1" runat="server">
        <div>
            <asp:ScriptManager ID="ScriptManager1" runat="server"></asp:ScriptManager>
            <asp:Label ID="lblCheckDate" runat="server" Visible="False"></asp:Label>
            <rsweb:ReportViewer ID="ReportViewer1" runat="server" Font-Names="Verdana" Font-Size="8pt" WaitMessageFont-Names="Verdana" WaitMessageFont-Size="14pt" Height="800px" Width="620px" CssClass="center" BackColor="White" ShowBackButton="False" ShowPageNavigationControls="False">
                <LocalReport ReportPath="Paystub.rdlc" ReportEmbeddedResource="PayrollApplication.Paystub.rdlc">
                    <DataSources>
                        <rsweb:ReportDataSource DataSourceId="SqlDataSource1" Name="DataSet1" />
                    </DataSources>
                </LocalReport>
            </rsweb:ReportViewer>
            <asp:SqlDataSource ID="SqlDataSource1" runat="server" ConnectionString="<%$ ConnectionStrings:pay %>"
                SelectCommand="SELECT * FROM [ViewPaychecks] WHERE ([CHKDATE] = @CHKDATE)">
                <SelectParameters>
                    <asp:ControlParameter ControlID="lblCheckDate" Name="CHKDATE" PropertyName="Text" Type="String" />
                </SelectParameters>
            </asp:SqlDataSource>
        </div>
    </form>
</body>

让我知道这是否有帮助!我使用了 SqlDataSource 但这也应该与 ObjectDataSource 一起使用。

于 2013-09-24T19:53:06.887 回答
5

当您在实时站点中部署并且报告的.rdlc文件尚未在站点中发布时会发生这种情况,因此这是对我有用的解决方案:

  1. 右键单击报告的“.rdlc”文件,选择属性,然后将 rdlc 的属性Build Action设置为Content

截屏:

在此处输入图像描述

参考:

这个这个

希望有帮助。

于 2016-05-19T10:54:36.637 回答
0

我有一个相同的错误消息,并通过在报告定义的末尾添加以下两 (2) 行来解决它:

ReportViewer1.LocalReport.Refresh()
ReportViewer1.RefreshReport()
于 2015-05-04T15:40:30.800 回答