无法预览报告

Jt2*_*uan 5 reportviewer reporting-services

我在VS2013 .Net 4.5中创建了一个新的"Report Server Project".我添加了一个数据源,测试连接成功.我使用"使用我的报表中嵌入的数据集"选项添加了一个DataSet,选择了之前创建的数据源.查询类型是带有单个文本参数的存储过程.在报告数据框中,我可以右键单击我的DataSet,选择Query,然后执行sproc.我看到网格正确填充了我的数据.

但是,当我尝试创建和预览报表时,它会失败.我做以下事情:

添加新报告.从工具箱中删除表格.开始将我的DataSet中的字段拖到表上.当我点击预览时,我看到以下内容

在此输入图像描述

gor*_*oth 4

这是一个“HACK”,但它会做你所要求的事情。

<%@ Page Title="Home Page" Language="C#" AutoEventWireup="true" CodeBehind="Default.aspx.cs" Inherits="WebApplication24._Default" %>

<%@ Register Assembly="Microsoft.ReportViewer.WebForms, Version=11.0.0.0, Culture=neutral, PublicKeyToken=89845dcd8080cc91" Namespace="Microsoft.Reporting.WebForms" TagPrefix="rsweb" %>

<!DOCTYPE html>

<html xmlns="http://www.w3.org/1999/xhtml">
<head runat="server">
    <title></title>

    <script type="text/javascript" src="http://ajax.microsoft.com/ajax/jquery/jquery-2.1.1.js"></script>

    <script type="text/javascript">
        $(document).ready(function () {
            Sys.WebForms.PageRequestManager.getInstance().add_pageLoading(pageLoadingHandler);

            function pageLoadingHandler() {
                fixParameters();
            }

            function fixParameters() {
                $("table[id^='ParametersGridReportViewer1']").find('input[type=text]').each(function () {
                    if (isDate($(this).attr("value"))) {
                        $(this).val($(this).val().substring(0, 10));
                    }
                });
            }

            function isDate(date) {
                return ((new Date(date) !== "Invalid Date" && !isNaN(new Date(date))));
            }

        });
    </script>


</head>
<body>

    <form id="form1" runat="server">
        <div>
            <asp:ScriptManager ID="ScriptManager1" runat="server"></asp:ScriptManager>

            <rsweb:ReportViewer ID="ReportViewer1" runat="server" Font-Names="Verdana" Font-Size="8pt" ProcessingMode="Remote" WaitMessageFont-Names="Verdana" WaitMessageFont-Size="14pt" Width="1184px" ShowParameterPrompts="True">
                <ServerReport ReportPath="/Report Project1/Report1" />
            </rsweb:ReportViewer>

        </div>
    </form>
</body>
</html>
Run Code Online (Sandbox Code Playgroud)

将“ReportViewer1”替换为您的报表查看器的名称。
这基本上将检查报告参数表中的所有输入字段,如果其中任何一个看起来像日期,那么它将在加载时删除时间。

编辑
添加了整个页面代码。