摘要: 当您在解决方案向导中启用了安全系统创建新应用程序时,最终用户设置(模型差异)默认使用 ModelDifferenceDbStore 存储存储在数据库中。本主题介绍如何在现有应用程序中启用此功能,以及如何在数据库中存储共享模型差异(管理员设置)。 阅读全文
posted @ 2019-12-25 12:26 code first life 阅读(213) 评论(0) 推荐(0) 编辑
摘要: 最终用户可以在运行时轻松自定义 XAF 应用程序用户界面 (UI)。布局管理器、列选择器和其他功能允许最终用户以"您所看到的就是你得到的"的方式配置 UI。但是,当您作为开发人员在模型编辑器中自定义 UI 时,您必须处理索引、宽度、高度、组等。因此,您可能希望将 UI 自定义为最终用户,然后将更改合并到 XAF 解决方案中的应用程序模型图层之一。本主题介绍如何使用模型合并工具完成此任务。例如,列顺序设置将从用户差异合并到模块项目层中。但是,您可以使用相同的方法来合并任何最终用户自定义项。 阅读全文
posted @ 2019-12-25 12:26 code first life 阅读(196) 评论(0) 推荐(0) 编辑
摘要: https://docs.devexpress.com/eXpressAppFramework/images/actionattributeexample_completeaction117048.png 阅读全文
posted @ 2019-12-25 12:25 code first life 阅读(295) 评论(0) 推荐(3) 编辑
摘要: 要添加分析应用程序中数据的功能,eXpressApp 框架提供数据透视图模块。"分析数据"主题说明,要在应用程序中启动分析功能,应将此模块和内置分析业务类添加到应用程序中。在这种情况下,导航控件将包含"分析"项,最终用户将能够创建分析对象。但是,您可能需要提供从任何列表视图创建分析对象的功能,将新的分析对象的 DataType 属性设置为列表视图的对象类型。本主题演示如何完成此任务。 阅读全文
posted @ 2019-12-25 12:25 code first life 阅读(185) 评论(0) 推荐(0) 编辑
摘要: 此示例演示如何自定义在 UI 中可视化操作的控件。将创建自定义操作,允许用户输入日期并相应地筛选列表视图。实现的操作将接受键盘输入,并提供下拉日历。将自定义表示操作的控件,以接受使用自定义掩码输入的控件。下图显示了 UI 中生成的操作。 阅读全文
posted @ 2019-12-25 12:24 code first life 阅读(430) 评论(0) 推荐(3) 编辑
摘要: 本主题演示如何访问添加到 NewObjectViewController.NewObjectAction 项目列表的业务类,并在 WinForms 中列出,并ASP.NET使用经典 Web UI 的应用程序。 阅读全文
posted @ 2019-12-25 12:23 code first life 阅读(263) 评论(0) 推荐(3) 编辑
摘要: 在 XAF WinForms 和ASP.NET应用程序中,可以使用内置导出控制器提供的导出操作导出列表视图中的数据。如果实现"可导出"接口的列表编辑器显示当前列表视图,则默认情况下激活此操作。目前,所有内置的 WinForms 列表编辑器和大多数ASP.NET列表编辑器都支持此界面(不包括内置移动列表编辑器)。操作的选择操作Base.项集合基于当前列表视图列表编辑器的 Iexport.支持的导出格式集合填充。 阅读全文
posted @ 2019-12-25 12:23 code first life 阅读(334) 评论(0) 推荐(0) 编辑
摘要: 操作的可见性由 ActionBase.Active 属性管理。当此属性返回 false 时,操作是不可见的。按照以下步骤停用预定义或自定义操作。在当前示例中,将禁用"删除"操作。 阅读全文
posted @ 2019-12-25 12:22 code first life 阅读(351) 评论(0) 推荐(3) 编辑
摘要: 本主题演示如何在加载到当前对象空间的业务对象发生更改时禁用操作。为此,将处理 IObjectSpace.修改更改事件,并根据 IObjectSpace.IsModified 属性设置"操作基础"。 阅读全文
posted @ 2019-12-25 12:21 code first life 阅读(332) 评论(0) 推荐(3) 编辑
摘要: 如果替换列表视图的默认操作,则可能还需要隐藏"编辑操作"列,而不停用工具栏上显示的"编辑操作"。本主题介绍如何解决此任务。 阅读全文
posted @ 2019-12-25 12:20 code first life 阅读(217) 评论(0) 推荐(4) 编辑
摘要: 本主题介绍如何访问使用"新建操作"创建的对象。假设您正在使用业务类库中的 Task 业务类。使用"新建操作"创建新任务时,"任务.StartDate"属性将设置为当前日期。 阅读全文
posted @ 2019-12-25 12:18 code first life 阅读(199) 评论(0) 推荐(3) 编辑
摘要: 本主题介绍如何限制最终用户可以使用"新建操作"创建的对象数。假设您正在使用业务类库中的 Task 业务类。使用"新建操作"创建新任务时,将检查现有 Task 对象的计数,如果已有三个对象,则不允许最终用户创建其他对象。 阅读全文
posted @ 2019-12-25 12:16 code first life 阅读(199) 评论(0) 推荐(3) 编辑
摘要: 本主题介绍如何在应用程序模型中实现更改的操作,然后将这些更改应用于当前视图而不重新创建它。 阅读全文
posted @ 2019-12-25 12:15 code first life 阅读(229) 评论(0) 推荐(3) 编辑
摘要: 本文介绍如何在 WinForms XAF 应用程序中使用 HTML 格式。 阅读全文
posted @ 2019-12-25 12:15 code first life 阅读(249) 评论(0) 推荐(0) 编辑
摘要: 声明非持久性类,对其应用域组件属性,并添加对象键属性。 阅读全文
posted @ 2019-12-24 10:04 code first life 阅读(257) 评论(0) 推荐(3) 编辑
摘要: 本主题介绍如何在非持久性类中声明持久性类型引用或集合属性并将其显示在用户界面中,并可以选择为其分配默认值。 阅读全文
posted @ 2019-12-24 10:03 code first life 阅读(301) 评论(0) 推荐(3) 编辑
摘要: 此示例演示如何创建、读取、更新和删除非持久性对象。在此示例中,静态缓存用作非持久性对象的临时存储。 阅读全文
posted @ 2019-12-24 10:03 code first life 阅读(224) 评论(0) 推荐(0) 编辑
摘要: 本主题介绍如何基于非持久性数据创建报表,这些数据不会使用 ORM 数据模型从数据库查询。这对分析和报告从动态运行时计算、存储过程、任意 SQL 查询或第三方服务获得的数据非常有用。为了能够在此方案中使用报告 V2 模块,您需要在非持久性类的帮助下定义数据结构,然后使用非持久性 ObjectSpace 创建所需的对象实例。对象获取事件。在"如何:从导航主题显示非持久性对象的列表视图"中演示了类似的方法。 阅读全文
posted @ 2019-12-24 10:03 code first life 阅读(237) 评论(0) 推荐(0) 编辑
摘要: 此示例演示如何在选择导航项时显示非持久对象的列表视图。请注意,此方法仅与客户端数据访问模式兼容。 阅读全文
posted @ 2019-12-24 10:03 code first life 阅读(156) 评论(0) 推荐(0) 编辑
摘要: 您可以允许应用程序管理员创建自定义持久字段,并在 UI 中显示添加的字段的数据,而无需重新编译应用程序。在此示例中,SkypeID 字段将添加到 MainDemo 应用程序中的"联系人"业务对象中。 阅读全文
posted @ 2019-12-24 10:02 code first life 阅读(337) 评论(0) 推荐(3) 编辑
摘要: 开发 XAF 应用程序时,由于重构细节或更改业务需求,您可能需要重命名持久性类或属性。在调试模式下启动的 XAF 应用程序在添加新类或属性后自动在数据库中创建所需的表和列(请参阅业务类与数据库表主题)。但是,重命名数据库中已具有相应表的持久类时,此类将被视为新类,并创建一个新表。因此,旧表保持未使用状态,重命名的类数据将不可用。重命名已在数据库表中具有相应列的持久属性时也是如此。为新属性创建一个新列,并且旧列保持未使用状态。在开发阶段,这些问题并不大 - 您可以手动重命名所需的表/列,甚至创建新数据库。但是,当应用程序已分发给最终用户,并且具有包含生产数据的数据库时,此方法并不适合。本主题介绍一种在更新 XAF 应用程序时自动处理数据库结构更改的方法,并避免手动更新所有最终用户数据库。提供了几种典型的方案,您将遵循其中一种方案或组合它们来处理更复杂的更改: 阅读全文
posted @ 2019-12-19 15:20 code first life 阅读(248) 评论(1) 推荐(3) 编辑
摘要: 通过教程和其他文档来源,您学习了如何为 XAF 应用程序创建业务类。如果应用程序中有业务类,则应用程序的数据库中有数据库表。但是,现实情况是,大多数程序员不是从头开始构建新应用程序,而是维护现有数据库。在这种情况下,他们可以使用 XPO 数据模型向导为指定的旧数据库生成业务模型声明。按照以下步骤为要在 XAF 应用程序中使用的现有数据库生成业务类。 阅读全文
posted @ 2019-12-19 15:20 code first life 阅读(292) 评论(0) 推荐(0) 编辑
摘要: 本主题演示如何实现具有文件数据属性和文件集合属性的业务部门类。为此,将实现用于存储和管理员工简历信息的"简历"类。它有三个属性:文件、联系人和组合。File 属性提供一个文件,联系人属性包含对联系人类的引用,并且项目组合属性返回员工文件的集合。 阅读全文
posted @ 2019-12-19 15:19 code first life 阅读(281) 评论(0) 推荐(3) 编辑
摘要: XAF 随业务类库一起提供,该库包含许多可供在应用程序中使用的持续类。所有这些类都派生自在同一库中声明的 BaseObject 基持久性类。这是推荐使用功能丰富的持久性类。但是,在某些情况下,它可能不符合您的要求。在这种情况下,可以使用 XPO 提供的基本持久性类之一来实现自定义类。本主题介绍实现自定义基持久性类所需的步骤,以确保它在整个 eXpressApp 框架中按预期运行。如果不需要实现自定义类,并且希望使用 XPO 提供的基础类之一,请参阅基本持久性类帮助主题。 阅读全文
posted @ 2019-12-19 15:19 code first life 阅读(331) 评论(0) 推荐(0) 编辑
摘要: 使用 XAF,您可以从头开始构建新应用程序或维护现有数据库。"如何:为现有数据表生成 XPO 业务类"主题介绍如何使用设计时向导,该向导同时为指定数据库中的一个或多个数据表生成业务类。此外,现有数据库可以包含需要在 XAF 应用程序的列表视图、分析和报表中访问的视图(存储的查询)。如果数据库视图具有键列,则可以使用与映射到常规表相同的方法将持久类映射到该列。 阅读全文
posted @ 2019-12-19 15:18 code first life 阅读(163) 评论(0) 推荐(3) 编辑
摘要: 设计业务类时,常见的任务是确保使用默认属性值初始化新创建的业务对象。本主题说明如何初始化不同类型的属性。例如,将实现联系人业务类。创建"联系人"对象后,其属性将用默认值初始化。 阅读全文
posted @ 2019-12-19 15:18 code first life 阅读(245) 评论(0) 推荐(0) 编辑
摘要: 此示例演示如何填充和显示未绑定到数据库的对象(非持久性对象)的列表。此示例中将创建一个存储书籍列表的示例应用程序。在弹出窗口中显示重复书籍列表的操作将添加到此应用程序。 阅读全文
posted @ 2019-12-19 15:17 code first life 阅读(220) 评论(0) 推荐(3) 编辑
摘要: 在本主题中,您将学习如何在 XAF 中使用 XPO 的转换功能。当您需要在单个查询中合并基类和派生类时,它很有用。 阅读全文
posted @ 2019-12-19 15:17 code first life 阅读(303) 评论(0) 推荐(0) 编辑
摘要: 如果您有一个非 XAF 应用程序,并且想要开发一个使用同一数据库的 XAF 应用程序,则可以为现有数据库生成业务类来实现此任务。但是,如果现有应用程序基于实体框架数据模型,则可以在 XAF 中重用此模型以避免代码重复。本主题介绍如何使用位于外部程序集中的数据模型。 阅读全文
posted @ 2019-12-18 16:34 code first life 阅读(208) 评论(0) 推荐(3) 编辑
摘要: 本主题演示如何在 DbContext 上下文中使用业务模型创建简单的 XAF 应用程序。 阅读全文
posted @ 2019-12-18 16:34 code first life 阅读(260) 评论(0) 推荐(0) 编辑
摘要: 引入数据模型后,可能需要让应用程序使用预定义的对象集填充数据库。在本主题中,您将学习如何在应用程序运行时以代码向数据库添加数据。为此,此处演示了创建具有关联任务的员工对象的代码。 阅读全文
posted @ 2019-12-18 16:34 code first life 阅读(135) 评论(0) 推荐(0) 编辑
摘要: 本主题介绍如何实现 Business 类,以便基于子对象集合中包含的对象的属性计算其属性之一。 阅读全文
posted @ 2019-12-18 16:33 code first life 阅读(230) 评论(0) 推荐(2) 编辑
摘要: 本主题演示如何在 XAF 应用程序中使用模型第一实体模型和 DbContext 实体容器。 阅读全文
posted @ 2019-12-18 16:33 code first life 阅读(127) 评论(0) 推荐(0) 编辑
摘要: 地址和人员业务类中随商务舱库一起提供"全地址"和"全名"属性。这些属性是可计算的。FullAddress 属性表示由Country.Name、省、市、街和 ZipPostal 属性值的串联形成的字符串。FullName 属性由"名字"、中间名和姓氏属性值的串联形成。实现"全地址"和"全名"属性,以便可以更改项的串联顺序。本主题详细介绍了如何更改此顺序。在实现类似的 Business 类属性时,可以使用此技术。 阅读全文
posted @ 2019-12-18 16:32 code first life 阅读(292) 评论(0) 推荐(2) 编辑
摘要: 设计业务类时,常见的任务是确保使用默认属性值初始化新创建的业务对象。本主题说明如何初始化不同类型的属性。例如,将实现联系人业务类。创建"联系人"对象后,其属性将用默认值初始化。 阅读全文
posted @ 2019-12-18 16:31 code first life 阅读(212) 评论(0) 推荐(2) 编辑
摘要: 本主题提供有关如何在 XAF 应用程序中使用 XPO 数据模型设计器的分步说明。我们将创建一个由两个对象组成的简单业务模型 - 员工和任务。这些对象将关联一对多关系。然后在代码中添加特定于 XAF 的属性,应用程序将可以使用。 阅读全文
posted @ 2019-12-18 16:31 code first life 阅读(382) 评论(0) 推荐(0) 编辑
摘要: 在 Model First 数据模型中,对象属性在设计器生成的文件中声明,并且不能直接使用所需的内置属性来修饰它们。解决方法是将 MetadataType 属性应用于类,创建元数据类,并将所需的属性应用于元数据的属性。下面的代码使用 XAF 示例中":首先使用实体框架模型"中的数据模型演示了此方法。 阅读全文
posted @ 2019-12-18 16:30 code first life 阅读(173) 评论(0) 推荐(2) 编辑
摘要: 本主题演示如何创建使用实体框架 (EF) 和 eXpress 持久对象 (XPO) 业务模型的简单 XAF 应用程序。例如,如果要在现有基于 XPO 的 XAF 项目中重用非 XAF 应用程序中的实体框架模型,则需要此方法。因此,您的应用程序将访问两个数据库,第一个使用 XPO,第二个使用 EF。 阅读全文
posted @ 2019-12-18 12:28 code first life 阅读(345) 评论(0) 推荐(2) 编辑
摘要: 在本课中,您将学习如何在应用程序中使用安全系统。使用此系统时,安全策略复合安全策略将应用于您的应用程序。根据此策略,用户具有角色,而角色又以权限集为特征。本主题将指导您创建管理员和代码中的普通用户。管理员将具有完全访问权限集,并且用户将具有有限的权限集。您将看到管理员如何创建用户和角色,为其指定权限,然后在运行时将角色分配给用户。您还将使用身份验证 Standar 身份验证类型登录到应用程序。 阅读全文
posted @ 2019-12-18 11:55 code first life 阅读(366) 评论(0) 推荐(2) 编辑
摘要: 计划程序要求事件业务类位于 XAF 应用程序模型中。按照从商务舱库 (EF/XPO) 中添加类课程中描述的步骤,了解如何添加它。 阅读全文
posted @ 2019-12-18 11:55 code first life 阅读(194) 评论(0) 推荐(0) 编辑