由于缺少对“用户”数据类型结构的明确定义,在设计InfoPath表达式时往往会耗用大量时间尝试,而且不一定能得到期望结果。下面对用户数据类型的结构进行详细解析。

>> 什么是用户数据类型

用户数据类型即保存用户信息的数据类型。直观上,在InfoPaht“域”列表中它前面是两个小人的图片;点击“域属性”,其数据类型为“UserType”;用户数据类型缺省对应的控件类型为“个人/组选择器”。

>> 数据结构定义

为方便表述,下面用“UserType”表述用户数据类型对应的类名。借用面向对象语言的表达方式,其成员及属性结构如下:

UserType.Person
UserType.Person.DisplayName
UserType.Person.AccountId
UserType.Person.AccountType

>> 类及成员字符串取值

在InfoPath表达式中对域值做比较时,一般会首先将其转换为字符串,下面以一个示例说明其字符串化后的取值:

UserType                        — 诸葛亮SHUGUO\liang.zhugeUser
UserType.Person — 诸葛亮SHUGUO\liang.zhugeUser
UserType.Person.DisplayName — 诸葛亮
UserType.Person.AccountId — SHUGUO\liang.zhuge
UserType.Person.AccountType — User

>> 如何应用

对于用户数据类型的一种应用场景是比较当前用户是否等于某个用户数据类型的字段值。获取当前用户对应的方法是:userName(),但其返回值形如“liang.zhuge”。所以,若直接拿用户数据类型的域与userName比较,一定无法达到预期结果。所以,对于这种情况,可创建一个规则,并设计如下条件来实现:

AccountId  包含 userName()

InfoPath中用户数据类型结构解析的更多相关文章

  1. 解析Infopath生成的XSN结构

    解析Infopath生成的XSN结构 解压XSN文件,得到下图文件 Infopath包括xsl.xsd.xsf.xml文件格式 Manifest.xsf是infopath的主要集合文件,包含对其他各个 ...

  2. 批量替换数据库中所有用户数据表中字段数据类型为char和varchar到nvarchar的脚本

    解决问题:字段类型为char的总是占用指定字节长度(末尾好多空白符号),varchar数据类型长度一个汉字占2个字节,内容存储为中文的字段个人建议全部使用nvarchar. 操作说明:打开SQL Se ...

  3. java中的数据类型,运算符,字符串,输入输出,控制流,大数值,数组; 《java核心技术卷i》 第三章:java基本程序结构;

    <java核心技术卷i> 第三章:java基本程序结构: 每次看书,去总结的时候,总会发现一些新的东西,这次对于java的数组有了更深的了解: java中的数据类型,运算符,字符串,输入输 ...

  4. Dalvik虚拟机中DexClassLookup结构解析

    http://blog.csdn.net/roland_sun/article/details/46877563 原文如下: 在Android系统中,所有的类定义以及具体的代码都是包含在DEX文件中的 ...

  5. php总结2——php中的变量、数据类型及转换、运算符、流程控制中的分支结构

    2.1  php中的变量: 定义变量:$变量名称=值: 变量名称:$开头    $之后的第一位必须是字母    $第二位之后可以是字母.数字或者是下划线.习惯上变量名称有实际含义,第二个单词后首字母大 ...

  6. 解析Python编程中的包结构

    解析Python编程中的包结构 假设你想设计一个模块集(也就是一个"包")来统一处理声音文件和声音数据.通常由它们的扩展有不同的声音格式,例如:WAV,AIFF,AU),所以你可能 ...

  7. iOS沙盒目录结构解析

    iOS沙盒目录结构解析 原文地址:http://blog.csdn.net/wzzvictory/article/details/18269713     出于安全考虑,iOS系统的沙盒机制规定每个应 ...

  8. .NET Core中的认证管理解析

    .NET Core中的认证管理解析 0x00 问题来源 在新建.NET Core的Web项目时选择“使用个人用户账户”就可以创建一个带有用户和权限管理的项目,已经准备好了用户注册.登录等很多页面,也可 ...

  9. JavaScript 中的数据类型

    Javascript中的数据类型有以下几种情况: 基本类型:string,number,boolean 特殊类型:undefined,null 引用类型:Object,Function,Date,Ar ...

随机推荐

  1. Nginx下css的链接问题

    放在 Nginx 下的网页代码,在链接外部 css 文件时,可能出现没有链接成功的问题.需要在 nginx.conf 里的 http 下添加一行. http { include mime.types;

  2. eclipse建包出现多层包

  3. 测试cookie的读写

    js文件使用utf8编码 <p><img id="img" onclick="javascript:var s=document.createEleme ...

  4. ion-header-bar

    ion-header-bar 指令声明一个标题栏元素,标题栏总是位于屏幕顶部 它有两个同级的可选属性 align-title:设置标题文字的对齐方式.允许值:left|right|center no- ...

  5. FZU 1759 欧拉函数 降幂公式

    Description   Given A,B,C, You should quickly calculate the result of A^B mod C. (1<=A,C<=1000 ...

  6. Adobe Flash builder 4的序列号

    下载flex 4 之后,需要输入注册码(如果购买了正版就要选择第二个的单选框,无需输入注册码了) 1424-4258-9368-0713-8534-5128 1424-4806-8312-7960-9 ...

  7. Java Socket长连接示例代码

    SocketListenerPusher.java代码如下: import java.io.IOException; import java.net.InetSocketAddress; import ...

  8. 当窗体获得焦点时禁用max快捷键

    最近一段时间一直在MXS里用dotnet写界面...写的各种头晕眼花... 过程中遇到了 TextBox 控件输入时 与max快捷键冲突的问题. 解决办法是 用 MaxTextBox 控件替换,今天请 ...

  9. python学习之python开发环境搭建

    Python简介 Python是一种面向对象.解释型计算机程序设计语言.Python语法简洁而清晰,具有丰富和强大的类库等等众多的特性,这是来自百度百科的介绍,在百度百科还能看到它的更详细的介绍信息, ...

  10. 印刷电路板(PCB)的材料

    以玻璃为基础材料的板材可以在高达150℃到250℃的温度下使用.可选的介质材料有: FR4,介电常数ε0为4.6 环氧材料,介电常数ε0为3.9: 聚酰亚胺,介电常数ε0为4.5. 另外,以聚四氟乙烯 ...