简单的说就是将调用一个数据源和一个grf文件模板,通过一个方法将其合并 新建一个静态页面 拷贝下面代码
<HTML>
<HEAD>
<TITLE>Web报表(B/S报表)演示 - 自动激活报表插件</TITLE>
<META HTTP-EQUIV="Content-Type" CONTENT="text/html; charset=gb2312">
<script language="javascript" type="text/javascript">
function CreatePrintViewer(ReportURL, DataURL)
{
var GridReportCodeBase = 'codebase="/griectl.cab#Version=5,0,9,920" ';
document.write('<OBJECT classid="CLSID:9E4CCA44-17FC-402b-822C-BFA6CBA77C0C" '+ GridReportCodeBase + ' width="100%" height="100%" id="ReportViewer" VIEWASTEXT>');
document.write('<param name="ReportURL" value="' + ReportURL + '">');
document.write('<param name="DataURL" value="' + DataURL + '">');
document.write('<param name="SerialNo" value="9B028VEE06LCI794PXQ9E2DL31VDS5R0258TSU54TAYQ5BT6S9SEUV4KWPS5">');
document.write('<param name="UserName" value="锐浪报表插件本地测试">');
document.write('</OBJECT>');
}
</script>
</HEAD>
<BODY style="margin:0">
<script language="javascript">
//在网页中直接用object定义控件,控件必须要点击之后才能激活。
//如果在调用另一个js代码文件的函数定义控件,控件显示后会自动激活。
CreatePrintViewer("grf/test.grf", "data/Default.aspx")
</script>
</BODY>
</HTML>
新建一个aspx文件default.aspx 只保留
<%@ Page Language="C#" AutoEventWireup="true" CodeFile="Default.aspx.cs" Inherits="data_Default" %>
在其后台加入
protected void Page_Load(object sender, EventArgs e)
{
SqlReportData.GenNodeXmlData(this, "select id,name,address from tbl_test", false);
}
public const string SqlConnStr = "Data Source=(local);Initial Catalog=gridreport;Persist Security Info=True;User ID=sa;Password=;";
//根据查询SQL,产生提供给报表生成需要的XML数据,采用 Sql 数据引擎
public static void GenNodeXmlData(System.Web.UI.Page DataPage, string QuerySQL, bool ToCompress)
{
SqlConnection myConn = new SqlConnection(SqlConnStr);
SqlDataAdapter myda = new SqlDataAdapter(QuerySQL, myConn);
DataSet myds = new DataSet();
myConn.Open();
myda.Fill(myds);
myConn.Close();
ReportData.GenNodeXmlData(DataPage, myds, ToCompress);
}
再需要建个grf文件模板
只要在明细表格中加入sql语句获得数据源即可
这样打开静态页面调用
CreatePrintViewer("grf/test.grf", "data/Default.aspx") 即可