Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/sql/80.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Sql Crystal Reports参数选择限制?_Sql_Oracle_Crystal Reports_Parameters - Fatal编程技术网

Sql Crystal Reports参数选择限制?

Sql Crystal Reports参数选择限制?,sql,oracle,crystal-reports,parameters,Sql,Oracle,Crystal Reports,Parameters,我正在尝试从按用户分组的Oracle数据库生成Crystal Reports 11报告。我有一千多名用户。我想创建一个参数字段,提示用户选择要查看结果的用户。然而,我的参数选择字段仅显示221个可能的用户。由于SQL命令的order By语句,用户按字母顺序出现。我想知道参数字段可以存储的动态默认值的数量是否有限制。这方面的任何帮助都会很好。221作为默认选择限制听起来太低了,至少对我来说是这样。但是有一种方法可以增加这些动态参数引入的记录数。它涉及到编辑注册表 Crystal 11中的默认限制

我正在尝试从按用户分组的Oracle数据库生成Crystal Reports 11报告。我有一千多名用户。我想创建一个参数字段,提示用户选择要查看结果的用户。然而,我的参数选择字段仅显示221个可能的用户。由于SQL命令的order By语句,用户按字母顺序出现。我想知道参数字段可以存储的动态默认值的数量是否有限制。这方面的任何帮助都会很好。

221作为默认选择限制听起来太低了,至少对我来说是这样。但是有一种方法可以增加这些动态参数引入的记录数。它涉及到编辑注册表


Crystal 11中的默认限制似乎是1000(保存在注册表项HKEY\U LOCAL\U MACHINE\SOFTWARE\Business Objects\Suite 11.0\Crystal Reports\DatabaseOptions\LOV\MaxRowsetRecords中),因此您的问题可能在于参数字段本身的构造。确保它是一个动态参数字段,在使用时将查询数据库,因为显示的奇数值使我认为这是第一次运行和保存报告时生成的列表,因此是一个静态参数列表。

我试图使用一个包含5000多条记录的数据库表再现您的情况

<席>我在这个字段中创建了一个动态参数(水晶报表XR3,完整版本)。它生成了一个唯一的值列表,看起来大约是1000(我开始计算它,但根据滚动条的位置估计它的总大小)

我添加了注册表项HKEY\U LOCAL\U MACHINE\SOFTWARE\Business Objects\Suite\Crystal Reports\DatabaseOptions\LOV\MaxRowsetRecords(字符串),并将其值设置为-1

随着注册表项的更改,LoV包含所有值


当LOV有记录限制时,它似乎会不加区别地从字母表的每个字母中抽取值。也许这就是你遇到的情况。

以下是Crystal Reports 2013

  • 在下面添加新的注册表项:

    • 用于32位计算机
    <代码> > HKEY HKEY LoalLaMault\SoaBuffic对象\Sub席4 \水晶报表\DabaseAsvests< /Calp>

    • 适用于64位计算机(WOW6432节点子注释)
    <代码> > HKEY LoalLoad机器\软件WOW64 32节点\SAP业务对象席套件XI 4 \水晶报表\DATABASE选项

  • 在该级别添加一个名为:
    \LOV

  • 添加名为
    MaxRowsetRecords

  • 将该值设置为您想要的任何限制,我已在开发中选择了
    100000
    。(不再支持表示所有值的
    0
    -1

  • 更改注册表后,根据需要重新启动受影响的服务或应用程序


  • 只是为了澄清MaxRowsetRecords值并不是指可以从中选择的不同参数值的数量。这是Crystal从中提取动态参数值的最大记录数。如果查看查询,很可能会发现前1000条记录中有221个唯一值。将注册表更改应用到更大的数字,您将看到更多可供选择的参数值。

    不知道Crystal Reports如何生成查询,但如果它们生成的值列表变成Oracle“…其中用户在(…)子句中,Oracle限制将是1000。对上一条语句的一个简单测试是运行一个简单的查询,而不进行排序,例如从表中选择用户名,其中rownum对于“第一响应者”来说不是一个错误的注释,但这确实应该是一个注释。