公式 - 关联列

上一讲,我们看到了如何定义页面数据,以及使用页面数据,但都是集中在查找的数据表本身的字段,如果要使用数据表关联的其他数据表的字段,怎么办呢?


1.页面数据关联列

在MisShop中,我们可以用很简单的方式实现关联列的查询或者使用。

例如 ds 是客户数据集,ds.联系人 是客户的联系人(用户的引用)。
那么我们看看关联列怎么用。

  • ds.联系人.手机号: 客户联系人的手机号。
  • ds.联系人.角色: 客户联系人的角色。
  • ds.联系人.部门:客户联系人所在的部门 (这里是部门id,但可能显示为部门名称)
  • ds.联系人.部门.名称:客户联系人所在的部门的名称。
  • ds.联系人.部门.主管:客户联系人所在的部门的主管(主管id)。
  • ds.联系人.部门.主管.名称:客户联系人所在的部门的主管。
  • ds.联系人.部门.主管.收hi好:客户联系人所在的部门的主管的手机号。
数据关联列显示效果

2.数据表关联列

查询的时候也是类似,需要把 ds.xx 改为 table.客户.xx , 就不再表示页面数据的关联列,而是数据表的关联列

  • table.客户.联系人.手机号 :客户表中联系人的手机号
  • table.客户.联系人.部门.名称 :客户表中联系人的部门的名称。
  • table.客户.联系人.部门.主管 :客户表中联系人的部门的主管。

我们看看下面这些公式:

  • table.客户.find(table.客户.联系人.手机号=="15010002000"):查找联系人手机号是15010002000的客户。

  • table.客户.find(table.客户.联系人.部门==me.部门):查找联系人和当前用户相同部门的客户。

  • table.客户.find(table.客户.联系人.部门.主管==me.id):查找当前用户负责的部门的客户。

  • table.客户.find(table.客户.联系人.部门.主管==me.id || table.客户.联系人==me.id):查找当前用户负责的部门的客户,以及当前用户的客户。


3.查询关联列

在客户列表页中,查询区域里类似=query.ds.xx的格子表示查询项。当点击 查询 按钮后,会根据查询项的内容进行查询。

例如

  • query.ds.名称 :输入文本,查找名称包含输入文本的客户 。
  • query.ds.名称.eq :输入文本,按照名称完全相等查询
  • query.ds.性别 :选择一个性别,查找性别为选中项的客户。
  • query.ds.联系人 :选择一个用户,查找联系人是该用户的客户。
  • query.ds.生日 :选择一个日期,查找生日在该天的客户。
  • query.ds.生日.大于等于 选择一个日期,查找生日大于等于该天的客户
  • query.ds.生日.小于 选择一个日期,查找生日小于该天的客户

也可以使用关联列

  • query.ds.联系人.名称 按照名称查询,查找联系人名称包含输入文本的客户。
  • query.ds.联系人.名称.eq : 按照名称查询,查找联系人名称和输入文本完全相同的客户。
  • ```query.ds.联系人.部门`` : 选择一个部门,查找联系人的部门为选择的部门的客户。
  • ```query.ds.联系人.部门.名称`` : 输入部门名称,查找联系人的部门名称包含输入文本的客户。
  • ```query.ds.联系人.部门.主管`` : 选择一个用户,查找联系人的部门主管是选中用户的客户。
关联列查询示例

4.一对多关联

例如客户有 引用 用户联系人 字段。
部门表有字段主管,引用到用户。也就是通过 主管 字段,部门表到用户表有一个多对一关联。
多对一关联,可以直接用小圆点在后面接上来,反过来多对一关联怎么表示呢?

例如我们在客户表中,希望看到 客户的联系人管理的所有部门的id的列表。
我们可以在.后面输入OM,然后就能看到该表的一对多的所有关联。

  • ```=ds.联系人.OM_主管^部门```` :部门id 的列表 [1,2]

  • =ds.联系人.OM_主管^部门.名称:部门名称的列表 [业务部,财务部]

  • =ds.联系人.OM_主管^部门.上级部门.名称:上级部门名称的列表 [业务部,业务部]

你可能感兴趣的:(公式 - 关联列)