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

发布时间 : 2018-12-07 10:19:32.000|阅读 174 次

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

相关链接:

下载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

下载示例

购买Stimulsoft正版授权,请点击“咨询在线客服”哟!

GrapeCity年末福利大放送

在线
客服
微信
QQ 电话
023-68661681
返回
顶部