2016-11-02 6 views
1

Lotus에 작업 단추가있는 페이지가 있습니다. 사용자가 Admin 또는 Supervisor 역할의 일부가 아닌 경우이 단추가 보이지 않아야합니다. 내가 한 일은 다음 수식을 추가하는 것입니다.두 가지 역할이있는 경우 단추를 표시하는 방법 Lotus Formula 스크립트

@IsNotMember ("[Admin]"; @UserRoles) | @IsNotMember ("[관리자]"; @ 사용자 역할)

만약 내가 1 인 경우 : @IsNotMember ("[Admin]"; @UserRoles) 그리고 관리자 역할 관리자로서 나는 그것을 볼 수있다.

하지만 사용자가 역할 관리자이고 관리자가 아니어도 버튼을 볼 수 있다면 권한이 있습니다.

어떻게해야합니까? 사용자가 어느 롤 "[관리]"도 "[관리자]"가있는 경우

답변

3

화학식

@IsNotMember("[Admin]" : "[Supervisor]"; @UserRoles) 

복귀 @True. 이 단추를 숨기기 수식으로 사용하십시오. 관리자 및 감독자 만이 버튼을 볼 수 있습니다.

3

넛트의 대답은 정확합니다. 내 대답은 왜 그런지를 보여 주며 거의 항상 알아 내기 쉽게 숨기기에 대한 접근 방식을 제공합니다.

메모는 hide-when 수식을 영원히 사용하고 있지만 실제로 사람들은 자신의 요구 사항을 보는 관점에서 생각하는 경향이 있습니다! 우리는 언제 사물을보고 싶습니까 (이 경우 관리자 또는 관리자 일 때).^(P & Q) == (^ P |^Q)

과 같은 것들을 말하는 DeMorgan's Law을 기억하는 것이 정말 안좋기 때문에 그 때의 요구 사항을 hide-when 공식으로 바꾸는 것은 정말 좋지 않습니다.

우리는 요구 사항이 방법으로 명시 그렇다면 우리가 ORS가 설정해야 잊지 때문에,

Hide when the user isn't a Supervisor or an Admin 

우리는 문제 (암시 적 논리 무산자를있는)를 호출 @IsNotMember 두 사람과 함께 정확한 공식에 돌려을 갖는 경향을 Ands에 그것을 바로 얻기 위해서. 우리가 그것을 이런 식으로 생각한다면 :

@IsMember("[Supervisor]"; @UserRoles) | @IsMember("[Admin]"; @UserRoles); 

또는 수식 언어 목록의 힘을 사용하여, 우리는 이것 저것을 단축 할 수 있습니다 :

See when the user is an Admin or the user is an Supervisor 

그것은 그것을 표현하는 방법을 쉽게 알 수

: 당신이 할 필요가 같이하지 주위의 논리를 넣을 때 숨기기 -

@IsMember("[Supervisor]": "[Admin]" ; @UserRoles); 
는 해당로 그를 켜려면

모든보기 식을 사용하여이를 수행 할 수 있습니다. - 괄호로 둘러 싸고! 그 앞에 있지만, @IsMember를 사용하는 수식의 특별한 경우에는 @IsNotMember로 변경하면 다시 Knut의 솔루션으로 가져올 수 있습니다.

+1

그 기본 논리를 좋아하셔야합니다 :-) –

+1

쉽게 찾을 수있는 속기 버전 : ! (@ userroles = "[Admin]": "[Supervisor]"); - the!숨기기를 표시로 전환 할 때 (더 쉽게 생각해보십시오.) - "="은 @userroles 목록과 비교할 목록의 모든 조합을 통해 실행되므로 사용자가 관리자 또는 관리자 인 경우 , 버튼이 보입니다. – user2808054