【Stimulsoft Reports.Net教程】使用Designer

时间:2024-03-20 14:25:29

下载Stimulsoft Reports.Net最新版本

要运行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"));
}

示例代码的结果如下图所示:

【Stimulsoft Reports.Net教程】使用Designer

查看原文,下载示例