Jt2*_*uan 5 reportviewer reporting-services
我在VS2013 .Net 4.5中创建了一个新的"Report Server Project".我添加了一个数据源,测试连接成功.我使用"使用我的报表中嵌入的数据集"选项添加了一个DataSet,选择了之前创建的数据源.查询类型是带有单个文本参数的存储过程.在报告数据框中,我可以右键单击我的DataSet,选择Query,然后执行sproc.我看到网格正确填充了我的数据.
但是,当我尝试创建和预览报表时,它会失败.我做以下事情:
添加新报告.从工具箱中删除表格.开始将我的DataSet中的字段拖到表上.当我点击预览时,我看到以下内容

这是一个“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”替换为您的报表查看器的名称。
这基本上将检查报告参数表中的所有输入字段,如果其中任何一个看起来像日期,那么它将在加载时删除时间。
编辑
添加了整个页面代码。