要运行Web设计器,只需在ASPX页面上的Stimulsoft.Report.WebDesign库中添加StiWebDesigner控件即可。
<%@ Page Language="C#" AutoEventWireup="true" CodeBehind="Default.aspx.cs" Inherits="Using_the_Designer.Report" %>
<%@ Register Assembly="Stimulsoft.Report.WebDesign" Namespace="Stimulsoft.Report.Web" TagPrefix="cc1" %>
<!DOCTYPE html>
<html xmlns="http://www.w3.org/1999/xhtml">
<head runat="server">
<title>Using the Designer</title>
</head>
<body>
<form id="form1" runat="server">
<div>
<cc1:StiWebDesigner ID="StiWebDesigner1" runat="server"
OnCreateReport="StiWebDesigner1_CreateReport"
OnPreviewReport="StiWebDesigner1_PreviewReport"
OnSaveReport="StiWebDesigner1_SaveReport" />
</div>
</form>
</body>
</html>
要加载报表模板,您可以使用Page_Load事件。例如,您可以在此处创建StiReport对象并从文件加载报表模板。完成这些操作后,您只需将报表对象分配给设计器组件即可。
该StiWebDesigner1_CreateReport则事件触发的报表设计器创建一个从主菜单中的新的报表。在这种情况下,对于exapple,您可以注册报表数据,或加载默认报表模板。 在StiWebDesigner1_PreviewReport事件中,您可以注册预览的报表数据。 该StiWebDesigner1_SaveReport事件触发,然后设置desinger中的Save按钮。报表对象将在事件args中传输。例如,您可以将报表保存到文件。 下面的代码显示了这些事件的工作示例。
protected void Page_Load(object sender, EventArgs e)
{
StiReport report = new StiReport();
report.Load(Server.MapPath(@"Reports\Invoice.mrt"));
StiWebDesigner1.Report = report;
}
protected void StiWebDesigner1_CreateReport(object sender, StiReportDataEventArgs e)
{
DataSet data = new DataSet();
data.ReadXmlSchema(Server.MapPath(@"Data\Demo.xsd"));
data.ReadXml(Server.MapPath(@"Data\Demo.xml"));
e.Report.RegData(data);
e.Report.Dictionary.Synchronize();
}
protected void StiWebDesigner1_PreviewReport(object sender, StiReportDataEventArgs e)
{
DataSet data = new DataSet();
data.ReadXmlSchema(Server.MapPath(@"Data\Demo.xsd"));
data.ReadXml(Server.MapPath(@"Data\Demo.xml"));
e.Report.RegData(data);
}
protected void StiWebDesigner1_SaveReport(object sender, StiSaveReportEventArgs e)
{
StiReport report = e.Report;
report.Save(Server.MapPath(@"Reports\" + report.ReportName + ".mrt"));
}
示例代码的结果如下图所示: