【Stimulsoft Reports Silverlight教程】在Designer中保存并加载报表

下载Stimulsoft Reports PHP最新版本

此示例显示如何将报表加载到设计器以及如何使用保存报表事件。

private void btLoadReport_Click(object sender, System.Windows.RoutedEventArgs e)
{
    if (cbReports.SelectedItem != null)
    {
        System.Reflection.Assembly a = System.Reflection.Assembly.GetExecutingAssembly();
        var stream = a.GetManifestResourceStream(string.Format("DesignerSaveLoad.ReportFiles.{0}.mrt",
            ((ComboBoxItem)cbReports.SelectedItem).Content.ToString()));
 
        StiReport report = new StiReport();
        report.Load(stream);
        stream.Close();
        stream.Dispose();
        stream = null;
 
        report.CalculationMode = StiCalculationMode.Interpretation;
        report.RegBusinessObject("Data", "Data", new Data());
 
        designer.Report = report;
    }
}

您可以在应用程序初始化时将事件侦听器添加到StiOptions.Engine.GlobalEvents:

public MainPage()
{
    ...
 
    StiOptions.Engine.GlobalEvents.SavingReportInDesigner +=
        new Stimulsoft.Report.Design.StiSavingObjectEventHandler(GlobalEvents_SavingReportInDesigner);
}

指定报表保存时要执行的操作:

private void GlobalEvents_SavingReportInDesigner(object sender, Stimulsoft.Report.Design.StiSavingObjectEventArgs e)
{
    if (designer.Report == null) return;
    e.Processed = true;
    messageBox = new MessageBoxWindow();
    messageBox.Closed += delegate
    {
        if (messageBox.Result == MessageBoxResult.Yes)
        {
            SaveFileDialog saveDialog = new SaveFileDialog();
            saveDialog.Filter = "Report Files (*.mrt) | *.mrt";
            if (saveDialog.ShowDialog() == true)
            {
                var stream = saveDialog.OpenFile();
                StiXmlReportSLService saveService = new StiXmlReportSLService();
                saveService.Save(designer.Report, stream);
 
                stream.Flush();
                stream.Close();
                stream.Dispose();
                stream = null;
            }
        }
 
        messageBox = null;
    };
 
    messageBox.Show();
}

下面的屏幕截图中,您可以看到示例代码的结果。

【Stimulsoft Reports Silverlight教程】在Designer中保存并加载报表

下载示例

【Stimulsoft Reports Silverlight教程】在Designer中保存并加载报表