立即执行(二) 批量改变

批量改变数据,可以通过立即执行来完成。
例如在部门列表后面增加一个按钮,批量设置该部门用户的性别为男性,角色为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组成的数组按照文本的方式传递给下个页面。

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

友情链接更多精彩内容