点击此处---> 群内免费提供SAP练习系统(在群公告中)
加入QQ群:457200227(SAP S4 HANA技术交流) 群内免费提供SAP练习系统(在群公告中)
几年前,在以前版本的Crystal Reports中,可选提示无法正常工作,我不得不将值设置为零并对此进行测试,而不是使用HasValue函数。 我最近升级到v22,现在发现我的所有带有支持值列表的参数的报告都在提示用户输入值,即使列表中包含值也是如此。
此例程已经使用了几年,用于将值列表设置为参数:
公共子ApplyIDS() Dim pdv作为ParameterDiscreteValue 使用_parameter.CurrentValues 。明确() 选择案例_IDs.Count 案例0 如果为零空参数则 Report.SetParameterValue(_parameter.ParameterFieldName,0) 其他 .IsNoValue =真 万一 情况1 如果_parameter.ParameterType = CrystalDecisions.Shared.ParameterType.StoreProcedureParameter然后 Report.SetParameterValue(_parameter.ParameterFieldName,_IDs(0)) ElseIf _parameter.ParameterType = CrystalDecisions.Shared.ParameterType.ReportParameter然后 SetCrystalParam(Me.Report,_parameter.ParameterFieldName,_IDs(0)) 万一 其他情况 对于每个paramValue作为_ID中的Int32 pdv = .AddValue(paramValue) 下一个 结束选择 结束于 结束子
其他案件是被执行的案件。 退出之后,我可以看到所讨论的参数具有当前值列表。 有问题的报告使用以下代码检查参数:
(((((?MICID} = 0)和hasvalue({?MICShareID})和{vwMICSharesForRedemption.MSID} = {?MICShareID}) 或({vwMICSharesForRedemption.MICID} = {?MICID}) 和({vwMICSharesForRedemption.TransferCertificateRequired} = true 或{vwMICSharesForRedemption.RedemptionCertificateRequired} = true))
在此报告中,MICID通常为零,并且上述代码设置了MICShareID的列表。 从最新版本开始,所有使用此技术的报告现在都忽略已设置的值列表,并提示输入值列表。 在v13和v22之间发生了什么变化?
我有点绝望,因为我需要发布版本,并且打算将所有用户升级到最新的v22运行时。 如果所有报告都提示输入参数,我将无法执行此操作。
谢谢,尼尔
唐,我发现了一种解决方法,尽管我不知道它为什么起作用。 基本上," else"代码会根据我认为您以前编写且已改编的例程替换为新函数:
新功能是这样的:
这将成功设置值列表并防止出现提示。 为什么这样做有效,但parameter.AddValue()无效,我不知道。
谢谢,尼尔(Neil)
唐,我看了你的例子,但是它似乎没有处理一系列值。 从我从V13升级到V22之前,上面显示的代码至少已经工作了4-5年。 设置单个值可以很好地工作-在1插入的情况下执行代码,并且将单个值分配给参数-不会出现提示。 添加多个值后,将无法识别它们,并显示提示。 在新版本之前,该代码曾经可以使用。
嗨,尼尔,
是,参数流已再次更改。 我编写了一个测试应用程序,该应用程序具有一个下拉列表以获取参数及其值等。
how-to- 视觉工作室的晶体报告中的参数
进行一些更改,看看它是否适合您设置值。
另外,根据课程类型,数据库连接可能无法正常工作,从而导致参数失败。
在连接到SP之前必须设置参数值,并且在获取动态值列表之前必须设置DB连接。
唐
一周热门 更多>