我正在尝试从按用户分组的Oracle数据库中生成Crystal Reports 11报表。我有超过一千名用户。我想创建一个参数字段,提示用户选择他们想要查看结果的用户。但是,我的参数选择字段仅显示221个可能的用户。由于SQL命令的Order By语句,用户按字母顺序显示。我想知道参数字段可以存储的动态默认值的数量是否有限制。任何帮助都会很棒。
答案 0 :(得分:2)
Crystal 11中的默认限制似乎是1000(保存在注册表项HKEY_LOCAL_MACHINE \ SOFTWARE \ Business Objects \ Suite 11.0 \ Crystal Reports \ DatabaseOptions \ LOV \ MaxRowsetRecords中),因此您的问题可能在于参数的构造场本身。确保它是一个动态参数字段,在使用时将查询数据库,因为显示的奇数个值使我认为这是首次运行和保存报表时生成的列表,因此是静态参数列表。
答案 1 :(得分:1)
我尝试使用包含5,000多条记录的数据库表重现您的情况。
我在此字段上创建了一个动态参数(Crystal Reports XI R3,完整版)。它生成了一个似乎大约为1,000的唯一值列表(我开始计算它,但估计它的总大小基于滚动条的位置)。
我添加了注册表项HKEY_LOCAL_MACHINE \ SOFTWARE \ Business Objects \ Suite \ Crystal Reports \ DatabaseOptions \ LOV \ MaxRowsetRecords(String)并将其值设置为-1。
随着注册表项的更改,LoV包含了所有值。
当LoV有记录限制时,它似乎不加选择地从字母表的每个字母中取样。也许这就是你所遇到的。
答案 2 :(得分:0)
221听起来非常低,成为默认选择限制,至少对我而言。但是有一种方法可以增加这些动态参数所引入的记录数量。它涉及编辑注册表。
答案 3 :(得分:0)
以下内容适用于Crystal Reports 2013。
在以下位置添加新的注册表项:
HKEY_HKEY_LOCAL_MACHINE\SOFTWARE\SAP BusinessObjects\Suite XI 4.0\Crystal Reports\DatabaseOptions
HKEY_LOCAL_MACHINE\SOFTWARE\Wow6432Node\SAP BusinessObjects\Suite XI 4.0\Crystal Reports\DatabaseOptions
在该级别添加一个名为\LOV
添加名为MaxRowsetRecords
将值设置为您想要的限制,我在开发中选择了100000
。 (0
或-1
,意味着所有值,不再受支持。)
更改注册表后,根据需要重新启动受影响的服务或应用程序。
答案 4 :(得分:0)
只是为了澄清MaxRowsetRecords值并不是指您可以选择的不同参数值的数量。它是Crystal从中提取动态参数值的最大记录数。最有可能的是,如果查看查询,您会发现前1000条记录中有221个唯一值。将注册表更改应用于更大的数字,您应该看到更多参数值,您可以从中选择。