请选择 进入手机版 | 继续访问电脑版
 找回密码
 立即注册

QQ登录

只需一步,快速开始

LukeLiu
超级版主   /  发表于:2019-11-8 17:56  /   查看:133  /  回复:2
在活字格经常会用到主子表,主子表一般是主表一行数据对应子表多行的数据,简称为一对多关系。
举个例子,公司表为主表,公司人员表示子表:




为主表速生成页面,有列表页和详情页,查看一项纪录的详情页,可以看到主表当前行关联的所有子表数据:





图中的详情页,是通过表格展示所有的子表数据。

现在想只使用一个单元格展示子表中一个字段的所有数据,该如何实现呢?

我整理出了两个方法:
1. 页面使用TEXTJOIN()公式的方法
2. 创捷视图的方法

面使用TEXTJOIN()公式的方法:
在主表的详情页面,隐藏区域里设置子表关联,这样打开主表详情页的时候,可以通过表格获取所有的子表数据,然后在详情页面设置一个TEXTJOIN()公式,连接子表的某一个字段,子表的这列所有数据被TEXTJOIN()公式连在了一起,效果如图。



创捷视图的方法:
参考这个教程帖子里提到的group_concat,这里:一看就会,超有用活字格技能:五十四,SQLite中的聚合函数https://gcdn.grapecity.com.cn/forum.php?mod=viewthread&tid=54390&fromuid=55752(出处: 葡萄城产品技术社区)
通过创建一个视图,让主表左联子表,通过group_concat拼接一条主表记录对应的多条子表记录,记为一个新的字段。

  1. with cto as
  2. (
  3. SELECT 公司表.id as ID,名称,地址,人员名称 FROM "公司表"
  4. left join "公司人员表" on 公司表.id= 公司表_ID
  5. )

  6. SELECT ID,名称,地址, group_concat(人员名称) as 人员 FROM cto group by 名称 ;
复制代码


视图效果:

之后,在页面上直接引用视图的这个字段就可以了:











本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有帐号?立即注册

x

2 个回复

倒序浏览
wengMQ
金牌服务用户   /  发表于:6 天前
沙发
回复 使用道具 举报
Simon.hu
超级版主   /  发表于:6 天前
板凳
好好学习天天向上
请点击评分,对我的服务做出评价!5分为非常满意!

葡萄城金牌服务团队
官方网站:https://www.grapecity.com.cn/
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 立即注册