Llamachant Framework Modules
最近更新
* 变更:我们从所需的模块列表中删除了审计跟踪模块。如果要在应用程序中使用Audit Trail功能,请将Audit Trail模块添加到.Module项目*
- 新功能:添加审计跟踪恢复(实验)
- 更新了IAuditTrailUser接口
- 已解决的问题,当使用Web
2018-06-14中的上一个和下一个对象操作时,标签上的计数不清除- 次要修复
- 已解决的问题,当使用上一个和上一个时,选项卡上的计数不会更新Web中的下一个对象操作
- 已解决的问题,其中“显示审计跟踪”在使用域组件时未显示正确的标题
我们与来自世界各地的客户合作,我们发现许多客户希望在他们的解决方案中实现类似的功能。我们收集了一些最常见的请求,并创建了一个可重用的模块,我们希望与大家分享!
使用限制
欢迎您在应用程序中下载,使用,修改和分发这些模块,以用于个人或商业应用程序。如果您决定使用这些模块,我们会询问以下内容:
- 不要出售/转售这些模块。它们对所有人免费使用,而不是为了您自己赚钱。
- 确保您拥有有效的DevExpress Universal Subscription。
- 将它们包含在您的XAF应用程序中。考虑让我们了解您的项目,因为我们喜欢在野外学习XAF。
- 考虑在您的网站上添加一个链接给我们。
- 考虑在Facebook上喜欢并关注我们
- 如果您有任何问题,建议或改进,请联系我们!
在你开始之前
这些模块是使用XPO开发的,并不是实体框架友好的。它们按原样提供,不提供任何形式的担保。我们希望您会发现它们对您的解决方案有用。
安装
目前,您可以下载Visual Studio项目并将其包含在您的解决方案中。在模块中引用它们,并像在任何其他XAF模块中一样通过Module Designer包含它们。某些功能需要从DevExpress中包含其他模块,如下所示。
如果您愿意,可以从GitHub上的Llamachant Framework(XAF)存储库中获取它们
功能和平台
扩展功能 | ||
审计跟踪查看 | Win和Web | |
审计跟踪恢复(实验) | Win和Web | |
跟踪对象 | Win和Web | |
Singleton Business Objects | Win和Web | |
视觉组件 | ||
字体大小 | 只Win | |
标签中的收集计数 | Win和Web | |
SVG皮肤调色板 | 只Win | |
工具栏选项 | Win和Web | |
列表视图行处理选项 | Win和Web | |
删除非聚合集合(链接和取消链接) | Win和Web | |
打开对象动作标题 | 只Win | |
摘要面板选项 | 只Win | |
平滑的启动画面加载 | 只Win |
审计跟踪查看
许多人将审计跟踪模块添加到他们的解决方案中,但绝不允许用户与之交互。在此模块中,您可以启用该选项以从任何详细信息视图查看审计跟踪。View Audit Trail操作在Tools容器中可用,并为用户提供一个包含完整审核历史记录的弹出窗口。管理View Audit Trail操作的可见性有3个设置:None,All,UserSpecific。这些选项在Model文件的Options节点中可用。如果要使“审计跟踪”操作特定于用户,请在自定义用户类上实现IAuditTrailUser接口。
审计跟踪恢复(实验)
我们都有那个电话,其中一个用户错误地删除了一条记录,需要回复记录。使用XPO的延迟删除选项,记录被标记为已删除而不是实际被删除。唯一的复杂因素是对象之间的链接通常在删除过程中被清除。这可能导致数小时试图追逐所有旧关系。使用此新模块,您可以快速搜索和还原已删除的对象及其所有相关对象。这被认为是实验性的,所以首先备份你的数据库。此模块还需要完整审核和有效的延迟删除策略才能正常工作。我们建议您将此作为技术人员的最后手段 - 而不是用户手中。在“模型文件”的“选项”节点中启用此选项。
跟踪对象
我们希望将此功能视为Audit Trail Junior。创建,修改和删除信息直接存储在对象表中的对象上,这样您就可以快速查看谁做了什么。我们建议您创建自定义Base对象并实现ITrackedObject接口。使用TrackedObjectHelper快速设置跟踪对象的详细信息。我们将此作为一个带帮助程序的接口提供,因此您可以轻松地将跟踪添加到不从您自己的自定义Base对象继承的对象。
Singleton Business Objects
我们的客户通常不会按名称要求这些,但我们将Singleton Business Objects添加到我们创建的几乎所有应用程序中。从本质上讲,单例业务对象被设计为一个只有一个的业务对象。这是一种直接在数据库中存储设置的好方法,可以由最终用户快速配置。我们所做的是阻止显示这些对象的列表视图,而是向用户显示详细信息视图。我们还阻止用户创建或删除这些对象。
要实现单例业务对象,请在对象上实现ISingletonBO接口。
字体大小(仅限Win)
我们的客户要求一种方法来增加应用程序字体大小。使用我们的模块,您可以从“模型文件”中的“选项”节点启用“字体大小”操作。您还可以在名为“字体大小”的“选项”下的新节点中定义新的字体大小。此解决方案仅适用于Win应用程序,因为Web修改将通过CSS完成。
标签中的收集计数
这是我们添加到所有应用程序的一个可视元素,因为它可以帮助用户理解和定位他们的数据。包含集合的任何选项卡组项将在选项卡名称中显示该集合中项的计数。如果集合中存在项目,此功能还提供了使选项卡标题变为粗体的选项。在“模型文件”的“选项”节点中启用这些选项。
SVG皮肤调色板(仅限Win)
DevExpress在其组件的第17版中引入了SVG外观。我们首先对“Bezier”主题的外观印象深刻,因为它非常干净,简洁,并在对话框周围吹嘘一些漂亮的阴影。直到我们阅读了更多关于新SVG主题选项的内容,我们才意识到在这个主题中隐藏了更多的主题选项。为了解锁这些新的Palette选项,我们在DevExpress网站上提供了一个控制器,其中包含一些控制器的微小变化。选择SVG主题后,默认情况下可以使用此操作。
工具栏选项
如果要隐藏用户的工具栏并阻止它们再次显示,请在列表视图上使用新的ToolbarVisible和AllowToolbarVisibilityToggle选项。如果将AllowToolbarVisibilityToggle设置为false,工具栏将消失并再次显示再次显示的操作。
列表视图行处理选项
在某些情况下,您不希望用户从列表视图中打开详细信息视图。我们在模型中添加了一个选项以启用此功能。尝试在列表视图的模型中设置AllowOpenDetailView选项。
删除非聚合集合
我们经常看到用户删除对象而不是在使用非聚合的集合时将其与集合取消链接。对于那些不熟悉聚合与非聚合集合的人,可以这样考虑:聚合集合是集合中的项目只能属于包含集合的对象的集合。一个例子是客户端上的联系人列表。非聚合集合是可以将项目拉入或推回到项目池中的集合。例如,参加会议的工作人员名单。从视觉上看,Aggregated和Non-Aggregated集合之间的唯一区别是Link和Unlink操作的可用性。在功能上,它们的行为不同,特别是在克隆和删除过程中。如果删除具有聚合集合的项目,所有聚合项目也将被删除。如果要克隆项目,还会克隆聚合集合中所有项目的副本。
防止在非聚合集合上删除的选项可以在2个位置设置:
- 在模型文件的Options节点中,您将找到一个名为AllowDeleteNonAggregatedObjects的新选项。默认情况下,此设置为true,因此您的XAF应用程序将继续像开箱即用一样运行。将此属性设置为false可从所有非聚合集合中删除“删除”操作。
- 在模型文件的列表视图节点中,您将找到一个名为AllowDeleteNonAggregatedObject的新选项。默认情况下,此设置为true,因此您的XAF应用程序将继续像开箱即用一样运行。如果在“选项”节点中将AllowDeleteNonAggregatedObjects选项设置为False,则会覆盖此值。但是,如果您将值显式更改为True(模型中为粗体),则允许删除。
打开对象动作标题(仅限Win)
虽然这是一个非常小的项目,但它经常出现。默认情况下,OpenObjectAction的标题是“Open Related Record”。因为它位于功能区或视图的工具栏中,所以我们所谈论的相关记录并不总是很清楚。为了解决这个问题,我们更新标题以在选择项目时显示对象类型名称。因此,如果您单击“联系人详细信息视图”中的“客户”属性,则该操作将显示“Open Client”。您可以在模型文件中的“本地化” - >“文本” - >“OpenObjectWithCaption”项中更改标题格式。
在模型文件的“选项”节点中启用ShowTypeNameInOpenObject选项以启用此新标题更新。最后,如果您已经或需要创建自己的继承自OpenObjectController的控制器,请将其更改为继承自OpenObjectCaptionController。
摘要面板选项(仅限Win)
因此,我们经常发现自己试图确定列表视图中有多少项,或列的总和是什么,但为了启用网格页脚(我们称之为摘要面板),您必须进入模型并且为该视图启用它。此选项允许您通过右键单击列标题在网格中打开或关闭面板。目前,这些选项可用于网格列表编辑器和树列表编辑器。可以在“模型文件”的“选项”节点中或“模型文件”中的各个“列表视图”节点上全局启用这些选项。
平滑的启动画面加载(仅限Win)
品牌化应用程序总是一个好主意。创建启动画面有几个选项,如DevExpress在文章如何使用自定义启动画面中所述。我们一直倾向于在启动画面上添加Marquee Progress Bar,因为一个小动画对最终用户有很大的影响。我们还希望提供有关加载过程中发生的情况的更新。为了简化此过程,我们添加了CustomSplashScreen对象,您可以使用该对象显示自定义初始屏幕并通过平滑动画接收更新。
要实现自定义初始屏幕:
- 创建一个扩展SplashScreen的新表单(示例:公共部分类MySplashScreen:DevExpress.XtraSplashScreen.SplashScreen)
- 要接受文本更新,请重写ProcessCommand方法并解析传入的“arg”参数
- 示例:public override void ProcessCommand(Enum cmd,object arg)
- arg是一个字符串,其中包含由管道分隔的标题和描述(示例:“您的应用程序|加载模块......”)
- 根据需要将标签设置为这些值(例如:labelControl1.Text = args.ToString()。Replace(“|”,“”)。Trim();)
- 在Program.cs文件中,设置新的启动画面(例如:winApplication.SplashScreen = new CustomSplashScreen(typeof(MySplashScreen));)
文件类型:ZIP