2017-03-21 8 views
0

は、私は私がフィールドSecurityRole.Nameから値を取得するとき、私は唯一のラベル(@SYSのように見えるがあり、私はテーブルのSecurityRoleクエリをすれば、他のテーブルを結合すると、なぜ少し疑問を持っています。 ..)と私は変換する必要があります。Table SecurityRoleのSelectステートメントでなぜ私はラベルしか持っていないのですか?

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 
} 

を、私の質問はこれです:私はとのSecurityRoleに問い合わせをすれば、なぜに参加私は、フィールド名からラベルを持っています。

私は知っている、ラベル(SysLabel::labelId2String2(. ..))から値を取得する方法がありますが、私にとってはテーブルのフィールドから実際の値を取得する方が良いです。

実際にフィールド値(、それは表に示されています)を常に得る方法がありますか?

おかげで、

お楽しみください!

答えて

0

あなたが明示的にあなたのselect句でのフィールドリストを指定する場合は、役割の名前ではなく、ラベル取得します:

outer join Name from securityRole 

代わりの

outer join securityRole 
+0

こんにちは@Aliaksandr Maksimauを、ありがとう、うまくいきます。 – ulisses