2013-02-14 2 views
2

보고서에 매개 변수를 전달하려고합니다. 나는 다른 방법을 시도했지만 매번 매개 변수 값을 묻습니다. 비슷한 문제가 수 많은 톤을 읽었지만 나에게 도움이되는 것은 없습니다.Crystal 보고서 매개 변수가 작동하지 않습니다. 다시

P_REQUEST_ID은 보고서의 데이터를 필터링하는 데 사용되는 정적 번호 매개 변수 필드입니다. 여기

내 코드입니다 :

// creating report 
var reportDocument = new ReportDocument(); 
reportDocument.Load("ReportRequestPrice.rpt"); 

// creating report form 
var dialog = new FormReport(); 

// not working 
var paramFields = new ParameterFields(); 
var paramField = new ParameterField(); 
var paramDiscreteValue = new ParameterDiscreteValue(); 
paramField.Name = "P_REQUEST_ID"; 
paramDiscreteValue.Value = 1; 
// not working 
// paramDiscreteValue.Value = "1"; 
paramField.CurrentValues.Add(paramDiscreteValue); 
paramFields.Add(paramField); 
dialog.reportViewer.ParameterFieldInfo = paramFields; 

/* 
// not working 
var param = new ParameterDiscreteValue(); 
param.Value = 1; 
reportDocument.ParameterFields["P_REQUEST_ID"].CurrentValues.Add(param); 
// not working 
//reportDocument.ParameterFields[0].CurrentValues.Add(param); 
*/ 

// setting datasource 
reportDocument.SetDataSource(printshopDS); 
reportDocument.Subreports[0].SetDataSource(printshopDS); 

dialog.reportViewer.ReportSource = reportDocument;    

dialog.ShowDialog(this); 
+2

"작동하지 않음"이 도움이되지 않습니다. –

+0

무엇을 읽었는지, 왜 작동하지 않았는 지, 어떤 오류 메시지가 나타 났습니까? –

+1

방금 ​​실수로 문제가 해결되었습니다. Crystal 보고서 뷰어의 ReuseParameterValuesOnRefresh라는 속성은 False입니다. True로 설정하면 매개 변수가 작동합니다. 크리스탈 코드 새로 고침 어딘가에 내가 전화를 수동으로 새로 고침 및 결과없이 모든 가능한 장소에서 매개 변수를 설정하려고했기 때문에 호출 것 같아요. 추신 : 오류 메시지가 없습니다. 나는 보고서에 매개 변수 값을 묻는 메시지를 썼다. – karasi

답변

1

이 문제는 Visual Studio를 해결 수정 먼저 통해 CrystalReportViewer의 ReportSource 속성을 설정하는 것입니다 2005 년을 위해, 다음을 통해 매개 변수 값을 설정 크리스탈 리포트로 복제 할 수 있습니다 ParameterFieldInfo 프로퍼티. 따라서 코드는 다음과 같아야합니다.

// creating report 
var reportDocument = new ReportDocument(); 
reportDocument.Load("ReportRequestPrice.rpt"); 

// creating report form 
var dialog = new FormReport(); 

dialog.reportViewer.ReportSource = reportDocument;    

// not working 
var paramFields = new ParameterFields(); 
var paramField = new ParameterField(); 
var paramDiscreteValue = new ParameterDiscreteValue(); 
paramField.Name = "P_REQUEST_ID"; 
paramDiscreteValue.Value = 1; 
// not working 
// paramDiscreteValue.Value = "1"; 
paramField.CurrentValues.Add(paramDiscreteValue); 
paramFields.Add(paramField); 
dialog.reportViewer.ParameterFieldInfo = paramFields; 


// setting datasource 
reportDocument.SetDataSource(printshopDS); 
reportDocument.Subreports[0].SetDataSource(printshopDS); 


dialog.ShowDialog(this); 
관련 문제