2009-05-08 4 views
5

"여러 값 허용"옵션을 선택하여 보고서에 매개 변수를 추가했습니다.Crystal Reports의 매개 변수에 여러 값 지정

이것은 상태 열 (IE, 제안 됨, 진행 중, 완료됨, 취소됨)이며 사용자가보고 할 OrderStatus의 종류와 개수를 선택할 수있게하려고합니다.

내가 정상적으로 설정이 어떻게 매개 변수는 다음과 같습니다 나는 여러 값을 위해 할 노력은 무엇

report.SetParameterValue("@dtBegin", dtBegin.DateTime); 

이 같은했다 : 나는 그것이 OrderStatus에 값을 추가 않습니다 확인했다

//pseudo loop 
foreach(int intOrderStatus in intSelectedOrderStatuses) 
{ 
    report.Parameter_OrderStatus.CurrentValues.AddValue(intOrderStatus); 
} 

매개 변수가 있지만 보고서가 실행되면 CrystalReports 대화 상자가 나타나 OrderStatus 매개 변수의 값을 입력하라는 메시지가 표시됩니다. 그래서 값이 매개 변수에 "커밋"되지 않은 것처럼 보입니다. 나는 많은 수색을했는데 그것이 효과가없는 이유를 알아낼 수 없다.

고마워,

+0

내 대답은 의미가 확실하지. CR이 묻는 * SAME * 매개 변수 (코드 사용)에 대한 가치를 추가하고 있습니까? – shahkalpesh

+0

@shahkalpesh, 나는 너의 대답을 볼 수 없다. 질문에 대한 응답으로 OrderStatus 매개 변수에 값을 지정하고 보고서가 실행될 때 OrderStatus 매개 변수에 대한 데이터를 묻는 프롬프트가 표시됩니다. –

답변

8

매개 변수 값을 int 배열로 설정하기 만하면됩니다.

report.SetParameterValue("@OrderStatus", new int[]{1,2,3}); 

선택 전문가에 당신은 운영자에 을 사용합니다.

{table.order_status_id} in {[email protected]} 
+0

+1 나는 이런 배열을 전달할 수 있다는 것을 몰랐다.해보지 않았지만 작동한다고 가정합니다. :) – Dusty

0

Crystal Reports 매개 변수 옵션에서 매개 변수를 숨김으로 설정 했습니까?

+0

아니요. 이 옵션은 어디에 설정합니까? 또한 숨겨진 옵션으로 내 문제가 해결되는 이유는 무엇입니까? –

+0

바. 이 답변을 무시하십시오. 나는 Crystal Reports가 아니라 Reporting Services 보고서를 생각하고있었습니다. 사과. –

0

나는이 시도하지 않은,하지만 난 당신이 ParameterDiscreteValue 또는 ParameterRangeValue 하나에 intOrderStatus를 추가하고 대신 intOrderStatus의 Parameter_OrderStatus.CurrentValues에 그것을 통과 할 수 있어야한다고 생각합니다.

1

당신이 할 수있는 일은 일반 매개 변수 필드를 만드는 것입니다. 즉, 여러 값을 사용하지 않고 신중한 값만 참이면 1,2,3,4를 전달하면됩니다. ","단순히

{table.order_status_id} in split({@OrderStatus}, ",") 

당신이 페이지에서 통과하는 데 필요한 모든 문자열입니다 넣어 이제까지 당신이 다음 레코드 선택 수식에, 당신을 위해 일을 생각 분리 사용에 대한 구분 기호 1,2,3,4 및 작동해야합니다

0

글쎄, 나는 같은 문제가있다. 해결 방법은 매우 간단합니다. 매개 변수 뒤에 데이터 소스를 추가하지 마십시오. 예 :

report.SetParameterValue("@dtBegin", dtBegin.DateTime); 
report.SetParameterValue("@dtBegin2", dtBegin.DateTime1); 
//Note datasource is assigned after parameters 
report.SetDatasource(dataset); 

크리스탈 리포트는보고 할 데이터 소스를 적용하기 전에 매개 변수를 새로 고칩니다. 아래 별도의 대화 상자를 팝업하지 않는 것입니다

//Note Datasource is applied before parameters 
report.SetDatasource(dataset); 
report.SetParameterValue("@dtBegin", dtBegin.DateTime); 
report.SetParameterValue("@dtBegin2", dtBegin.DateTime1); 
관련 문제