在asp.net中应用Grid+Report制作打印预览(一)
1、制作报表myReport.grf
2、01.aspx:即显示“打印预览”按钮的界面。
如前台代码如下:
<ext:Button ID="btnPrint" runat="server" Icon="printer" Text="打印预览" ToolTip="打印预览" ToolTipType="Title" EnablePostBack="true" OnClick="btnPrint_Click"></ext:Button>
后台代码中,btnPrint_Click事件函数如下:
protected void btnPrint_Click(object sender, EventArgs e)
{
//02.aspx即为创建报表的页面,如下跳到02.aspx并同时传几个参数
ExtAspNet.PageContext.Redirect("02.aspx?param1=0¶m2=5, "_blank");
}
3、02.aspx:即创建报表的页面。在.aspx页中写如下脚本代码:
<%@ Page Language="C#" AutoEventWireup="true" CodeBehind="02.aspx.cs" Inherits="02" %>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" >
<head id="Head1" runat="server">
<title></title>
<META HTTP-EQUIV="Content-Type" CONTENT="text/html; charset=gb2312">
<script src="../GridReport/CreateControl.js" language="javascript"></script>
<script src="../GridReport/GRUtility.js" language="javascript"></script>
<style type="text/css">
html,body {
margin:0;
height:100%;
}
.btn {
MARGIN:1px 3px 0px 0px;WIDTH:98px;
PADDING-RIGHT: 0px; PADDING-LEFT: 0px; PADDING-BOTTOM: 0px; LINE-HEIGHT: 18px; PADDING-TOP: 0px; HEIGHT: 22px;
FONT-FAMILY: 宋体;
FONT-SIZE: 9pt
}
</style>
<script type="text/javascript">
// <!CDATA[
function window_onload()
{
var Nowdate=new Date();
var YM = Nowdate.getYear()+"."+(Number(Nowdate.getMonth())+1);
load(YM);
}
// ]]>
</script>
</head>
<BODY style="margin:0" onload="window_onload()">
<div align="right" style="background-color:#dfe8f6"><input id="Button1" class="btn" type="button" value="关闭打印预览" onclick="javascript:history.go(-1)" /></div>
<script language="javascript">
CreatePrintViewer("myReport.grf", "")
</script>
</body>
</html>
<script type="text/javascript">
function load(YM)
{
var paras=self.location.search.split("&");
var para=paras[0].split("=");
var param1 = para[1];
var para=(paras.length>1)?paras[1].split("="):"";
var param2= para[1];
var ReportViewer = document.getElementById("ReportViewer");
ReportViewer.Stop();
var Report = ReportViewer.Report;
// Report.ParameterByName("rptParam").AsString = param1; 给myReport.grf参数赋值
//03.aspx页面是生成XML数据的页面
var DataURL = "03.aspx?param1=" + param1 + "¶m2=" + param2;
ReportViewer.DataURL = DataURL;
ReportViewer.Start();
}
</script>
4、03.aspx:即生成XML数据的页面。在后台代码生成数据模板如下:
protected void Page_Load(object sender, EventArgs e)
{
//以下代码即组织SQL语句,并通过SqlReportData.GenNodeXmlData(this, cStrWhere.ToString(), true)生成XML数据
string cStrWhere;
cStrWhere = " exec Levy_FinalV_RegisterAccount02 ";
if ((Request["param1"] != null) && (Request["param1"].ToString() != ""))
{
cStrWhere += " '" + Request["param1"].ToString() + "',";
}
if ((Request["param2"] != null) && (Request["param2"].ToString() != ""))
{
cStrWhere += "'" + Request["param2"].ToString() + "',";
}
cStrWhere += "0,0";
SqlReportData.GenNodeXmlData(this, cStrWhere.ToString(), true);
}
5、示例效果图如下:
浙公网安备 33010602011771号