【Stimulsoft Reports.Net教程】在DesignerFx中加载和保存报表

【下载Stimulsoft Reports.Net最新版本】

首先,我们需要将Flash设计器组件放在ASPX页面上并定义必要的事件处理器:OnSaveReport用于保存报表模板,而OnPreviewReport用于注册预览数据。还可以创建一个表和Web控件,允许以多种方式加载报表。

<%@ Page Language="C#" AutoEventWireup="true" CodeBehind="Default.aspx.cs"
        Inherits="Load_and_Save_Report_in_the_DesignerFx.Default" %>
<%@ 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>Load and Save Report in the DesignerFx</title>
    <style type="text/css">
        .style1 {
            width: 80px;
            text-align: center;
        }
        .style2 {
            width: 260px;
            vertical-align: top;
        }
    </style>
</head>
<body>
    <form id="form1" runat="server">
    <div>
        <cc1:StiWebDesignerFx ID="StiWebDesignerFx1" runat="server" visible="false"
                OnSaveReport="StiWebDesignerFx1_SaveReport" 
                OnPreviewReport="StiWebDesignerFx1_PreviewReport" />
        <table>
            <tr>
                <td class="style2">
                    <asp:Label ID="Label1" runat="server" Font-Names="Arial" Font-Size="11pt"
                            Text='1. Choose ".mrt" file'></asp:Label><br />
                    <asp:Label ID="Label2" runat="server" Font-Names="Arial" Font-Size="11pt"
                            Text='2. Click "Design" button'></asp:Label><br />
                    <br />
                    <asp:FileUpload ID="FileReport" runat="server" Font-Names="Arial" Font-Size="11pt" Width="264px" />
                    <br />
                    <br />
                    <asp:Button ID="ButtonDesignFile" runat="server" Text="Design" Width="141px"
                        OnClick="ButtonDesignFile_Click" />
                    <br />
                </td>
 
                <td class="style1"><b>or</b></td>
 
                <td class="style2">
                    <asp:Label ID="Label3" runat="server" Font-Names="Arial" Font-Size="11pt"
                            Text='1. Choose Report on server'></asp:Label><br />
                    <asp:Label ID="Label4" runat="server" Font-Names="Arial" Font-Size="11pt"
                            Text='2. Click "Design" button'></asp:Label><br />
                    <br />
                    <asp:DropDownList ID="DropDownListReport" runat="server" Width="250px">
                        <asp:ListItem Value="SimpleList.mrt"></asp:ListItem>
                        <asp:ListItem Value="TwoSimpleLists.mrt"></asp:ListItem>
                        <asp:ListItem Value="Invoice.mrt"></asp:ListItem>
                        <asp:ListItem Value="Shapes.mrt"></asp:ListItem>
                    </asp:DropDownList>
                    <br />
                    <br />
                    <asp:Button ID="ButtonDesignServer" runat="server" Text="Design" Width="141px"
                            οnclick="ButtonDesignServer_Click" />
                    <br />
                    <td class="style1"><b>or</b></td>
 
                    <td class="style2">
                        <br />
                        <br />
                        <br />
                        <asp:Button ID="ButtonDesignNew" runat="server" Text="Design New Report" 
                                Width="157px" οnclick="ButtonDesignNew_Click" />
                    </td>
                </td>
            </tr>
        </table>
    </div>
    </form>
</body>
</html>

在下一步中,创建按钮三个单击处理程序,以多种方式加载报表模板。该ButtonDesignFile_Click方法加载从本地计算机的报表中,ButtonDesignServer_Click方法从列表加载selecter报表和ButtonDesignNew_Click方法创建新的报表模板。

protected void ButtonDesignFile_Click(object sender, EventArgs e)
{
    if (FileReport.PostedFile != null && FileReport.PostedFile.FileName.Length > 0 &&
        FileReport.PostedFile.InputStream != null)
    {
        StiReport report = new StiReport();
        report.Load(FileReport.PostedFile.InputStream);
        StiWebDesignerFx1.Design(report);
    }
}
 
