1对多,多选关系数据填报实现

楼主
我是社区第597709位番薯,欢迎点我头像关注我哦~

参考js删除多行 https://help.fanruan.com/finereport/doc-view-3713.html 

 

1对多,多选关系填报实现:

DB结构要求:‘客户产品对照表’在数据库表存储“客户:产品”结构为1:N;即1个客户多个产品,在db表存多行。

填报页面要求:勾选后将勾选的选项写入数据库,未勾选的选项如果已经存在,则需要删除。勾选多项,则在db中写入多行。

实现步骤:

报表展示时,通过控件限制只展示和操作单个客户的信息。

同时展示多个客户的话,第4步的删除提交会删除页面展示的全部客户。

如果将第4步中的删除也添加true限制条件,是可以只删除单个客户,但是当填报用户全部不勾选时,就没法删除数据表原有信息了。(这与删除提交的实现方式有关 ,页面选择的信息会删除,未选的反而会留下 https://help.fanruan.com/finereport/doc-view-186.html

1)通过全关联,将每个客户都与所有产品关联,得到一个完整的1对多关系表(无论对应的产品是否已存在,不存在的产品也需要展示出来,便于勾选)。

2)将1的结果集再与已有的客户产品对照表关联,得到哪些产品属于已选择。

3)每行都对应一个勾选框,勾选后单元格值即为true。

     ①默认不勾选

     ② 将2)中已勾选的行,通过条件属性将新值设为true

4)将勾选true的行对应的客户先从db表删除【删除提交】

     ① 提交类型:删除提交

     ② 字段:客户

     ③ 主键:客户

     此配置,能实现无论用户是否全部取消勾选,还是更改勾选,都会先把此客户所有行都从db表删除。

5)在将勾选true的行的客户、产品2个字段只能提交写入数据库表【智能提交】

     ① 提交类型:只能提交

     ② 字段:客户、产品

     ③ 主键:客户、产品

     ④ 提交条件:勾选单元格=true

        第5)步骤中

        一定要把客户、产品2个字段都勾选为主键!!!否则每个客户只能写入1条数据!!

        一定不要勾选‘未修改不更新’

 

【失败尝试】通过下拉框多选,返回数组的形式。可以多行写入,但刷新后,未能展示已选择选项。

分享扩散:

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

0回帖数 1关注人数 1863浏览人数
最后回复于:2022-6-15 13:29

返回顶部 返回列表