要运行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")); }
示例代码的结果如下图所示: