本文思路主要来源于网友“雪糕家胖胖”的一文章,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
|