废话不说,希望看客能理解。
步骤一,准备脚本文件ReportView.js,内容如下:
function GetReportViewContentFrame(objWindow,strReportViewerId)
{
var frmContent=null; //报表内容区对象的FRAME对象
var strFrameId="ReportFrame" + strReportViewerId ; //asp.net自动生成的iframe 的id为:ReportFrame+报表控件id
try
{
frmContent=window.frames[strFrameId].frames["report"]; //报表内容框架的id为report
}
catch(e)
{
}
return frmContent;
}
function PrintReportView(objWindow,strReportViewerId)
{
var frmContent=GetReportViewContentFrame(objWindow,strReportViewerId);
if(frmContent!=null && frmContent!=undefined)
{
frmContent.focus();
frmContent.print();
}
else
{
alert("在获取报表内容时失败,无法通过程序打印。如果要手工打印,请鼠标右键点击报表内容区域,然后选择菜单中的打印项。");
}
}
步骤二,在目标处使用脚本, 页面代码如下:
<html xmlns="http://www.w3.org/1999/xhtml" >
<head runat="server">
<title>打印</title>
<script src="../js/ReportView.js" type="text/javascript"></script>
<script language="javascript" type="text/javascript">
<!--
//打印报表
function PrintReport()
{
PrintReportView(window,"ReportViewer1");
return false;
}
//-->
</script>
</head>
<body>
<form id="form1" runat="server">
<div style="text-align: center">
<rsweb:reportviewer id="ReportViewer1" runat="server" ></rsweb:reportviewer>
</div>
<div style="z-index: 999; left: 150px; width: 19px; position: absolute; top: 19px; height: 20px">
<asp:ImageButton ID="ImageButton1" runat="server" ImageUrl="~/Images/print.png" OnClientClick="return PrintReport();" Width="13px"/>
</div>
</form>
</body>
</html>
步骤三,移动打印按钮到工具栏中合适位置,OK,完工。