主表多个复选字段转化为子表字段(优化版)

楼主
我是社区第495831位番薯,欢迎点我头像关注我哦~
本文思路主要来源于网友“雪糕家胖胖”的一文章,https://bbs.fanruan.com/thread-133265-1-1.html  然后研究后进一步优化而来。

原文中是对两个复选框的内容选项结合然后显示在子表内,那么如果三个复选框结合呢??
例:房地产商房源配置时,房源号需要根据选择了几个单元号、楼层数、门号,来逐行生成每个房子的房源号。这时需要根据三个复选框的内容进行结合显示到子表单。

    设置三个隐藏字段。:
  1、在主表中设 FZ总房数 默认值为公式:COUNT(单元)*COUNT(楼层)*COUNT(门号)  


     
  2、在子表中设   楼房明细.序号(用于自动生成子表单总行数。具体方法详见帮助专题-https://hc.jiandaoyun.com/blog/12020)   
     
  3、在子表中设  楼房明细.FZ序号:用于在明细表中写入楼层号时使用   
           公式:IF(MOD(明细.序号,COUNT(楼层)*COUNT(门号))==0,COUNT(楼层)*COUNT(门号),MOD(明细.序号,COUNT(楼层)*COUNT(门号)))

   



    子表中其它各个字段公式:
  1、楼房明细.房源编号:CONCATENATE(IFS(类别=="住宅","ZZ",类别=="商业","SY"),明细.楼号,明细.单元,明细.楼层,明细.门号)

   2、楼房明细.楼号:由于每次表单只填一栋楼,所以楼号直接等于主表[楼号]即可

    3、楼房明细.单元:SPLIT(TEXT(单元),",")[IF(AND(INT(明细.序号/(COUNT(门号)*COUNT(楼层)))==明细.序号/(COUNT(门号)*COUNT(楼层)),明细.序号!=1),明细.序号/(COUNT(门号)*COUNT(楼层)),IF(AND(明细.序号==1,INT(明细.序号/(COUNT(门号)*COUNT(楼层)))==明细.序号/(COUNT(门号)*COUNT(楼层))),1,CEILING(SUM(明细.序号,1)/(COUNT(门号)*COUNT(楼层)),1)))-1]

    4、楼房明细.楼层:SPLIT(TEXT(楼层),",")[IF(AND(INT(明细.FZ序号/COUNT(门号))==明细.FZ序号/COUNT(门号),明细.FZ序号!=1),明细.FZ序号/COUNT(门号),IF(AND(明细.FZ序号==1,INT(明细.FZ序号/COUNT(门号))==明细.FZ序号/COUNT(门号)),1,CEILING(SUM(明细.FZ序号,1)/COUNT(门号),1)))-1]

    5、楼房明细.门号:SPLIT(TEXT(门号),",")[IF(MOD(明细.序号,COUNT(门号))==0,COUNT(门号),MOD(明细.序号,COUNT(门号)))-1]

   6、楼房明细.房型、楼房明细.类别   公式直接等于主表 房型或类别字段及可   


   



  

编辑于 2020-11-11 13:52  
分享扩散:
参与人数 +2 F豆 +120 理由
杨卫红 + 100 太棒了,给你32个赞,么么哒
云团 + 20 太棒了,给你32个赞,么么哒

查看全部评分

来自 2#
发表于 2020-11-17 10:01:05
板凳
发表于 2020-11-14 22:30:16
地板
发表于 2021-2-1 13:01:28
能否通过此设计,在原有数据中修改。
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

3回帖数 3关注人数 8821浏览人数
最后回复于:2021-2-1 13:01

返回顶部 返回列表