Crystal Reports RecordSelectionFormula 不起作用

问题描述 投票:0回答:3

这是我的代码:

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

显示所有记录,不知道为什么

vb.net crystal-reports
3个回答
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
并且它必须几乎是之前创建的。就像 Visual Studio 中设计者设计的对象一样... > 添加新项目 > CR


1
投票

您必须在表单报表(设计视图)中创建一个 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,但在很多情况下这是荒谬的。


0
投票

在将报表分配给查看器的 reportsource 属性之前,请检查您是否设置了 .recordSelectionFormula。

这似乎不起作用

  CrystalReportViewer1.ReportSource = reportDoc
  reportDoc.RecordSelectionFormula = "{MyField} = '1008'"

  CrystalReportViewer1.Show()

这对我有用。

  reportDoc.RecordSelectionFormula = "{MyField} = '1008'"
  CrystalReportViewer1.ReportSource = reportDoc

  CrystalReportViewer1.Show()
© www.soinside.com 2019 - 2024. All rights reserved.