1. 程式人生 > >【Stimulsoft Reports.Net教程】使用Designer

【Stimulsoft Reports.Net教程】使用Designer

要執行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