XAF 如何基于业务规则禁用属性

// Developer Express Code Central Example:
// How to: Disable Property Editors Based on a Business Rule
//
// This example demonstrates how to hide and disable property editors via the
// Conditional Appearance module (the obsolete Conditional Editor State module is
// used in versions prior to 11.2). The complete description is available in the
// How to: Disable Property Editors Based on a Business Rule
// (ms-help://DevExpress.Xaf/CustomDocument3221.htm) help topic.
//
// You can find sample updates and versions for different programming languages here:
// http://www.devexpress.com/example=E1672

using System;
using System.ComponentModel;
using DevExpress.Xpo;
using DevExpress.Data.Filtering;
using DevExpress.ExpressApp;
using DevExpress.Persistent.Base;
using DevExpress.Persistent.BaseImpl;
using DevExpress.Persistent.Validation;
using DevExpress.ExpressApp.ConditionalAppearance;
using DevExpress.ExpressApp.Editors;

namespace EditorStateExample.Module {
    [DefaultClassOptions]
    [ImageName("BO_Person")]
    public class Contact : BaseObject {
        public Contact(Session session) : base(session) { }
        public string Name {
            get { return GetPropertyValue<string>("Name"); }
            set { SetPropertyValue<string>("Name", value); }
        }
        [ImmediatePostData]
        public bool IsMarried {
            get { return GetPropertyValue<bool>("IsMarried"); }
            set { SetPropertyValue<bool>("IsMarried", value); }
        }
        [Appearance("Single", Visibility = ViewItemVisibility.Hide, Criteria = "!IsMarried", Context="DetailView")]
        public string SpouseName {
            get { return GetPropertyValue<string>("SpouseName"); }
            set { SetPropertyValue<string>("SpouseName", value); }
        }
        [ImmediatePostData]
        public string Address1 {
            get { return GetPropertyValue<string>("Address1"); }
            set { SetPropertyValue<string>("Address1", value); }
        }
        [Appearance("AddressOneIsEmpty", Enabled = false, Criteria = "IsNullOrEmpty(Address1)")]
        public string Address2 {
            get { return GetPropertyValue<string>("Address2"); }
            set { SetPropertyValue<string>("Address2", value); }
        }
    }
}

转载于:http://www.cnblogs.com/Tonyyang/

时间: 2024-11-06 08:41:53

XAF 如何基于业务规则禁用属性的相关文章

基于业务规则的客户风险评分 – IBM ODM实现

通常的业务规则我们使用If then的形式来描述,而现实生活中的企业业务决策要复杂得多,一般由多个规则组成,而且其复杂性很难直接通过经典的基于rete的规则引擎利用其推理能力执行多个if then语句来解决.需要对规则流的设计,模型的建立,规则的层次结构有一个整体的考虑设计,以真正达到企业运营决策逻辑的敏捷变更的目的. 本文将使用一个金融行业常见的客户风险评分场景,来说明怎么利用业务规则技术(IBM ODM/JRules)实现复杂决策. 客户风险评分需求 所谓客户风险评分,就是根据客户信息使用特

需求用例分析之业务规则

作者:张克强 作者微博:张克强-敏捷307 在雅各布森用例分析方法和科伯恩用例分析方法中其实都没有"业务规则"的属性,在科伯恩方法中有个相近的属性是约束条件.但是业界使用中常常会给用例加上这个属性,这是为什么呢?为什么两位大师没有加上,是大师们疏忽了?而为什么不少人加上了呢? 从时间和传播上很容易推断,业务规则的来源是传统的需求规格说明书.在传统的需求规格说明书中,整理提炼业务规则或称业务逻辑是其中核心的分析产物.受到传统需求规格说明书的深远影响,不少人觉得这样的业务规则是值得写的用例

基于RulesEngine的业务规则实现

规则引擎由推理引擎发展而来,是一种嵌入在应用程序中的组件,实现了将业务决策从应用程序代码中分离出来,并使用预定义的语义模块编写业务决策.接受数据输入,解释业务规则,并根据业务规则做出业务决策.比较常见的业务规则引擎有Drools.VisualRules 和iLog.这里介绍另外一个C#开源工具RulesEngine.下面通过一个例子来他如何使用. 1 项目结构 在RulesEngine源代码中添加一个RulesEngineDemo的窗体应用程序,然后引用需要的类库,如下图所示: 2 订单等实体类

业务规则引擎浅析

在CRM(客户关系管理)系统或者其他业务支撑型系统的开发过程中,最经常多变的就是复杂的业务规则.因为这些规则要迎合.顺应市场的变化,如何能有效到做到业务规则和整体的系统支撑架构解耦分离,这个是开发过程中必须考虑的一个问题.每当客户要求改变一个业务规则的时候,我们又如何能做到在最短的时间内完成需求的开发提交,提高系统的灵活度?业务规则引擎无非是一个比较好的解决方案.它把复杂.冗余的业务规则同整个支撑系统分离开,做到架构的可复用移植,这个就是我们的终极目标. 那规则引擎又是什么东西?严格来说,它是一

SpringBoot2 整合 Drools规则引擎,实现高效的业务规则

本文源码:GitHub·点这里 || GitEE·点这里 一.Drools引擎简介 1.基础简介 Drools是一个基于java的规则引擎,开源的,可以将复杂多变的规则从硬编码中解放出来,以规则脚本的形式存放在文件中,使得规则的变更不需要修正代码重启机器就可以立即在线上环境生效.具有易于访问企业策略.易于调整以及易于管理的特点,作为开源业务规则引擎,符合业内标准,速度快.效率高. 2.规则语法 (1).演示drl文件格式 package droolRule ; import org.slf4j.

DDD - 业务规则

1. Business rules are an important part of the business domain. They define data validation and other constraints that need to be applied on domain objects in specific business process scenarios. Business rules typically fall into the following categ

BizTalk动手实验(九)业务规则引擎使用

1 课程简介 通过本课程熟悉业务规则引擎(BRE)的使用(本环境为Windows 2008 32位操作系统环境 + Visual Studio 2010 + BizTalk 210) 2 准备工作 1. 熟悉BizTalk Schema,Orchestration相关开发技术 3 演示 1. 创建BizTalk项目 2. 新建Schema,新建product(string类型),quantity(int类型),price(double类型)个字段,如下图所示 3. 创建Orchestration

基于业务类通讯的Http系统之概述

基于业务类通讯的Http系统,只要由Http Server和Http Client组成.该系列讨论的是基于Delphi的实现方式,其实是可以拓展到其它语言平台上面去的.有兴趣的朋友可以尝试一下.在Delphi中,服务端可以直接使用TIdHttpServer,客户端则直接使用TIdHttp就能够完成通讯的过程.是的,就是这个简单,仅仅这两个控件就构成了一个业务量可以很庞大的业务系统.由于Http都是无状态的,直接由客户端请求服务端,再由服务端给客户端返回相关内容.此时如果不是长连接,会直接断开服务

Ckrule业务规则管理系统简介

1.   简述 Ckrule业务规则管理系统(BRMS)是一个集成的应用程序存储.管理.执行和测试的平台,允许组织定义.部署.监控和维护运营系统使用的各种复杂决策逻辑.Ckrule BRMS 独立于核心应用程序代码提取并管理决策逻辑,以便可以跨整个组织轻松理解.维护和重用这些决策逻辑. Ckrule BRMS由下图4个部分组成: 各部分功能明细如下: 一级功能 二级功能 说明 规则存储 -- 存储库允许规则置于核心应用程序代码之外.它还允许将决策逻辑作为一项企业资产管理,从而支持更轻松地理解和更