There are FullAddress and FullName properties in the Address and Person business classes that are supplied with the Business Class Library. These properties are calculable. The FullAddress property represents a string formed by the concatenation of the Country.Name, StateProvince, City, Street and ZipPostal property values. The FullName property is formed by the concatenation of the FirstName, MiddleName and LastName property values. The FullAddress and FullName properties are implemented so that you can change the order in which the items are concatenated. This topic details how to change this order. You can use this technique when implementing analogous business class properties.

地址和人员业务类中随商务舱库一起提供"全地址"和"全名"属性。这些属性是可计算的。FullAddress 属性表示由Country.Name、省、市、街和 ZipPostal 属性值的串联形成的字符串。FullName 属性由"名字"、中间名和姓氏属性值的串联形成。实现"全地址"和"全名"属性,以便可以更改项的串联顺序。本主题详细介绍了如何更改此顺序。在实现类似的 Business 类属性时,可以使用此技术。

The following images demonstrate how the FullAddress and FullName properties are calculated.

下图演示了如何计算全地址和全名属性。

To format FullAddress and FullName properties, the ObjectFormatter.Format method of the helper ObjectFormatter class is used. In this method, the format, according to which the property value is generated, is taken as a parameter. The format passed for the FullAddress property is specified by the Address class' FullAddressFormat property. The format that is passed for the FullName property is specified by the Person class' FullNameFormat property. Note that FullAddress and FullName properties are non-persistent calculated properties. As such, they require persistent aliases to be created for them to support sorting in Server mode (see CollectionSourceBase.DataAccessMode). For this purpose, there are additional FullNamePersistentAlias and FullAddressPersistentAlias properties. These properties are used to create persistent aliases.

要设置全地址和全名属性的格式,使用帮助器对象Formatter类的"对象Formatter.format"方法。在此方法中,生成属性值的格式被视为参数。为 FullAddress 属性传递的格式由地址类的"完全地址格式"属性指定。为 FullName 属性传递的格式由 Person 类的 FullNameFormat 属性指定。请注意,全地址和全名属性是非持久计算属性。因此,它们需要为它们创建持久别名以支持在服务器模式下排序(请参阅 CollectionSourceBase.DataAccessMode)。为此,还有其他全名持久别名和全地址持久别名属性。这些属性用于创建持久别名。

By default, the FullAddressFormat property is set to the Address class' defaultFullAddressFormat constant, which is the following: "{Country.Name}; {StateProvince}; {City}; {Street}; {ZipPostal}". The FullAddressFormatPersistentAlias property is set to the Address class' defaultFullAddressPersistentAlias constant, which is the following: "concat(Country.Name, StateProvince, City, Street, ZipPostal)". To change these property values, use the SetFullAddressFormat method (SetFullNameFormat for the Person class). These methods are static, so you can call them any place in your solution. For instance, you can specify the required format in the configuration file and read its value in a module's constructor. In addition, override the module's ModuleBase.CustomizeTypesInfo method and process the CalculatedPersistentAlias attribute via the static CalculatedPersistentAliasHelper.CustomizeTypesInfo method.

默认情况下,FullAddressFormat 属性设置为地址类的默认 FullAddressFormat 常量,如下所示:[Country.Name];[Country.Name];[Country.Name];[Country.Name];[Country.Name];[Country.Name];[Country.Name];[Country.Name];[Country.Name];[Country.Name];[Country.Name];[Country.Name];[Country.Name];[Country.Name];[Country.Name];[Country.Name];[Country.Name];[Country.Name];[Country.Name];[州省];[城市];[街道];[邮递]。""完全地址格式持久别名"属性设置为地址类的默认"完全地址持久别名"常数,如下所示:"concat(国家名称、省、市、街、Zippostal)"。要更改这些属性值,请使用 SetFullAddressFormat 方法(为 Person 类设置全名称格式)。这些方法是静态的,因此您可以调用它们在解决方案中的任何位置。例如,您可以在配置文件中指定所需的格式,并在模块的构造函数中读取其值。此外,重写模块的模块Base.自定义类型信息方法,并通过静态计算持久别名帮助器处理计算持久别名属性。

<configuration>
<appSettings>
<add key="FullAddressFormat" value="{Country.Name} {City} {Street}" />
<add key="FullAddressFormatPersistentAlias" value="concat(Country.Name, City, Street)" />
<!-- ... -->
</appSettings>
</configuration>
using DevExpress.Persistent.BaseImpl;
using System.Configuration;
//...
public sealed partial class MainDemoModule : ModuleBase {
static MainDemoModule() {
Address.SetFullAddressFormat(ConfigurationManager.AppSettings["FullAddressFormat"],
ConfigurationManager.AppSettings["FullAddressFormatPersistentAlias"]);
}
public override void CustomizeTypesInfo(ITypesInfo typesInfo) {
base.CustomizeTypesInfo(typesInfo);
CalculatedPersistentAliasHelper.CustomizeTypesInfo(typesInfo);
}
//...
}

After formatting a FullAddress property using the specified format, the property names that are enclosed in curly brackets will be replaced with the current object's property values (see the image above).

使用指定格式格式化 FullAddress 属性后,用大括号括起来的属性名称将替换为当前对象的属性值(参见上图)。

Analogous to the Address class' FullAddressFormat property, the Person class' FullNameFormat property is set to the defaultFullNameFormat constant, which is the following: "{FirstName} {MiddleName} {LastName}". The FullNamePersistentAlias property is set to the defaultFullNamePersistentAlias constant, which is the following: "concat(FirstName, MiddleName, LastName)". As the SetFullNameFormat method is static, you are free to call it where required. For instance, you can use the value specified in the configuration file as demonstrated in the code above.

与"地址类的 FullAddressFormat"属性类似,Person 类的 FullNameFormat 属性设置为默认的 FullNameFormat 常量,如下所示:"{NameName}{}}}{}}[姓氏][姓氏]"。"FullName 持久别名"属性设置为默认的"完全名称持久别名"常量,如下所示:"concat(名字、中间名、姓氏)"。由于 SetFullNameFormat 方法是静态的,因此您可以根据需要调用它。例如,可以使用配置文件中指定的值,如上面的代码所示。

Note 注意
In the Main Demo, you can set a custom format for the FullName property in the common module's constructor, as described above.
在主演示中,您可以为公共模块的构造函数中的 FullName 属性设置自定义格式,如上所述。

When implementing business class properties whose values require formatting, introduce static properties like FullAddressFormat and FullNameFormat, so that anyone using your business class can modify the formatting. The following code can be used as an example:

实现其值需要格式化的业务部门属性时,请引入静态属性,如 FullAddressFormat 和 FullNameFormat,以便使用业务类的任何人都可以修改格式。以下代码可用作示例:

public class SampleAddress : BaseObject {
private const string defaultFullAddressFormat = "{Country.Name}; {StateProvince};" +
" {City}; {Street}; {ZipPostal}";
private static string fullAddressFormat = defaultFullAddressFormat;
public static string FullAddressFormat {
get { return fullAddressFormat; }
set {
fullAddressFormat = value;
if(string.IsNullOrEmpty(fullAddressFormat)) {
fullAddressFormat = defaultFullAddressFormat;
}
}
}
public string FullAddress {
get {
return ObjectFormatter.Format(fullAddressFormat, this,
EmptyEntriesMode.RemoveDelimiterWhenEntryIsEmpty );
}
}
}

