123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101 |
- using FastReport.Design;
- using FastReport.Utils;
- using System.IO;
- namespace FastReport.Wizards
- {
- internal abstract class EasterEggWizard : WizardBase
- {
- #region Protected Methods
- protected bool LoadStreamToDesigner(Stream s, Designer designer)
- {
- ReportTab reportTab = null;
- if (designer.MdiMode)
- {
- Report report = new Report();
- report.Designer = designer;
- reportTab = designer.CreateReportTab(report);
- }
- else
- {
- reportTab = designer.ActiveReportTab;
- }
- if (LoadStreamToReprotTab(s, designer, reportTab))
- {
- if (designer.MdiMode)
- designer.AddReportTab(reportTab);
- return true;
- }
- else if (designer.MdiMode)
- {
- reportTab.Dispose();
- }
- return false;
- }
- protected virtual void ProcessPages(Report report)
- {
- foreach (PageBase page in report.Pages)
- {
- if (page is ReportPage)
- {
- ReportPage reportPage = page as ReportPage;
- switch (Config.ReportSettings.DefaultPaperSize)
- {
- case DefaultPaperSize.A4:
- reportPage.PaperWidth = 210;
- reportPage.PaperHeight = 297;
- break;
- case DefaultPaperSize.Letter:
- reportPage.PaperWidth = 215.9f;
- reportPage.PaperHeight = 279.4f;
- break;
- }
- }
- }
- }
- protected virtual bool ShowDialog()
- {
- return true;
- }
- #endregion Protected Methods
- #region Private Methods
- private bool LoadStreamToReprotTab(Stream s, Designer designer, ReportTab reportTab)
- {
- OpenSaveDialogEventArgs e = new OpenSaveDialogEventArgs(designer);
- bool result = reportTab.SaveCurrentFile();
- if (result)
- {
- result = ShowDialog();
- if (result)
- {
- try
- {
- designer.Lock();
- reportTab.Report.Load(s);
- ProcessPages(reportTab.Report);
- Config.DesignerSettings.OnReportLoaded(this, new ReportLoadedEventArgs(reportTab.Report));
- result = true;
- }
- finally
- {
- reportTab.InitReport();
- designer.Unlock();
- }
- }
- }
- return result;
- }
- #endregion Private Methods
- }
- }
|