表联接 IDO 筛选器示例

此示例适用于行授权表单。

您为客户创建了一些 CloudSuite Industrial 登录名,并希望限制客户以使他们只看到自己的订单而看不到其他客户的订单。

首先,您需要创建一个定制 SQL 表,它会将 CloudSuite Industrial 用户登录名连接到客户号。命名表 CustLogin 并包含两列:custuser 和 custnum。在表中填充客户的用户登录名及其相关联的客户号。

字段 设置 备注
IDO SLCos 该筛选器只应用于用户名 SLCos IDO。(您还需要为 SLCoitems IDO 以及查看要包含的客户信息时所需的所有其他 IDO 创建单独的筛选器。)
用户   留为空白以使该筛选器应用于所有用户。您需要使用表格联接功能来决定该筛选器将应用于哪些人。
  留为空白以使该筛选器应用于所有组中的用户。
Property custnum 客户表单上的客户字段绑定到 SLCos.custnum 属性。
(运算符) =  
该值 当前用户连接至 使用该设置指定表格联接。
该表格 CustLogin 这是您的定制表,其中包含用户 ID 和客户号之间的映射。该表格必须位于应用程序数据库中。
其中该列是用户名 custuser 此下拉列表将在您指定该表格之后被填充。
且该列具有值 custnum 这是与 SLCos.custnum 属性进行比较的值。

当单击增加该子句时,所显示的虚拟 SQL 查询如下所示:


(CustNum = ANY (SELECT [cust_num] FROM [CustLogin] WHERE [CustLogin].[username] = dbo.UserNameSp()))

激活并保存了该筛选器之后,当客户用户登录到 CloudSuite Industrial 并尝试(或者通过表单,或者通过对 IDO 的基于 Web 的调用)访问 SLCos IDO 时,该筛选器会在 CustLogin 表中查找客户的用户 ID,如果找到了匹配的 custnum,则会将客户能够查看的信息限制为具有该客户号的那些记录。

相关主题