How to: Change the Format Used for the FullAddress and FullName Properties 如何:更改用于FullAddress和FullName属性的格式的更多相关文章

  1. [No0000149]ReSharper操作指南6/16-编码协助之其他协助

    语法高亮 ReSharper扩展了默认Visual Studio的符号高亮显示.此外,它还会使用可配置的颜色突出显示字段,局部变量,类型和其他标识符.例如,ReSharper语法突出显示允许您轻松区分 ...

  2. PersistentAliasAttribute & CalculatedAttribute & CalculatedPersistentAliasAttribute

    一,PersistentAliasAttribute-[XPO提供] Indicates that a property is not persistent and its value is calc ...

  3. RHCSA阶段笔记

    命令终端字段含义介绍 [root@localhost ~]# 解释: root:当前登录系统用户名(root超级管理员) localhost :当前主机名 :当前用户所在目录( 为家目录) ,root ...

  4. 2、粘包现象(struct模块)

    昨天我们所做的套接字是有漏洞的,它会出现粘包现象,没有发现这个问题的我们今天会进行演示.今天也会稍微讲解一下基于udp的套接字. 一.基于udp的套接字 udp是无链接的,先启动哪一端都不会报错 ud ...

  5. 29、粘包现象(struct模块)

    昨天我们所做的套接字是有漏洞的,它会出现粘包现象,没有发现这个问题的我们今天会进行演示.今天也会稍微讲解一下基于udp的套接字. 本篇导航: 基于udp的套接字 粘包现象 粘包 解决粘包方法 stru ...

  6. MFC学习小结

    2019/1/13 视频来源 一.   MFC框架中一些重要的函数 1. InitInstance函数 应用程序类的一个虚函数,MFC应用程序的入口.初始化的作用. 2. PreCreateWindo ...

  7. 2019/12/10学习内容摘要(Linux文件和目录管理)

    1.绝对路径和相对路径 *绝对路径:路径的写法一定是由根目录 / 写起的,例如 /usr/local/mysql *相对路径:路径的写法不是由根目录 / 写起的,例如 首先用户进入到 /home,然后 ...

  8. linux-RHEL7.0 —— 《Linux就该这么学》阅读笔记

    目录 linux-RHEL7.0 安装部署 修改root密码 RPM(红帽软件包管理器) YUM(软件仓库) Systemd初始化进程 总结 linux命令 帮助命令 man 系统工作命令 echo ...

  9. Commit message 和 Change log 编写指南

    来源:http://www.ruanyifeng.com/blog/2016/01/commit_message_change_log.html Git 每次提交代码,都要写 Commit messa ...

随机推荐

  1. 带着canvas去流浪系列之九 粒子动画

    [摘要] canvas实现粒子动画 示例代码托管在:http://www.github.com/dashnowords/blogs 一. 粒子特效 粒子特效一般指密集点阵效果,它并不是canvas独有 ...

  2. 转:SQL SERVER 2014 安装图解(含 SQL SERVER 2014 安装程序共享)

    开篇介绍 2015年1月1日,新的一年开始之际,本来应该好好做点有意义的事情来跨个年的.结果,老习惯 - 睡觉之前一定要折腾一下电脑,说干就干,给新到的 DELL 电脑装虚机,下载 SQL SERVE ...

  3. KETTLE多表关联的同步一张表的两种实现方式

    以下操作都在5.0.1版本下进行开发,其余版本可以进行自动比对 在平时工作当中,会遇到这种情况,而且很常见.比如:读取对方的多个视图或者表,写入目标库的一张表中,就涉及到多表的同步. 多表同步可以有以 ...

  4. 让微信推送Jenkins构建消息

    Jenkins作为开发必备之神器,各家大小公司都在使用.Jenkins自身内置了基于邮件推送构建结果的功能.但是随着移动互联网的发展,邮件这玩意已经越来越少使用了,是否有一种办法能把jenkins构建 ...

  5. 详解TCP连接的“三次握手”与“四次挥手”(上)

    一.TCP connection 客户端与服务器之间数据的发送和返回的过程当中需要创建一个叫TCP connection的东西: 由于TCP不存在连接的概念,只存在请求和响应,请求和响应都是数据包,它 ...

  6. Apache + WordPress 从 0 搭建

    引言 又到周末了,周末小编一般不更新系列文章,原因嘛是因为要攒稿子,年底工作比较忙,不攒点稿子是要断更的:( 所以周末一般聊点简单轻松加愉快的东西,小编现在的博客站是由 HEXO 进行搭建的,最近随着 ...

  7. Python之Flask项目开发【入门必学】

    前言 本文的文字及图片来源于网络,仅供学习.交流使用,不具有任何商业用途,版权归原作者所有,如有问题请及时联系我们以作处理.作者:藤藤菜丶 Flask 安装Flask模块 创建一个Flask项目 运行 ...

  8. 智和网管平台国产化AIOps智能运维 建立自主可控网络安全体系

    没有网络安全就没有国家安全,中国作为一个崛起中的大国,网络安全至关重要.新一届中央高度重视信息安全自主可控的发展,Gartner研究报告表明,2019年中国三分之二的数据中心.IT基础设施支出流向中国 ...

  9. FPGA+VGA+OV7725 视频图像FPGA开发板 图像采集板CP511A使用

     

  10. Java多态之动态绑定

    目录 Java多态之动态绑定 引用变量的类型 编译时类型 运行时类型 方法绑定 静态绑定 动态绑定 方法表 Java多态之动态绑定 上篇回顾:多态是面向对象程序设计非常重要的特性,它让程序拥有 更好的 ...