aqsj 发表于 2023-12-7 16:31:41

关于人员属性的请教

本帖最后由 aqsj 于 2023-12-7 16:33 编辑

如图所示:我给该人员添加了一个个人属性“基本提成率”,在流程表单中,选择这个人员名字后,想在表单的基本提成率%这个位置获取到该人员的“基本提成率”的值“19”,该如何获取呢,请管理大大指导下,谢谢!!!

论坛管理员 发表于 2023-12-8 10:02:06

在绩效人员的change事件里去获取个人属性,var attributeList = this.org.getPersonAttribute( person, attr );详细用法参考一下api
您这里还有一个难点是在于您使用的数据表格,取值和赋值需要先获取到您当前编辑的行,再获取具体行里的字段,这个在api里的datatable里也是有的

aqsj 发表于 2023-12-8 10:05:20

论坛管理员 发表于 2023-12-8 10:02
在绩效人员的change事件里去获取个人属性,var attributeList = this.org.getPersonAttribute( person, att ...

好的 ,谢谢

论坛管理员 发表于 2023-12-11 09:30:45

:handshake

aqsj 发表于 2023-12-12 08:35:48

本帖最后由 aqsj 于 2023-12-12 09:42 编辑

论坛管理员 发表于 2023-12-11 09:30
我在人员组件的change里面的代码如下:   


var basicCoefficient = this.org.getPersonAttribute( person, "basicCoefficient" );
return this.data.textfield = basicCoefficient;

文本输入框textfield没有获取的数据,是哪里写错了


论坛管理员 发表于 2023-12-12 09:47:09

首先您跟踪一下basicCoefficient这个变量有没有获取到数据
其次这里不需要return,return直接删掉

aqsj 发表于 2023-12-12 10:30:18

论坛管理员 发表于 2023-12-12 09:47
首先您跟踪一下basicCoefficient这个变量有没有获取到数据
其次这里不需要return,return直接删掉 ...

控制台里报错如下

ReferenceError: person is not defined
    at MWF.Macro.scriptSpace.f_0 (<anonymous>:2:53)
    at Object.exec (<anonymous>:1:568)
    at Object.fire (<anonymous>:1:1690)
    at i.extend.$owner (mootools-1.6.0_all.js:1399:1)
    at Object.<anonymous> (<anonymous>:1:9108)
    at Object.<anonymous> (<anonymous>:1:183184)
    at Array.forEach (<anonymous>)
    at Function.forEach (mootools-1.6.0_all.js:235:1)
    at Array.each (mootools-1.6.0_all.js:345:1)
    at Object.fireEvent (<anonymous>:1:183144)

论坛管理员 发表于 2023-12-13 09:26:42

person未定义,您得先拿到person,person就是您当前选择到的人员,this.data.字段标识,获取到的是一个数组,拿到个人的全称

aqsj 发表于 2023-12-13 11:25:38

本帖最后由 aqsj 于 2023-12-15 13:34 编辑

论坛管理员 发表于 2023-12-13 09:26
person未定义,您得先拿到person,person就是您当前选择到的人员,this.data.字段标识,获取到的是一个数组 ...

var line = this.target.parentLine   //获取数据表格的当前行
var person = this.data.datatable.data.zj_performancePersonnel.distinguishedName;   //获取人员全名
var basicCoefficient = this.org.getPersonAttribute( person, "基本提成" );       //获取人员个人属性中的“基本提成”的值
var zj_performancePersonnel = line.getModule("zj_performancePersonnel").getData()//获取数据表中的人员的值
var zj_basicCoefficient = line.getModule("zj_basicCoefficient").getData()//获取数据表中基本提成的值

line.getModule("zj_basicCoefficient").setData(basicCoefficient);//把获取到的人员属性中的“基本提成”的值设置为数据表中的基本提成的值


在数据表中的人员组织组件的change事件中执行以上代码,发现如下问题:
1、从数据表的第2行开始个人属性“基本提成”basicCoefficient的值不会随着人员名称改变而更新
2、数据表首行里的“基本提成”basicCoefficient是可以随着人员名字改变更新的

比如 首行:张三19 ,
               第2行李四 19,李四的个人属性里的“基本提成”其实是16

请问下管理大大该如何解决这个问题

aqsj 发表于 2023-12-15 13:35:02

论坛管理员 发表于 2023-12-13 09:26
person未定义,您得先拿到person,person就是您当前选择到的人员,this.data.字段标识,获取到的是一个数组 ...

var line = this.target.parentLine   //获取数据表格的当前行
var person = this.data.datatable.data.zj_performancePersonnel.distinguishedName;   //获取人员全名
var basicCoefficient = this.org.getPersonAttribute( person, "基本提成" );       //获取人员个人属性中的“基本提成”的值
var zj_performancePersonnel = line.getModule("zj_performancePersonnel").getData()//获取数据表中的人员的值
var zj_basicCoefficient = line.getModule("zj_basicCoefficient").getData()//获取数据表中基本提成的值

line.getModule("zj_basicCoefficient").setData(basicCoefficient);//把获取到的人员属性中的“基本提成”的值设置为数据表中的基本提成的值


在数据表中的人员组织组件的change事件中执行以上代码,发现如下问题:
1、从数据表的第2行开始个人属性“基本提成”basicCoefficient的值不会随着人员名称改变而更新
2、数据表首行里的“基本提成”basicCoefficient是可以随着人员名字改变更新的

比如 首行:张三19 ,
               第2行李四 19,李四的个人属性里的“基本提成”其实是16

请问下管理大大该如何解决这个问题
页: [1]
查看完整版本: 关于人员属性的请教