2014-11-25 3 views
0

Crystal Report .rpt 파일을 WPF 응용 프로그램에 통합해야합니다. 모든 것이 잘 진행되고 있지만 보고서에 보고서 선택 사항을 추가하면 매개 변수를 없앨 수 있습니다. 여기에 내가 작업하고있는 코드가있다.Crystal Reports 및 WPF 처리 레코드 선택 및 매개 변수

ReportClass r1 = new ReportClass(); 
r1.FileName = "myReport.rpt"; 
foreach (var t in r1.Database.Tables) 
{ 
    CrystalDecisions.CrystalReports.Engine.Table tb = t as CrystalDecisions.CrystalReports.Engine.Table; 
    tb.LogOnInfo.ConnectionInfo = conInfo; 
    tb.ApplyLogOnInfo(tb.LogOnInfo); 
} 
CrystalDecisions.Shared.ParameterRangeValue rangeValue = new CrystalDecisions.Shared.ParameterRangeValue(); 
DateTime sd = (DateTime)StartDatePicker.SelectedDate; 
DateTime ed = (DateTime)EndDatePicker.SelectedDate; 
rangeValue.StartValue = sd; 
rangeValue.EndValue = ed; 
r1.SetParameterValue(r1.ParameterFields[0].Name, rangeValue); 
string rs = "Correctly formated Record Section Formula"; 
r1.DataDefinition.RecordSelectionFormula = rs; 
myReportViewer.ViewerCore.ReportSource = r1; 

이제 레코드 선택 수식이 완벽하게 작동합니다. 그러나 매개 변수 값을 무시합니다. r1.DataDefinition.RecordSelectionFormula = rs;이 제거되면 매개 변수가 올바르게 작동합니다. 내가 도대체 ​​뭘 잘못하고있는 겁니까?

+0

다른 코드가 있습니까? 어디서나 Load를 호출하는 것을 볼 수 없으므로 다른 코드가 있다고 가정합니다. 있다면, 전화 해. 리프레쉬()? –

+0

r1 개체에 대해 ReportClass를 ReportDocument로 바꾸면 어떻게됩니까? –

+0

@Theodosius Von Richthofen 더 이상의 코드는 없습니다. myReportViewer가 CrystalReportsViewer이고 ReportSource가 보고서를 실행하도록 설정합니다. – Xaphann

답변

0

답을 찾았습니다. 밝혀진 것은 r1.DataDefinition.RecordSelectionFormula = rs;가 보고서 레코드 선택을 쓰는 것을 넘겼다는 것입니다. 이 문제를 해결하려면

if (rs != "") 
{ 
    rs = r1.DataDefinition.RecordSelectionFormula + " and " + rs; 
} 
else 
{ 
    rs = r1.DataDefinition.RecordSelectionFormula; 
} 
관련 문제