为什么在 Select 关于 Table SecurityRole 的声明中我只有标签?
Why in Select Statement on Table SecurityRole I have only Label?
我有一个小问题,为什么我在 table SecurityRole 上执行 Query 并加入其他 table,当我从字段 SecurityRole.Name 获取值时,我只有标签(看起来像 @SYS...)和我必须转换。
SecurityRole securityRole;
SecurityUserRole UserRole;
SysUserInfo userInfo;
OMUserRoleOrganization roleOrganization;
OMInternalOrganization internalOrganization;
while select ID from userInfo
order by id asc
outer join UserRole
where UserRole.User == userInfo.Id
outer join securityRole
where securityRole.RecId == UserRole.SecurityRole
outer join roleOrganization
where roleOrganization.User == userInfo.Id
&& roleOrganization.SecurityRole == UserRole.SecurityRole
outer join internalOrganization
where internalOrganization.RecId == roleOrganization.OMInternalOrganization
{
print userInfo.Id, userInfo.Email, SysLabel::labelId2String(securityRole.Name), internalOrganization.Name ? internalOrganization.Name : "All Company";
pause;
}
如果我像这样做一个简单的查询:
while select securityRole
{
info (strfmt("%1", securityRole.Name)); // here I have the really value filed - NOT the label
}
所以,我的问题是:为什么如果我使用 join 对 securityRole 进行查询,我将有一个来自字段名称的标签。
我知道,有一种方法可以从标签 (SysLabel::labelId2String2(. .. )
) 中获取值,但对我来说,最好从 Table 的字段中获取真正的值。
有一种方法可以始终获取真正的字段值(显示在Table中)?
谢谢,
尽情享受吧!
如果您在 select 子句中明确指定字段列表,您将获得角色名称,而不是标签:
outer join Name from securityRole
而不是
outer join securityRole
我有一个小问题,为什么我在 table SecurityRole 上执行 Query 并加入其他 table,当我从字段 SecurityRole.Name 获取值时,我只有标签(看起来像 @SYS...)和我必须转换。
SecurityRole securityRole;
SecurityUserRole UserRole;
SysUserInfo userInfo;
OMUserRoleOrganization roleOrganization;
OMInternalOrganization internalOrganization;
while select ID from userInfo
order by id asc
outer join UserRole
where UserRole.User == userInfo.Id
outer join securityRole
where securityRole.RecId == UserRole.SecurityRole
outer join roleOrganization
where roleOrganization.User == userInfo.Id
&& roleOrganization.SecurityRole == UserRole.SecurityRole
outer join internalOrganization
where internalOrganization.RecId == roleOrganization.OMInternalOrganization
{
print userInfo.Id, userInfo.Email, SysLabel::labelId2String(securityRole.Name), internalOrganization.Name ? internalOrganization.Name : "All Company";
pause;
}
如果我像这样做一个简单的查询:
while select securityRole
{
info (strfmt("%1", securityRole.Name)); // here I have the really value filed - NOT the label
}
所以,我的问题是:为什么如果我使用 join 对 securityRole 进行查询,我将有一个来自字段名称的标签。
我知道,有一种方法可以从标签 (SysLabel::labelId2String2(. .. )
) 中获取值,但对我来说,最好从 Table 的字段中获取真正的值。
有一种方法可以始终获取真正的字段值(显示在Table中)?
谢谢,
尽情享受吧!
如果您在 select 子句中明确指定字段列表,您将获得角色名称,而不是标签:
outer join Name from securityRole
而不是
outer join securityRole