我在 Openbravo 3.0 框架中有一个要求。我有两个用户,一个是 HR,另一个是员工。他们是用户窗口中的一个复选框,称为 HR USER .. 在我的窗口中,我需要编写一个只读逻辑,以便当 HR 登录时,记录必须是可编辑的,而当员工登录时,记录必须是不可编辑的,我知道如何对普通字段执行此操作,但是我没有得到任何关于用户验证的信息。在员工屏幕中,我将用户 ID 分配给该员工。
请帮忙
我在 Openbravo 3.0 框架中有一个要求。我有两个用户,一个是 HR,另一个是员工。他们是用户窗口中的一个复选框,称为 HR USER .. 在我的窗口中,我需要编写一个只读逻辑,以便当 HR 登录时,记录必须是可编辑的,而当员工登录时,记录必须是不可编辑的,我知道如何对普通字段执行此操作,但是我没有得到任何关于用户验证的信息。在员工屏幕中,我将用户 ID 分配给该员工。
请帮忙
基于登录用户的只读逻辑:
基于登录角色的只读逻辑:
这可以通过三个步骤来实现
首先,我们需要添加一个辅助输入,使当前登录用户的 AD_ROLE_ID 可用于用户窗口。使用系统管理员角色导航到应用程序字典 || 设置 || 辅助输入并新建一条记录,如下图:
这将使#AD_ROLE_ID 会话变量通过@ROLE_ID@ 变量对HR 用户窗口的[user] 选项卡可用。
其次,您需要找出 HR 角色的 AD_ROLE_ID 是什么。使用 PgAdmin 查询 AD_ROLE 表并找出它。一个简单的查询揭示了以下内容:
select ad_role_id, name from ad_role;
ad_role_id | name
----------------------------------+---------------------------
....
1000001 | Admin
SDJFALSDFJKLASJDFKLASDFASLDFJAKLSJ| velmurugan
SDFLAKSDJFLKASJDLFALSDFALDSKFJLAS | Employee
DSKLFJAKLDSJFKLASJFKLADSJFLKAJSDFK| F&B US, Inc. - Admin
....
(38 rows)
HR角色的主键(AD_ROLE_ID)为054A32701D6D4CE6BF4F695DAB23EDB3。在您的情况下,这显然会有所不同。
有了这些信息,我们现在可以找到 HR User 字段定义并将其只读逻辑设置为@ROLE_ID@!'054A32701D6D4CE6BF4F695DAB23EDB3',如下所示: