批量改变数据,可以通过立即执行来完成。
例如在部门列表后面增加一个按钮,批量设置该部门用户的性别为男性,角色为admin
又如我们希望在用户列表中,通过多选框,选择若干用户后,类似批量删除一样实现可选的批量修改。
1.制作页面筛选出该部门的用户
添加一个 用户 的 页面,不选择任何模板。
设置参数 bumen,接收传过来的部门id。
设置数据集ds的筛选条件 table.用户.部门==@bumen
这样ds就只有该部门的用户了。
2.设置要修改的数据
把数据集ds设置为 需要保存。
- id格
A1格写表达式 :=ds.select(ds.id)
必写,按照MisShop的规则,之后这行数据都会按照id来查找,如果有相同id的数据,会自动更新,否则插入一条新数据。
- 性别格
B1格写表达式:=Dict.性别.男
,同时设置 保存至 属性为ds.性别
表示把性别字段,设置为男性(也就是字典值1)
- 部门格
C1格写表达式:=table.角色.findOne(table.角色.名称=="admin").id
,同时设置 保存至 属性为ds.角色
值表达式表示从角色表中查找名称为admin的角色的记录,获得这条记录的id。然后保存到 ds对一个的用户表的角色字段里。
最后找一个格子放保存按钮。注意别放分页按钮,否则一次就只会修改10条。
3.用链接和立即执行测试。
在部门列表的 删除按钮后,
增加一个链接,指向刚才做的 批量修改页面,设置参数 bumen 为 ds.id(部门列表页里ds是部门的数据集)。
增加一个立即执行控件,指向刚才做的 批量修改页面,设置参数 bumen 为 ds.id(部门列表页里ds是部门的数据集)。
我们运行后,点击 业务部后面的链接,再点击保存,发现业务部所有用户被修改为希望的样子。
点击财务部后的立即执行按钮,页面会刷新一下,可以看到财务部的所有用户被修改为希望的样子。
4.可选的批量修改。
首先制作页面,根据传递过来的id数组字符串,筛选出对应的用户。
增加参数ids,数据类型是文本。
创建用户类型的数据集ds,设置筛选条件为table.用户.id in List.parse(@ids)
第二步设置修改的格子,和上个例子一样。
第三步,在主页面用户列表页的批量删除按钮后面,增加一个立即执行控件,指向刚才做的页面,同时传递参数 ids 为 checked.toJson() 将 选中的用户的id组成的数组按照文本的方式传递给下个页面。
网友评论