【问题标题】:How does one pass null values to optional parameters in a Business Objects report using the Business Objects SDK?如何使用 Business Objects SDK 将空值传递给 Business Objects 报告中的可选参数?
【发布时间】:2011-11-28 14:25:47
【问题描述】:

我正在构建一个 Web 前端,用于使用适用于 .NET 的 Business Objects SDK 访问 Business Objects 报告。借助该主题在线提供的稀疏文档和论坛帖子,我已经能够破解 95% 的业务需求。我最后的障碍集中在使用参数化报告上。我们的业务存在这样一种情况,即报表有两个参数,最终用户只需要填充其中一个参数。收集和清理这些数据很容易,但是无论我如何尝试将空值参数传递给报告,我都没有得到任何数据。如果填充了两个参数,我会得到预期的数据。在 Visual Studio 中单步执行代码时,我看到每当 BusinessObjects 返回一个空值参数时,它都会显示为一个空字符串 ("")。我尝试将其作为参数值传递,并且还尝试为参数分配 null 值。一旦计划和运行报告,这些选项都不会返回结果。我在下面有一个参数分配代码示例,它使用了我采用的每种方法(我们需要检查一个值为“null”的字符串,因为用户请求能够键入“null”并将其传递给报告)。这些都不会生成包含数据的报告。

sVal.Value = param.ParameterValue != "null" ? param.ParameterValue : String.Empty; 
sVal.Value = param.ParameterValue != "null" ? param.ParameterValue : "";
sVal.Value = param.ParameterValue != "null" ? param.ParameterValue : null;

Enterprise Server 是否有特定的值来表示 null,例如日期需要包含在 Date() 中?

编辑:我需要复制的功能,如 InfoView 所示:

【问题讨论】:

  • 您是否偶然使用了 Oracle 存储过程?

标签: crystal-reports business-objects business-objects-sdk


【解决方案1】:

在 Web Intelligence 中,默认情况下所有提示都是必需的,您必须通过 SDK 为其提供值。从 BusinessObjects XI R3 开始,实际上可以将报告中的提示配置为可选。此配置由报告编写器完成。如果提示是可选的,那么您可以选择在使用 SDK 时不设置提示值。

获得可选提示的另一种方法是使提示“匹配模式”,或者如果它是日期,则找出默认值。当提示是可选的并且是“在列表中”时,您可以将值设置为“%”,而对于日期,设置默认值。

【讨论】:

  • 谢谢 bush34 - 也许我应该澄清一下 - 在我的特定用例中,参数是否可选并不重要。我的具体问题是,当传递一个参数时,我无法给它一个 null 值并让报告返回结果。即如果报告有两个参数“foo”和“bar”,我需要能够传入 foo="value" 和 bar="null"。在 InfoView 中,用户可以选择将任一值设置为 null 并返回非 null 值的所有结果。如果我通过 sdk 将任一参数设置为 null,则无论我上面的各种“null”样式如何,报告都会返回空。
  • 我添加了来自 InfoView 的屏幕截图,演示了我需要复制的功能。
  • 好吧,我同意我的回答没有帮助。我从未见过“设置为空”选项。我对您尝试实施的内容做出了错误的假设。报表是 Web Intelligence 还是 Crystal 报表?如果是水晶,添加该标签可能有助于找到答案。
  • 报告是水晶报告 - 我会尝试添加该标签。谢谢!
猜你喜欢
  • 2012-12-05
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2016-07-26
  • 1970-01-01
相关资源
最近更新 更多