EPR类企业管理系统

在我们现有系统基础上或全新开发,提供定制服务
为您的企业高效快速实施ERP,WMS,MES,CRM管理系统
全面管控物料仓库、销售业务、采购业务、仓库业务
生产过程、质量检验、组织架构、业务报表


定制
QQ:460-3528

开发
QQ群:3360-90194

源码
微信:136-3650-3721

条件外观模块

有条件的外观模块,可以动态配置的用户界面。UI自定义是基于预定义的业务规则执行的。本主题概述了“条件外观”模块,并描述了在应用程序中利用其功能的方法。要查看实际使用的模块,请参阅随XAF一起安装的FeatureCenter演示。默认情况下,此演示位于%PUBLIC%\ Documents \ DevExpress演示19.2 \ Components \ eXpressApp Framework \ FeatureCenter文件夹中。

概述

条件外观模块由与平台无关的ConditionalAppearanceModule模块项目表示。要在XAF应用程序中使用该模块,可以将其添加到模块或应用程序项目中。为此,调用“模块设计器”或“应用程序设计器”,并将ConditionalAppearanceModule项目从“工具箱”拖到“模块”面板。在设计器中进行更改后,请确保重建您的解决方案。

注意

当前,以下列表编辑器支持条件外观。

此外,条件外观可以应用于内置的属性编辑器,静态文本详细信息视图项(请参见IModelStaticText),布局项,组和选项卡(请参见IModelViewLayout)以及操作

条件外观模块支持以下自定义。

可能的定制 列表视图中的单元格 列表视图中的已编辑单元格 详细视图中的属性编辑器 详细信息视图中的静态文本 布局项目 布局组和选项卡式布局组 动作
字体颜色 icon_checkmark_green icon_checkmark_green icon_checkmark_green icon_checkmark_green icon_checkmark_green
字体样式 icon_checkmark_green icon_checkmark_green icon_checkmark_green icon_checkmark_green icon_checkmark_green
背色 icon_checkmark_green icon_checkmark_green icon_checkmark_green icon_checkmark_green
启用/禁用 icon_checkmark_green icon_checkmark_green icon_checkmark_green
可见/不可见 icon_checkmark_green icon_checkmark_green icon_checkmark_green icon_checkmark_green

下图说明了列表视图中应用的各种条件外观规则。

ConditionalAppearance_ListView

下图说明了详细视图中应用的各种条件外观规则。

ConditionalAppearance_DetailView

为了在您的应用程序中有效使用此模块,您只需要知道如何定义条件外观规则即可确定如何自定义UI。条件出现规则由以下部分组成。

  1. 唯一规则标识符。

    ID-指定外观规则的标识符。

  2. 将会受到影响的UI元素。

    AppearanceItemType-指定目标元素的类型:视图项(列表视图,属性编辑器或静态文本中的属性),布局项或动作。

    TargetItems-指定目标项目标识符,或用分号分隔的目标项目标识符列表。您可以使用“ *”符号来定位所有项目。定制动作时,请指定其ActionBase.Id值。

  3. 外观自定义由以下规则属性指定:

    BackColorFontColorFontStyle启用可见性

  4. 外观规则有效的条件由以下属性反映。

    上下文-指定在其中应用规则的视图。这些视图包括详细视图,列表视图,特定的详细视图和列表视图以及目标业务类别的任何视图。

    条件-指定目标对象必须满足的条件。

    方法-指定返回布尔值的方法。当此方法返回true时,规则处于活动状态;否则,规则处于活动状态。否则,该规则无效。

    优先级-指定当多个规则同时影响同一UI元素时规则的应用顺序。

可以使用以下三种方法之一来声明条件出现规则。

不建议使用的方案

  • 隐藏或禁用UI元素以保护数据

    外观规则在UI级别应用,并且对不支持条件外观的编辑器不起作用。因此,建议使用安全系统来按用户保护(禁用编辑或隐藏)数据。但是,您可以在安全系统未完全涵盖的情况下使用“条件外观”(例如,根据尚未提交的数据禁用/隐藏编辑器)。

  • 动态显示和隐藏动作

    根据当前对象的状态,不要动态显示/隐藏操作-这会导致不良的用户体验并可能导致错误。相反,建议您管理操作的启用状态,这是业务应用程序中的常见做法。例如,设想一种情况,当用户尝试单击将要隐藏的动作时。在这种情况下,相邻的动作会自动更改其屏幕位置,并且最终用户可能会意外单击错误的动作。如果禁用而不是隐藏动作,则相邻动作的屏幕位置不会改变。

  • 显示和隐藏列表视图列

    您可能需要在列表视图中隐藏或显示整个列。对于条件外观模块,这是不自然的情况,因为此模块旨在在预定义条件下更改不同UI元素的外观设置。但是,如果指定的标准不基于当前View的对象,则可以隐藏或显示列。因此,您可以指定的条件为空,类似于“ 1 = 1”或“函数条件运算符”,两者都不要求有关当前对象的信息。要隐藏或显示列,请使用相应的“视图” | “索引”属性。列表视图| 列| 在“应用程序模型”中,“列”节点设置为“ -1”。一旦创建了列表编辑器的控件,便会执行此操作,因此,如果由于您在规则中使用的全局条件返回true导致列被隐藏,则在此条件返回false时将不会显示该列。在这种情况下,您应该声明两个外观规则-一个用于隐藏列,另一个用于显示列。仅在重新创建列表编辑器后,才会刷新列的可见性状态。

    请注意,您可以指定一个静态方法(请参阅AppearanceAttribute.Method),如果很难在规则的声明中编写条件(请参阅IAppearanceRuleProperties.Criteria),则该方法将始终返回true

    注意

    在ASP.NET应用程序中,隐藏和显示“列表视图”列在某些情况下可能无法正常工作。如果“条件外观”模块的当前实现无法满足您的需求,或者您有任何问题,请联系我们的支持团队,我们将为您的特定方案提供替代实现。

  • 基于主对象管理嵌套ListView操作和列的外观

    只有在嵌套ListView中至少选择了一条记录时,条件外观规则才在这种情况下起作用。在其他情况下,请使用自定义视图控制器隐藏操作和列,如以下主题所述:

相关文章

转载保留此链接,注明出处