protected void ButtonDesignServer_Click(object sender, EventArgs e)
{
    if (DropDownListReport.Text != null && DropDownListReport.Text.Length > 0)
    {
        string applicationDirectory = HttpContext.Current.Server.MapPath(string.Empty);
        string reportFileName = applicationDirectory + "\\Reports\\" + DropDownListReport.Text;
 
        StiReport report = new StiReport();
        report.Load(reportFileName);
        StiWebDesignerFx1.Design(report);
    }
}
 
protected void ButtonDesignNew_Click(object sender, EventArgs e)
{
    StiReport report = new StiReport();
    StiWebDesignerFx1.Design(report);
}

该StiWebDesignerFx1_SaveReport方法通过点击Flash设计的保存按钮调用。在此方法的参数中,将传递报表模板对象。您可以将此报表模板保存到文件,将数据库保存为打包字符串或使用其他方式保存。您还可以设置保存报表后将在设计器中显示的错误代码或字符串消息。

protected void StiWebDesignerFx1_SaveReport(object sender, StiSaveReportEventArgs e)
{
    // Web Designer return StiReport object in the e.Report property
    var reportString = e.Report.SaveToString();
 
    // You can set the error code which will be displayed by the designer after saving
    // -1: default value, the message is not displayed
    // 0: display 'Report is successfully saved' message
    //e.ErrorCode = 1;
 
    // Also you can set the custom message, it will be displayed after saving
    e.ErrorString = "Your report has been saved.";
}

如果需要为报表预览注册一些数据,则应定义StiWebDesignerFx1_PreviewReport方法。在此方法中,您可以加载和注册必要的数据集,例如加载样本报表的XML数据。

protected void StiWebDesignerFx1_PreviewReport(object sender, StiReportDataEventArgs e)
{
    string applicationDirectory = HttpContext.Current.Server.MapPath(string.Empty);
 
    DataSet data = new DataSet();
    data.ReadXml(applicationDirectory + "\\Data\\Demo.xml");
    data.ReadXmlSchema(applicationDirectory + "\\Data\\Demo.xsd");
 
    e.Report.RegData(data);
}

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

Stimulsoft

查看原文,下载示例

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
智慧校园整体解决方案是响应国家教育信息化政策,结合教育改革和技术创新的产物。该方案以物联网、大数据、人工智能和移动互联技术为基础,旨在打造一个安全、高效、互动且环保的教育环境。方案强调从数字化校园向智慧校园的转变,通过自动数据采集、智能分析和按需服务,实现校园业务的智能化管理。 方案的总体设计原则包括应用至上、分层设计和互联互通,确保系统能够满足不同用户角色的需求,并实现数据和资源的整合与共享。框架设计涵盖了校园安全、管理、教学、环境等多个方面,构建了一个全面的校园应用生态系统。这包括智慧安全系统、校园身份识别、智能排课及选课系统、智慧学习系统、精品录播教室方案等,以支持个性化学习和教学评估。 建设内容突出了智慧安全和智慧管理的重要性。智慧安全管理通过分布式录播系统和紧急预案一键启动功能,增强校园安全预警和事件响应能力。智慧管理系统则利用物联网技术,实现人员和设备的智能管理,提高校园运营效率。 智慧教学部分,方案提供了智慧学习系统和精品录播教室方案,支持专业级学习硬件和智能化网络管理,促进个性化学习和教学资源的高效利用。同时,教学质量评估心和资源应用平台的建设,旨在提升教学评估的科学性和教育资源的共享性。 智慧环境建设则侧重于基于物联网的设备管理,通过智慧教室管理系统实现教室环境的智能控制和能效管理,打造绿色、节能的校园环境。电子班牌和校园信息发布系统的建设,将作为智慧校园的核心和入口,提供教务、一卡通、图书馆等系统的集成信息。 总体而言,智慧校园整体解决方案通过集成先进技术,不仅提升了校园的信息化水平,而且优化了教学和管理流程,为学生、教师和家长提供了更加便捷、个性化的教育体验。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值