灵当CRM

 找回密码
 立即注册
查看: 4638|回复: 0

联动功能 | 关联选择其他表单可选数据范围特殊控制实现

[复制链接]

1661

主题

1710

帖子

5万

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
59664
 楼主| 发表于 2020-11-5 11:50:18 | 显示全部楼层 |阅读模式
对于某个单据上的关联选择其他单据的字段(例如:报价单模块单据头“客户名称”或者单据分录“产品名称”字段),如果可选数据范围有特殊的控制需求,即关联选择联动,目前可以在数据库表 ld_relatecreatecondition 中增加控制规则实现。

1. ld_relatecreatecondition 可补充“页面设置->审批要求->其他条件”
1) 页面设置中单据头“关联选择单据”字段,可以设置高级查询条件,但是一些复杂的应用还不能通过界面功能配置实现。
2) 单据分录中选择其他单据不能通过界面功能配置实现。

2. ld_relatecreatecondition 表结构说明
1) id:自动增长
2) modulename:被选模块
3) columnname:被选模块对应的查询字段
4) comparator:当 contenttype = 'sql' 时可以不用填写,表示被选模块按照查询字段(columnname)做查询时查询条件的比较关系
5) content:当 contenttype = 'sql' 时填写SQL语句,当 contenttype = 'db' 时填写查询字段(columnname)对应的查询内容
6) relatecreatemodule:当前模块,即针对哪个模块增加的规则
7) sequence:有多个规则时,规则的加载顺序
8) contenttype:规则的类型,sql/db。db类型适用于简单的字段比较,sql 类型适用于相对复杂的查询。


3. 业务场景一


应用需求:报价单选择客户,不允许选择“公海未分配”和“关闭”状态的客户(页面设置中选择关联单据字段的“审批要求 ->其他条件”不能按照“公海未分配”查询)
应用场景1.jpg

实现方法:在 ld_relatecreatecondition 表中增加控制规则,然后清除缓存、刷新页面即可。
应用场景1 2.png
1) modulename: Accounts   (被选单据)
2) columnname:accountid  
3) relatecreatemodule:Quotes (当前模块)
4) contenttype:sql
5) sequence:1
6) comparator:不需要填写
7) content:特殊控制查询SQL
ld_account.publicaccount<>1 AND IFNULL(ld_account.rating,'')<>'关闭'


4. 业务场景二


应用需求:报价单如果选择了“客户名称”之后,在单据分录选择“产品名称”时,只能选择关联了该“客户”的产品(产品上增加了选择“客户”的字段)。
实现方法:在 ld_relatecreatecondition 表中增加控制规则,然后清除缓存、刷新页面即可。
应用场景2 1.png
1) modulename: Products (被选单据)
2) columnname:productid
3) relatecreatemodule:Quotes (当前模块)
4) contenttype:sql
5) sequence:1
6) comparator:不需要填写
7) content:特殊控制查询SQL
(CASE
        WHEN '{$Quotes.accountid}'>0 THEN ld_products.accountid='{$Quotes.accountid}'
        ELSE 1=0
END)

说明:当前单据上的某个字段的取值方法:{ $模块名.字段列名}

其他联动功能


应用需求:产品价格和产品折扣率根据订货数量和客户的不同而自动变化 http://51mis.com.cn/forum.php?mod=viewthread&tid=816

回复

使用道具 举报

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

本版积分规则

灵当CRM

GMT+8, 2024-4-20 19:19 , Processed in 0.054586 second(s), 20 queries .

Powered by Discuz! X3.4

Copyright © 2008-2022, Tencent Cloud.

沪ICP备08110973号-2

快速回复 返回顶部 返回列表