字段及字段依赖关系
字段
- 每个自定义对象的具体信息都是由字段承载的,因此设置好了自定义对象的基本信息后需要添加自定义字段。
- 一个对象最多可支持500个字段
- 目前支持的字段类型有26种,业务组件3个。每种类型的字段或业务组件适用情况如下所示:
字段类型 | 说明 | 示例 | 备注 |
---|---|---|---|
单行文本 | 适用于填写简短的文字,如"姓名" | 文本(示例) | 字段值最多200个字符 |
多行文本 | 适用于填写大段的文字,如"备注"、"建议" | 这是长文本通常长于10个字(示例) | 字段值最多5000个字符 |
单选 | 适用于在几个选项里选一个,如投票、“男/女” | A级(示例) | 选项值最多3000个 |
多选 | 适用于几个选项里选多个,如投票 | A,B(示例) | 选项值最多3000个 |
数字 | 适用于填写数字,如年龄、订购数量 | 10.01 (示例) | |
金额 | 适用于填写数字,带千分位,比如订单金额 | 66.66(示例) | |
日期 | 适用于选择特定日期:2099-12-31 | 2099-12-31 (示例) | |
时间 | 适用于选择特定时间:16:31 | 16:31 (示例) | |
日期时间 | 适用于选择特定唯一的时间点:2099-12-31 16:31 | 2099-12-31 16:31 (示例) | |
手机 | 用于输入手机号码 | 18888889999 (示例) | |
图片 | 图片类型适用于上传图片,作为更生动的补充信息支持水印拍照,限制图片来源 | 不可展示在列表 | 20,支持资源包 |
附件 | 附件类型适用于上传文件, 可设定最多上传附件的数量 | 不可展示在列表 | 50,支持资源包 |
邮箱 | 用于输入邮件地址 | Cindy@fxiaoke.com (示例) | |
布尔值 | 用于选择"是"或者"否" | 是 (示例) | |
百分数 | 用于输入和展示百分数 | 90% (示例) | |
网址 | 用于输入网址 | www.fxiaoke.com (示例) | |
查找关联 | 用于将当前对象与其他对象(或自身)建立关联关系 | 文本或编码2019000001(示例) | |
主从关系 | 支持定义一种特殊的主从对象关联关系,从属对象的数据权限受主对象权限控制。 | 订单-订单产品。 | 1 |
引用字段 | 支持跨对象的数据取值,比如订单产品中的产品信息展示产品本身自定义信息 | 10 | |
自增编号 | 系统按照规则自动生成编码,不可修改 | 20191219-00001 | |
计算字段 | 用于对指定的字段通过计算公式计算出结果可得出的结果类型:数值、百分数、日期、布尔值等 | 66.66(示例) | 20,支持资源包 |
统计字段 | 支持跨对象的数据汇总场景:类似订单中回款金额字段 | 10,支持资源包 | |
部门 | 用于选择公司内指定部门 | 销售一部(示例) | |
人员 | 用于选择公司内指定部门 | 张三(示例) | |
定位 | 用于创建定位信息,可以在地图中展示位置信息 | 北京市海淀区知春路甲63号卫星大厦(示例) | |
签字 | 支持录入人员的签名信息。 | ||
地区定位组件 | 用于记录业务数据的具体地理位置信息 | ||
签到组件 | 可以使用该字段记录业务执行的时间、地点及时长。 | 1 | |
收款组件 | 可以通过定义该字段完成业务的收款,收款到指定的账户。 | 1 |
字段基本属性:
自定义字段的字段名称和API name:字段名称在本对象内不可重复,API name主要提供给开发人员使用,如无需要,建议不要修改。
默认值:可以为每个字段设置一个默认值,不同字段类型设置的默认值不同。
单行文本、多行文本:可输入一段文字作为字段的默认值,也可输入公式计算得出默认值。
数字、金额字段:可以输入一个计算公式作为默认值。
- 可选择参与计算的字段为当前对象中已定义的数字、金额类型字段。比如:销售订单金额=数量*单价,在新建/编辑界面编辑数量和单价的值时,自动计算销售订单金额。
布尔值:可设置将“是/否”作为默认值;选项值支持修改名称。
手机:支持设置默认值,默认值只能为lookup关系中其他对象中的手机/电话类型字段。
单选、多选:可将某个选项值作为默认值。
提示信息:可以为该字段设置一些提示信息,在新建、编辑、详情页都可以看到。
是否允许重复:若选择‘否’,将会校验数据的唯一性,该字段的值完全一致的将不可新建、编辑、保存、导入。
是否必填:选择‘是’,该字段必填,否则无法保存。
1、主从字段:
字段描述:在1:多的主业务和明细业务的关系中,可以在明细业务对象中添加该字段。添加完成后,可以选择在新建主业务的时候同时批量新建明细。明细业务的数据权限与主业务的权限保持一致。
可以设置新建主业务时,从属业务必填。
一个主对象最多可设置5个从对象。一个对象仅支持设置一个主从字段。
主从关系不能设置多级,例如:C是B的子对象,B对象不可再设置MD字段。
级联操作:作废/恢复/删除主对象时同步作废/恢复/删除从属对象。从属对象的修改记录将同步显示到主对象修改记录中。
主、从数据状态完全同步,【作废/锁定/解锁】主对象时,也同步【作废/锁定/解锁】从对象。
从对象(主从同时新建)不可单独配置审批流,从对象的变更都触发主对象的审批。从对象任何变更都触发主对象的审批,审批流程中可同时显示主&从的变更内容。
从不可单独创建映射规则,可主从同时映射。
在主从新建/编辑时,能够自定义从对象排序, 并且在列表页能够按照排序后的结果展示
注意项:
此功能暂不支持以下对象(以下对象有排序字段可设置排序)
商品、产品、规格、规格值、价目表明细、单位
该版本暂不支持手机端排序,手机端会按照Web端的排序结果显示
模板打印结果按照也会按照排序后的结果展示
主从同时新建类型的从对象条数默认为200条,如需增加从对象个数可购买从对象条数资源包,每个资源包包含100条从对象条数,最多可购买3个资源包。
2、统计字段
字段描述:支持在关联关系和主从关系的主对象中新建,对从属对象本身或某个字段进行统计运算。
支持统计方式
- COUNT(计数):统计数据的个数,比如客户下面的联系人数量。
- SUM(求和):统计某个字段的和,比如销售订单下产品的金额合计。
- MAX(求最大):统计某个字段的最大值,比如客户下最大的商机金额。
- MIN(求最小):统计某个字段的最小值,比如客户下最低的销售费用。
- AVG(求平均):统计某个字段的平均值,比如订单产品的平均折扣。
统计字段类型
- 统计字段支持统计主对象或相关对象上的统计字段和计算字段
支持设置过滤条件:含有过滤条件的统计字段将不出现在对象的新建/编辑界面。
- 被过滤条件引用的字段将不可禁用。
- 过滤条件变更系统需对所有数据重新计算,请勿频繁修改过滤条件。
统计类型为MAX、MIN时,字段汇总增加支持日期、日期时间、时间类型字段。
支持计算规则配置:
计算规则设置,支持四舍五入,向上取值,向下取值
统计结果为空时,支持默认为空(显示--),默认为0
3、计算字段
- 计算型字段的插入字段可支持插入单选、单行文本、多行文本、时间、网址、布尔值、手机、数字、百分数、邮箱、人员、计算字段、统计字段 ,作为变量进行计算。
- 计算字段支持查找关联对象的计算字段,注:查找关联对象的统计字段需统计普通字段
- 计算字段引用查找关联对象的统计字段
- 默认值公式支持查找关联对象的计算字段
- 预设对象的计算字段和默认值设置公式时,支持插入函数。
返回值类型 | 运算符/函数 | 参数 | 功能 | 备注及实例 | |
---|---|---|---|---|---|
通用 | () | 标注运算符优先级 | |||
与输入参数有关 | IF(logical_test, value_if_true, value_if_false) | 参数个数:3参数类型:第一个为布尔类型,第二个和第三个必须为同一种类型 | 判断条件是否为true,如果为true,则返回return_true_value,否则返回return_false_value其中,return_true_value和return_false_value必须为同一类型,返回值类型也为该类型 | 例如:34 = IF(true, 34, 52) | |
CASE(expression, value1, result1, value2, result2,...,else_result) | 参数个数:不定参数类型:result(n)和else_result必须为同一种类型 | 根据满足不同的条件,返回满足条件的值。其中expression的值与value(n)进行比较,value(x)与expression的值一致,则返回对应的result(n),如果都不一致,则返回else_result其中,**result(n)和else_result必须为同一种类型,*,返回值类型也为该类型*** | 例如:33 = CASE(3, 2, 2, 3, 33, 1.3) | ||
NULLVALUE(expression, substitute_expression) | 参数个数:2个参数类型:第一个为布尔类型,第二个参数可以为各种类型 | 判断条件是否为空,如果是,则返回return_value,如果否,返回Null其中,返回值类型也为第二个参数的类型 | 例如:1 = NULLVALUE(Null, 1)Null = NULLVALUE(5, 1) | ||
数值 | +,-,*,/ | 参数个数:2个参数类型:数值,百分比,金额 | 进行数值的加减乘除运算 | 例如:6 = (3+2)*6/5 | |
- | 参数个数:2个参数类型:均为日期,以天为单位 | 运算日期的差值,以天为单位 | 例如:a的值为1982-04-13 b的值为1982-03-2024 = a - b | ||
- | 参数个数:2个参数类型:均为日期时间,以小时为单位 | 运算日期时间的差值,以小时为单位 | 例如:a的值为1982-04-13 17:00:00b的值为1982-04-12 15:00:0026 = a - b | ||
- | 参数个数:2个参数类型:均为时间,以小时为单位 | 运算时间的差值,以小时为单位 | 例如:a的值为17:00:00b的值为15:00:002 = a - b | ||
VALUE(string) | 参数个数:1个参数类型:文本类型 | 将文本形式的数字转化成数字,支持负数和小数,如果转化不成功,返回空 | 例如:-1982.0413 = VALUE('-1982.0413')Null = VALUE('aaa') | ||
MIN(number1,number2) | 参数个数:2个参数类型:均为数值类型 | 返回两个参数中最小的一个 | 例如:4 = MIN(4,13) | ||
MAX(number1,number2) | 参数个数:2个参数类型:均为数值类型 | 返回两个参数中最大的一个 | 例如:13 = MAX(4,13) | ||
MULTIPLE(number1,number2) | 参数个数:2个参数类型:均为数值类型 | 返回数字1乘以数字2的结果 | 例如:52 = MULTIPLE(4,13) | ||
MOD(number1,number2) | 参数个数:2个参数类型:均为数值类型 | 返回数字1被数字2除后的整数部分 | 例如:3 = MOD(13,4) | ||
ADDS(number1,number2) | 参数个数:2个参数类型:均为数值类型 | 返回数字1加上数字2的结果 | 例如:17 = ADDS(13,4) | ||
SUBTRACTS(number1,number2) | 参数个数:2个参数类型:均为数值类型 | 返回数字1减去数字2的结果 | 例如:9 = SUBTRACTS(13,4) | ||
YEAR(date) | 参数个数:1个参数类型:日期,或日期时间类型 | 用于获取参数中的年的数值 | 例如:a = 1982-04-131982 = YEAR(a) | ||
MONTH(date) | 参数个数:1个参数类型:日期,或日期时间类型 | 用于获取参数中的月的数值 | 例如:a = 1982-04-134 = MONTH(a) | ||
DAY(date) | 参数个数:1个参数类型:日期,或日期时间类型 | 用于获取参数中的日的数值 | 例如:a = 1982-04-1313 = DAY(a) | ||
LEN(text) | 参数个数:1个参数类型:文本型 | 返回字符串的长度 | 6=LEN('xiaoke') | ||
百分比 | +,-,*,/ | 参数个数:2个参数类型:数值,百分比,金额 | 进行数值的加减乘除运算,以百分比形式返回 | ||
日期时间类型的中间值 | YEARS(number) | 参数个数:1个参数类型:数值型 | 用于指定日期/日期时间计算中所运算的年的数值 | 得到年份,用来和日期时间,日期进行计算例如:2019-09-09=TODAY()+YEARS(1),其中,TODAY()返回 2018-09-09 | |
MONTHS(number) | 参数个数:1个参数类型:数值型 | 用于指定日期/日期时间计算中所运算的月的数值 | 得到月份,用来和日期时间,日期进行计算例如:MONTHS(2) | ||
DAYS(number) | 参数个数:1个参数类型:数值型 | 用于指定日期/日期时间计算中所运算的日的数值 | 得到日期,用来和日期时间,日期进行计算例如:DAYS(4) | ||
HOURS(number) | 参数个数:1个参数类型:数值型 | 用于指定日期时间/时间计算中所运算的小时的数值 | 得到小时,用来和日期时间,时间进行计算例如:HOURS(4) | ||
MINUTES(number) | 参数个数:1个参数类型:数值型 | 用于指定日期时间/时间计算中所运算的分钟的数值 | 得到分钟,用来和日期时间,时间进行计算例如:MINUTES(4) | ||
日期 | +,- | 参数个数:2个参数类型:第一个为日期类型,第二个为由YEARS、MONTHS、DAYS计算出的时间 | 进行日期运算,得出新的日期值 | 例如:Creatdate+DAYS(4),得到创建时间+4天后的日期 | |
DATE(year,month,day) | 参数个数:3个参数类型:数值 | 通过数值,创建一个日期类型值 | 例如:1982-4-13=DATE(1982,4,13) | ||
DATEVALUE(string) | 参数个数:1个参数类型:字符串 | 通过字符串,创建一个日期类型值 | 例如:1982-4-13=DATEVALUE('1982-04-13') | ||
TODAY() | 无参数 | 返回当前的日期 | |||
DATETIMETODATE(datetime) | 参数个数:1个参数类型:日期时间类型公式 | 返回日期时间字段中的日期 | 例如:1982-4-13=DATEVALUE('1982-04-13 17:00:00') | ||
日期时间 | +,- | 参数个数:2个参数类型:第一个为日期时间类型,第二个为由YEARS、MONTHS、DAYS,HOURS,MINUTES计算出的时间 | 进行日期时间运算,得出新的日期时间值 | 例如:DeadlineTime-DAYS(1),得到截止时间前一天的时间 | |
DATETIMEVALUE(string) | 参数个数:1个参数类型:字符串 | 通过字符串,创建一个日期时间类型值 | 例如:2001-08-24 15:45:25 = DATETIMEVALUE('2001-08-24 15:45:25') | ||
NOW() | 无参数 | 返回当前的日期时间 | |||
时间 | +,- | 参数个数:2个参数类型:第一个为日期时间类型,第二个为由HOURS,MINUTES计算出的时间 | 进行时间运算,得出新的日期时间值 | 例如:submitDailyReport-HOURS(1),得到提交工作日报的前一小时的时间注意,时间类型的值如果经过计算后的结果只在00:00到23:59之间 | |
DATETIMETOTIME(datetime) | 参数个数:1个参数类型:日期时间类型公式 | 返回日期时间字段中的时间 | 例如:17:02:40=DATEVALUE('1982-04-13 17:02:40') | ||
文本 | & | 参数个数:2个参数类型:均为文本类型 | 字符串组合 | 例如:“张三”&“李四” 的值为 张三李四 | |
'' | 参数个数:1个参数类型:字符串 | 插入单行文本常量 | 例如:'单行文本' | ||
'''''' | 参数个数:1个参数类型:字符串 | 插入多行文本常量 | 例如:'''多行文本''' | ||
NUMBERSTRING(number) | 参数个数:1个参数类型:数值,金额 | 将数字转化成中文大写数字展示 | 例如:壹拾玖万捌仟贰佰零肆点壹叁 =NUMBERSTRING(198204.13) | ||
NUMBERSTRINGRMB(number) | 参数个数:1个参数类型:数值,金额 | 将数字转化成中文大写金额展示,最多支持到叫角,分 | 例如:壹拾玖万捌仟贰佰零肆元壹角叁分 =NUMBERSTRINGRMB(198204.13) | ||
布尔 | <,>, >=,<=,≠ | 参数个数:2个参数类型:均为数值型,百分比,金额 | 数值类型进行比较,返回true或false | 例如:true = 1 < 2;false = 2 < 1 | |
AND(boolean1,boolean2,boolean3,...) | 参数个数:多个参数类型:布尔型 | 逻辑与,若多个条件运算结果都为true,则结果为true | 例如:true = AND( 2>1 ,5>3) | ||
OR(boolean1,boolean2,...) | 参数个数:多个参数类型:布尔型 | 逻辑或,若其中一个条件运算结果都为true,则结果为true | 例如:true = OR( 2>1 ,5<3) | ||
NOT(boolean) | 参数个数:1个参数类型:布尔型 | 若条件为true,则结果为false,反之,结果为true | 例如:false = NOT(2>1) | ||
ISNULL(expression) | 参数个数:1个参数类型:不限 | 判断表达式结果是否为空,如果为空,返回true,反之为false | 例如:false = ISNULL(5) | ||
ISNUMBER(string) | 参数个数:1个参数类型:字符串 | 判断expression字符串是否可以转为数字 | 例如:true = ISNUMBER('5') | ||
STARTWITH(string1, string2) | 参数个数:2个参数类型:字符串 | 返回字符串是否以查询字符串开始的结果 | 例如:true = STARTWITH( 'abcdef' , 'ab' ) | ||
ENDWITH(string1, string2) | 参数个数:2个参数类型:字符串 | 返回字符串是否以查询字符串结束的结果 | 例如:true = ENDWITH( 'aecdab' , 'ab' ) | ||
EQUALS(string1, string2) | 参数个数:2个参数类型:字符串 | 返回字符串是否等于查询字符串的结果(跟大小写相关) | 例如:true = EQUALS( 'aecdab' , 'aecdab' ) | ||
CONTAINS(string1, string2) | 参数个数:2个参数类型:字符串 | 返回查询字符串在字符串中的匹配结果(true,false) | 例如:false = CONTAINS( 'abcdef' , 'kl' ) |
4、引用字段
- 支持跨对象的数据取值,在1对多关系中的多方中展示1方的某个字段的信息。
- 引用字段会在新建、编辑、详情页和列表页中展示。
- 和默认值的差异:引用字段会跟随其引用的字段的值的变化而变化,而字段的默认值不是。
5、图片字段
图片字段支持水印拍照,水印支持自定义
默认预置三个变量:当前用户、当前时间、当前地址
水印字段最多不超过5个
水印中已选的字段不可重复添加
6、查找关联字段
支持形成2个对象之间的1对多关系,在多方定义查找关联字段。
支持设置查找关联对象可选择的数据范围:全部、根据条件
设置后
- 可选择关联的数据必须满足条件
- 在查找关联对象的详情页,新建相关对象数据,校验数据是否满足过滤条件,不满足的不可新建相关数据。
支持设置默认值
比如订单关联客户,回款关联订单和客户(订单、客户、回款存在三角关系),当希望在新建回款时,选择了订单,把订单的客户名称带到回款的客户名称字段,就可以在回款下客户名称字段设置默认值,取值为订单下的客户名称字段即可。
支持【基于自定义函数】设置范围
- 一个设置条件只能添加一个自定义函数,函数的返回值必须是个数据集合。
- 函数返回值条数不得超过500条,若超出则返回前500条数据。
查找关联字段支持按照主对象的查找关联字段作为条件设置过滤条件
- 场景一:客户下订单后,厂家发货时,发货明细只能在相应要发货的订单下选产品,即:发货单明细中添加订单产品支持按相应订单进行筛选
- 场景二:报价单转订单,订单产品添加产品需在报价单明细中产品范围内添加
7、签到组件
- 新增签到组件后,可以执行签到/签退。
- 可以根据需求设置是否启用签退。
- 记录业务进行的地点、时间、时长。
8、收款组件
- 自定义对象中加入收款组件,使对象直接具备收款到企业钱包的功能。
系统标准字段
- 系统标准字段:每个对象新建以后都有“创建时间”、“创建人”、“最后修改时间”、“最后修改人”、“负责人”、“负责人所在部门”6个系统标准字段,这些字段不可编辑。
设置字段依赖关系
- 当需要对两个字段产生依赖关系的时候,如设置个性化的行业分类,可以使用字段依赖关系。
- 父字段只能是单选字段,子字段可以是单选字段和多选字段。
- 最多可以设置10级依赖关系
- 首先建好一级行业、二级行业的所有可选字段,然后在字段依赖关系中建立两个字段的关联关系
创建自定义对象关联关系
创建两个对象的关联关系
- 创建该自定义对象与其他对象或者自身的关联关系是通过添加字段中的查找关联字段实现。
- 例如:创建客户与一个自定义对象工单的一对多关系。
- 先在工单对象中添加查找关联类型的字段;
- 选择查找关联对象为“客户”。
- 设置其他相关内容后便建立了客户与工单的一对多关系。
两个对象的展示形态
新建一条工单时,该条工单可以关联客户。
在客户中这条工单的展示。根据设置的关联字段是否必填,在客户列表中展示的操作是有差异的。
假如该字段必填, 则只能“新建”。
假如该字段设置为“非必填”,则可以进行的操作有新建、关联、解除关联。