2012-02-04 28 views
1

這是我的代碼:水晶報表RecordSelectionFormula不起作用

CrystalReportViewer1.Zoom(75) 
Dim rpt As New CrystalReport1 
rpt.RecordSelectionFormula = "{members.id} ='3232'" 
CrystalReportViewer1.ReportSource = rpt 
CrystalReportViewer1.Refresh() 

它顯示了所有的記錄,我不知道爲什麼

+0

什麼是報表使用的SQL查詢? – 2012-02-04 13:00:46

+0

SQL查詢? RecordSelectionFormula是我使用的唯一公式,我不知道我在哪裏可以找到您提到的內容。 – Maysam 2012-02-04 13:52:33

+0

您的rpt對象最有可能具有「SQLQueryString」屬性,該屬性包含針對數據庫服務器發送的SQL查詢。你能檢查這個查詢嗎? – 2012-02-05 09:11:51

回答

1
Dim CrReport As New CrystalDecisions.CrystalReports.Engine.ReportDocument 
CrReport = New CrystalDecisions.CrystalReports.Engine.ReportDocument() 
CrReport.Load(Application.StartupPath & "\CrystalReport1.rpt") 
CrReport.SetDataSource("HERE YOUR DATASET USED IN DA DESIGN OF CRYSTALREPORT1.rpt") 
CrystalReportViewer1.ReportSource = CrReport 
CrReport.RecordSelectionFormula = "{members.id} ='3232'" 

你CRYSTALREPORT1.rpt必須位於\\BIN\DEBUG您appath的而且它必須在以前幾乎被創建。像Visual Studio的設計師的一個對象... ..>添加新項目> CR

1

您必須在Form報告(設計視圖)中創建一個CrystalReportDocument,然後Visual Studio將顯示一個窗口,可以爲CrystalReportDocument選擇一個類。選擇與report.rpt相關的類,然後在打印事件中添加:

crystalReportDocument.Load(@"reports\report.rpt"); 

crystalReportDocument.RecordSelectionFormula = "{viewTable.IdTable}=1"; 

crystalReportDocument.PrintToPrinter(1, false, 0, 0); 

viewTable是數據庫中的視圖元素。

很多人都習慣了DATASET,但在很多情況下它很荒謬。