如何配置差旅费报销单中某些到达点首次出现时补贴天数

使用行程式差旅费报销单,补贴分了三项,交通补贴、伙食补贴、在藏补贴,要根据出差类型和出差地判断补贴计算,例如:日常出差就正常领取补贴,到达地为西藏的要取西藏补贴;交通补贴天数和伙食补贴天数正常按照结束日期-开始日期计算,但是西藏的天数(在藏出差天数)计算需要只取第一个到达地为西藏的城市,在藏出差天数=补贴天数+1,其他到达西藏城市行程,在藏出差天数=补贴天数,到达地非西藏在藏出差天数为0,这种情况如何配置?
设置思路
用iif函数做判断是否是西藏的城市(简称“城市条件”),再用aggrMin函数取满足条件的最小行号(简称“最小条件”),最后用iff函数对同时满足以上两个条件的行赋值,不满足城市条件,赋“空值”或0,满足城市条件但不满足最小条件,赋值“补贴天数”字段。
如果取值目标字段在表头,源字段在表体,还可以考虑用groupConcat和iif取到符合西藏的数据,用分号“;”分隔,然后使用left截取第一个分号前的值,实现取西藏第一行值的效果,再转strToNum转数字类型再+1。
函数准备
3.1 groupConcat(list,"expression","splitchar",isDistinct)
名称
根据表达式规则对list列表的数据计算,对计算结果去重或者不去重后用splitchar字符连接合并为字符串返回。
功能
功能:根据expression规则对list列表的数据计算,对计算结果去重或者不去重后用splitchar字符连接合并为字符串返回
例如,传入列表为[a,b,c,d,a],返回a,b,c,d;传入列表[1,2,3],返回1,2,3;传入列表[a,b,null,c],返回a,b;
参数:list-列表
参数:expression-表达式
参数:splitchar-分割符
参数:isDistinct-是否去重,0:否,1:是
返回值:String
参数
list--列表
expression--表达式
splitchar--分隔符
isDistinct--是否去重
返回值
字符串
示例
groupConcat(ordertail,"ordertail.curreny","-",1) --对ordertail子表的curreny进行去重后用-拼接返回。其中ordertail是子表,ordertail.curreny是子表上的一个字段, "-"是拼接时的连接符。
3.2
left(String,num)
名称
获取从左边起的N个字符串
功能
获取从左边起的N个字符串
参数
String--需要被从左开始截取的字符串
num--指定截取长度
返回值
字符串
示例
left(salesOrgId_name,6)--获取销售订单表头上销售组织字段的从左边起的6个字符。
3.3
strToNum(str)
名称
将字符串转换为数值。
功能
将字符串转换为数值。
参数
str--需要被转换为数值的字符串
返回值
数值
示例
strToNum(code)--将销售订单单据编号转换为数值。
3.4
aggrMin(list,"express")
名称
根据表达式规则,计算规则之后的结果的结果集求最小值
功能
功能:根据表达式规则,计算规则之后的结果的结果集求最小值,express为空则计算LIST里面的所有值 参数:list 集合数据,可以是集合的集合
参数
list--集合
express--表达式,为空则表示取集合中所有数据
返回值
集合中的最小值
示例
aggrMin(list,"a*b*c")--将列表中按a*b*c计算之后的结果集求最小值
进入UI模板公式设置
数字化建模>模板管理>UI模板

在左树领域中点击“+”找到“费控服务>报账服务>差旅费报销单”

点击模板行的<设计>,进入差旅费报销单设计界面。

在差旅费报销单显示模板设计界面,选择需要设置公式的字段,例如“出差天数”,找到右侧属性中的<设置公式>按钮,点击进入公式设计器界面。

在公式设计器界面,先选择聚合函数中的aggrMin函数,点击插入。

设置取行最小行号的公式
aggrMin(expensebillbs,'iif(expensebillbs.pk_endaddr.name=="拉萨市"||expensebillbs.pk_endaddr.name=="日喀则市"||expensebillbs.pk_endaddr.name=="昌都市"||expen
如何配置差旅费报销单中某些到达点首次出现时补贴天数
声明:除非特别标注,否则均为本站原创文章,转载时请以链接形式注明文章出处。如若本站内容侵犯了原著者的合法权益,可联系本站删除。



