参数值在Crystal Reports中不起作用

2020-09-10 16:52发布

点击此处---> 群内免费提供SAP练习系统(在群公告中)加入QQ群:457200227(SAP S4 HANA技术交流) 群内免费提供SAP练习系统(在群公告中)我有一份报告,希望显示1位客户的...

         点击此处--->   EasySAP.com群内免费提供SAP练习系统(在群公告中)

加入QQ群:457200227(SAP S4 HANA技术交流) 群内免费提供SAP练习系统(在群公告中)


我有一份报告,希望显示1位客户的详细信息。 我创建了一个参数Name = CustomerNumber,Type = Number,值列表= Static。 然后,我使用Select Expert创建以下公式:{CustomerMaster.CUST_NUM} = {?CustomerNumber}

我正在使用 VB.Net (VS2017),这是我正在使用的代码:

将CrxReport用作新的CrystalDecisions.CrystalReports.Engine.ReportDocument

Dim strReportName作为字符串Dim crParameterValues作为CrystalDecisions.Shared.ParameterValues

将crParameterDiscreteValue设置为CrystalDecisions.Shared.ParameterDiscreteValue

将crParameterFieldDefinitions设置为ParameterFieldDefinitions

将crParameterFieldDefinition设置为ParameterFieldDefinition strReportName =" rptTest.rpt"

CrxReport.Load(strReportName,CrystalDecisions.Shared.OpenReportMethod.OpenReportByDefault)

crParameterDiscreteValue =新的CrystalDecisions.Shared.ParameterDiscreteValue

crParameterValues =新的CrystalDecisions.Shared.ParameterValues

crParameterDiscreteValue.Value = 1008

crParameterFieldDefinitions = CrxReport.DataDefinition.ParameterFields

crParameterFieldDefinition = crParameterFieldDefinitions.Item(" CustomerNumber")

crParameterValues = crParameterFieldDefinition.CurrentValues

crParameterValues.Clear()

crParameterValues.Add(crParameterDiscreteValue)crParameterFieldDefinition.ApplyCurrentValues(crParameterValues)CrxReport.ParameterFields.Item(" CustomerNumber")。DefaultValues = crParameterValues

然后我有一个例程,该例程仅用查看者来调用表单:

私人子DisplayReport(ByVal CrxReport为CrystalDecisions.CrystalReports.Engine.ReportDocument,ByVal reportDesc为字符串)

将objfrmRptViewer变暗为新的frmRptViewer

CrxReport.Refresh()

objfrmRptViewer.CRViewer.ReportSource = CrxReport

objfrmRptViewer.CRViewer.RefreshReport()

objfrmRptViewer.CRViewer.ShowExportButton = True

objfrmRptViewer.CRViewer.ShowPrintButton = True

objfrmRptViewer.CRViewer.ShowGroupTreeButton = True

objfrmRptViewer.Text = reportDesc

objfrmRptViewer.Show()

objfrmRptViewer.WindowState = FormWindowState.Maximized

objfrmRptViewer.CRViewer.Zoom(100)

objfrmRptViewer =否

结束子

该报告会运行,但会显示所有客户,而不是我选择的那个客户。

预先感谢您的帮助。

4条回答
天桥码农
2020-09-10 17:28

我的示例在C#中,尽管工作流程相同,但是您将在调试模式下运行以查看发生了什么。

Don 不会在查看器中刷新报表,您将使之前设置的所有值都为空。

然后设置值,然后将其清除:

crParameterDiscreteValue.Value = 1008

crParameterValues.Clear()

一周热门 更多>