发布时间 : 2018-12-07 10:19:32.000|阅读 232 次
概述:此示例显示如何将报表加载到设计器以及如何使用保存报表事件。
相关链接:
此示例显示如何将报表加载到设计器以及如何使用保存报表事件。
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正版授权,请点击“咨询在线客服”哟!
渝ICP备12000582号-15/渝公网安备 50010702501010号