本文档阐述了在 SDI (单文档界面) 和 MDI (多文档界面) 最终用户设计器之间的差异,并说明了如何轻松地把一个 UI 类型迁移另一个。
MDI 设计器概述
在 XtraReports v2010 vol 2 之前的版本,只能创建 SDI 最终用户设计器。 现在,XtraReports 为可用的 (标准的和 Ribbon) 最终用户设计器提供了两种用户界面。
-
使用 单文档界面 (SDI),在一个设计器窗体实例中,每次只允许编辑一个报表。
XRDesignFormEx 和 XRDesignRibbonFormEx 类表示 SDI 最终用户设计器窗体,每个窗体都有一个用于显示报表的 XRDesignPanel 实例。
-
相反,多文档界面 (MDI) 能够根据需要,在相同的设计器窗体中同时打开多个报表。
这是通过引入 XRDesignMdiController 组件来实现,并且把它包含在 XRDesignForm 和 XRDesignRibbonForm 类中。 因此,为了使用 MDI 最终用户设计器,就应该使用这些窗体对象。
全新的 MDI 界面更实用,并允许使用设计器执行更多的任务。 例如,如果有一个 使用 XRSubreport 控件创建 的主/从报表,那么最终用户只需要双击 XRSubreport 控件,就会在相同设计器窗体的新“设计面板”中打开相关联的从报表。
本文档的下列小节阐述了如何根据使用了哪种类型的 (标准的、或 Ribbon) 最终用户设计器,快速地把 SDI 应用程序转换为多文档界面。
转换标准的 SDI 最终用户设计器窗体
要把 标准的 SDI 最终用户设计器 窗体转换为 MDI,则执行下列操作。
- 运行 Project Converter(项目转换器),把应用程序转换为最新的 XtraReprots 版本。
-
打开应用程序,在“组件面板”中选中 XRDesignBarManager,并单击它的智能标记。 在操作列表中,单击 Update(更新) 项。
这样将把一个新的 (Window[窗口]) 菜单项添加到 Bar Manager 的主菜单中,…
… 并且把 Close(关闭) 命令添加到 File(文件) 菜单中。
-
选中 XRDesignPanel,并敲击 DELETE 键 (删除它)。 同时,把 XRDesignMdiController 组件拖放到窗体上来代替。
随同 MDI Controller 一起,XtraTabbedMdiManager 组件也被添加,用于提供有标签页的多文档界面。
然后,MDI Controller 将被自动链接到窗体上的 XRDesignBarManager 和 XRDesignDockManager。
然后,对 XRDesignMdiController.OpenReport 方法的调用将在 MDI Controller 内创建一个“设计面板”实例,并且把指定的报表加载到其中。
可以通过 XRDesignMdiController.ActiveDesignPanel 属性来访问当前活动的“设计面板”。
转换 Ribbon SDI 最终用户设计器窗体
要把 Ribbon SDI 最终用户设计器 窗体转换为 MDI,则执行下列操作。
- 运行 Project Converter(项目转换器),把应用程序转换为最新的 XtraReprots 版本。
-
选中 XRDesignPanel,并敲击 DELETE 键 (删除它)。 同时,把 XRDesignMdiController 组件拖放到窗体上来代替。
随同 MDI Controller 一起,XtraTabbedMdiManager 组件也被添加,用于提供有标签页的多文档界面。
然后,MDI Controller 将被自动链接到窗体上的 XRDesignRibbonController 和 XRDesignDockManager。
然后,对 XRDesignMdiController.OpenReport 方法的调用将在 MDI Controller 内创建一个“设计面板”实例,并且把指定的报表加载到其中。
可以通过 XRDesignMdiController.ActiveDesignPanel 属性来访问当前活动的“设计面板”。