2011-09-11 3 views
6

사용자 이름 매개 변수를 가져오고이 값을 세션의 사용자 이름으로 바꿔서이 사용자 이름으로 테이블 타임 스탬프를 생성하는 DRL 내부의 저장 프로 시저에 전달할 수 있습니다. . "username"매개 변수는 기본값과 함께 제공되는 RDL의 매개 변수 중 하나이며 다음 코드로 변경하려고합니다. "SSRS는 프로그래밍 방식으로 매개 변수를 설정하여 ValidValueMissing 상태가됩니다.

ReportViewer.ServerReport.SetParameters(parameters); 

보고서를 실행 한 후, 나는 메시지가 :

var userParameter = GetUserParameter(); 
if (userParameter != null) 
{ 
    newParameters.Remove(newParameters.FirstOrDefault(param => param.Name.Contains(CurrentUserParameterName))); 
    newParameters.Add(userParameter); 
} 

찾기 사용자 이름 ReportParameters : ServerReport에

var paremeters = ReportViewer.ServerReport.GetEditableHiddenParameters(); 

//finds parameter by its name, pelase view const value in CurrentUserParameterName 
var userParameter = paremeters.FirstOrDefault(param => param.Name.Contains(CurrentUserParameterName)); 
if (userParameter != null) 
{ 
    userParameter.Values.Clear(); 
    userParameter.Values.Add(Utils.GetUserName()); 
} 
return userParameter; 

설정 매개 변수

ReportParameters 중 하나를 교체 'username'매개 변수에 값이 누락되었습니다. "

ServerReport.GetParameters()에서 디버그하고보고 할 때 ReportParameter "username"이 있음을 알 수 있습니다. 값 (새 값)은 있지만 상태는 "MissingValidValue"입니다.

내가 뭘 잘못하고 있니? 사전에 감사합니다, 에디

나는 마지막으로이 글이 문제 덕분에 해결하기 위해 관리했습니다
+0

현재 사용자 이름 값과 함께 ValidValues라는 멤버가 있고 비어있는 값이 다른 멤버가있는 것처럼 보입니다. –

답변

6

: 당신이 매개 변수에 사용할 수있는 값을 지정한 경우 http://technet.microsoft.com/en-us/library/dd220464.aspx

, 유효한 값은 항상로 표시를 드롭 다운 목록. 예를 들어 DateTime 매개 변수에 사용 가능한 값이 인 경우 일정 컨트롤 대신 매개 변수 창에 날짜의 드롭 다운 목록이 나타납니다. 에서 값 목록이 보고서와 포함 된 보고서간에 일관성을 갖도록하려면 은 데이터 원본에 연결된 데이터 집합의 모든 쿼리 에 대해 단일 트랜잭션을 사용하도록 데이터 원본에 옵션을 설정할 수 있습니다. 나는 "기본값"에 넣어하는 것 외에도 "가능한 값"옵션에서 기본 값을 입력하기 때문에

이 보고서는 "가능한 것으로 표시되지 않은 새로운 세션의 이름을 확인하려 값". "사용 가능한 값"의 값을 제거하면 코드 숨김에서 제공하는 새 ReportParameter의 유효성을 검사 할 필요가 없으며 보고서가 성공적으로 렌더링됩니다.