2012-07-06 3 views
0

는 최근 Manager는 모든 기록하지만 동료에만 해당 집합을 참조한다 "고 말했다 요구가 발생했습니다. 나는 예를 아래로 내 요구 사항을 설명합니다.SSRS 보고서가 다른 사용자에게 다른 레코드를 표시합니다. 이것이 어떻게 구현 될 수 있습니까?

을 나는 테이블을 가지고있다.

CREATE TABLE [dbo].[Empolyee](
    [EmpID] [int] NOT NULL, 
    [Name] [nvarchar](50) NOT NULL, 
    [Salary] [int] NULL, 
    [Grade] [char](1) NULL 
) 

및 일부 데이터

insert into Empolyee values(1, 'John', 200, 'C') 

insert into Empolyee values(2, 'Jim', 100, 'D') 

insert into Empolyee values(3, 'Jane', 500, 'A') 

insert into Empolyee values(4, 'Jack', 150, 'C') 

insert into Empolyee values(5, 'Jil', 300, 'B') 

insert into Empolyee values(6, 'Josh', 350, 'B') 

D이 가장 낮은 최고 등급이다.

012 3,516,

는 단순히 Empolyee에서 선택

*을 보여주는

SSRS

에서 직원의 상세 보고서합니다.

이제 사용자는 저학년에서 자신의 기록과 사람들을 볼 수 있어야합니다.

예. 제인 잭이 그녀가 볼 보고서가 나타납니다 보면 그녀가 볼 보고서는 모두 6 를 볼 수 표시되는 경우에만 2 (그의 짐의)

내가이 역할 기반 보안의 경우하지만 어떻게이를 구현하는 것입니다 볼 수 있었다?

답변

2
Select B.[Name] AS [Name2],B.[Salary] AS [Salary2],B.[Grade] AS [Grade2] 
from Empolyee A 
Cross jOIN Empolyee B 
WHERE A.Grade <= B.Grade 
and A.Name like 'Jack' -- mention your user here 
AND B.EmpID NOT IN (Select EmpID FROM Empolyee C 
WHERE C.Grade = A.Grade and C.Name <> A.Name) 
+0

와우! 질의 레벨을 처리 할 수 ​​있습니다 .... 우리는 표시된 레코드를 제어 할 수 있습니다! 열을 제어 할 수 있습니까? 예 : 다른 사람이 할 수없는 급여 열을 볼 수 있습니다. 이 같은 것을 구현할 수 있습니까? – Pritesh

+1

salary 열의 visibility 속성을 설정하면 쉽게 구현할 수 있습니다. Example = iif (Parameters! Grade.Value = "A", False, True) – praveen

+0

@Pritesh 네, 그렇습니다. 내 대답이 너에게 효과가 있니? – Asif