这是我的代码:
CrystalReportViewer1.Zoom(75)
Dim rpt As New CrystalReport1
rpt.RecordSelectionFormula = "{members.id} ='3232'"
CrystalReportViewer1.ReportSource = rpt
CrystalReportViewer1.Refresh()
显示所有记录,不知道为什么
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
并且它必须几乎是之前创建的。就像 Visual Studio 中设计者设计的对象一样... > 添加新项目 > CR
您必须在表单报表(设计视图)中创建一个 CrystalReportDocument,之后 Visual Studio 将显示一个窗口,您可以在其中为 CrystalReportDocument 选择一个类。选择与report.rpt相关的类,然后在打印事件中添加以下内容:
crystalReportDocument.Load(@"reports\report.rpt");
crystalReportDocument.RecordSelectionFormula = "{viewTable.IdTable}=1";
crystalReportDocument.PrintToPrinter(1, false, 0, 0);
viewTable 是数据库中的视图元素。
很多人都习惯了 DATASET for all,但在很多情况下这是荒谬的。
在将报表分配给查看器的 reportsource 属性之前,请检查您是否设置了 .recordSelectionFormula。
这似乎不起作用
CrystalReportViewer1.ReportSource = reportDoc
reportDoc.RecordSelectionFormula = "{MyField} = '1008'"
CrystalReportViewer1.Show()
这对我有用。
reportDoc.RecordSelectionFormula = "{MyField} = '1008'"
CrystalReportViewer1.ReportSource = reportDoc
CrystalReportViewer1.Show()