oracle Crystal Reports 参数选择限制?

声明:本页面是StackOverFlow热门问题的中英对照翻译,遵循CC BY-SA 4.0协议,如果您需要使用它,必须同样遵循CC BY-SA许可,注明原文地址和作者信息,同时你必须将它归于原作者(不是我):StackOverFlow 原文地址: http://stackoverflow.com/questions/1568405/
Warning: these are provided under cc-by-sa 4.0 license. You are free to use/share it, But you must attribute it to the original authors (not me): StackOverFlow

提示:将鼠标放在中文语句上可以显示对应的英文。显示中英文
时间:2020-09-18 19:13:05  来源:igfitidea点击:

Crystal Reports parameter selection limit?

sqloraclecrystal-reportsparameters

提问by mandroid

I'm trying to make a Crystal Reports 11 report off an Oracle database that's grouped by user. I've got over one thousand users. I want to create a parameter field that prompts the person to select which users they would like to view the results for. However my parameter selection field is only showing 221 of the possible users. The users appear in alphabetical order because of the SQL command's Order By statement. I'm wondering if there is a limit to the number of dynamic default values that a parameter field can store. Any help with this would be great.

我正在尝试根据用户分组的 Oracle 数据库制作 Crystal Reports 11 报告。我有超过一千个用户。我想创建一个参数字段,提示人们选择他们想要查看结果的用户。然而,我的参数选择字段只显示了 221 个可能的用户。由于 SQL 命令的 Order By 语句,用户按字母顺序出现。我想知道参数字段可以存储的动态默认值的数量是否有限制。对此的任何帮助都会很棒。

回答by MartW

The default limit in Crystal 11 appears to be 1000 (held in the registry key HKEY_LOCAL_MACHINE\SOFTWARE\Business Objects\Suite 11.0\Crystal Reports\DatabaseOptions\LOV\MaxRowsetRecords), so your problem may lie in the construction of the parameter field itself. Make sure it is a dynamic parameter field that will query the database when used, as the odd number of values shown makes me think this was the list generated when the report was first run and saved, and therefore a static parameter list.

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

回答by craig

I tried to reproduce your situation using a database table with 5,000+ records.

我尝试使用包含 5,000 多条记录的数据库表重现您的情况。

I created a dynamic parameter (Crystal Reports XI R3, full version) on this field. It generated a unique list of values that appeared to be about 1,000 (I started to count it, but estimated its total size based on the scroll bar's position).

我在该字段上创建了一个动态参数(Crystal Reports XI R3,完整版)。它生成了一个看起来大约为 1,000 的唯一值列表(我开始计算它,但根据滚动条的位置估计了它的总大小)。

I added the registry entry HKEY_LOCAL_MACHINE\SOFTWARE\Business Objects\Suite \Crystal Reports\DatabaseOptions\LOV\MaxRowsetRecords (String) and set its value to -1.

我添加了注册表项 HKEY_LOCAL_MACHINE\SOFTWARE\Business Objects\Suite\Crystal Reports\DatabaseOptions\LOV\MaxRowsetRecords (String) 并将其值设置为 -1。

With the registry entry change, the LoV included all values.

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

When the LoVs had the record limitation, it appeared to sample values from each letter of the alphabet indiscriminately. Maybe this is what you are encountering.

当 LoV 有记录限制时,它似乎不加选择地从字母表的每个字母中采样值。也许这就是你所遇到的。

回答by spedi

The following is for Crystal Reports 2013.

以下内容适用于 Crystal Reports 2013。

  1. Add a new registry entry under:

    • For 32 Bit computer

    HKEY_HKEY_LOCAL_MACHINE\SOFTWARE\SAP BusinessObjects\Suite XI 4.0\Crystal Reports\DatabaseOptions

    • For 64 Bit Computer (Wow6432Node sub note)

    HKEY_LOCAL_MACHINE\SOFTWARE\Wow6432Node\SAP BusinessObjects\Suite XI 4.0\Crystal Reports\DatabaseOptions

  2. Add a new key at that level called: \LOV

  3. Add a string called MaxRowsetRecords

  4. Set the value to whatever limit you want, I have selected 100000in the development. (0or -1, meaning all values, is no longer supported. )

  5. After making changes to the registry, restart the affected service or application as required.

  1. 在下面添加一个新的注册表项:

    • 对于 32 位计算机

    HKEY_HKEY_LOCAL_MACHINE\SOFTWARE\SAP BusinessObjects\Suite XI 4.0\Crystal Reports\DatabaseOptions

    • 对于 64 位计算机(Wow6432Node 子注)

    HKEY_LOCAL_MACHINE\SOFTWARE\Wow6432Node\SAP BusinessObjects\Suite XI 4.0\Crystal Reports\DatabaseOptions

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

  3. 添加一个名为的字符串 MaxRowsetRecords

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

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

回答by Larry Huisingh

Just to clarify that the MaxRowsetRecords value does NOT refer to the number of distinct parameter values you can select from. It is the maximum number of records that Crystal will look at from which it extracts the dynamic parameter values. Most likely if you look at your query you will find that there are 221 unique values in the first 1000 records. Apply the registry change to a larger number and you should see more parameter values from which you can choose.

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

回答by Overhed

221 sounds awfully low to be the default selection limit, at least to me. But there is a way to increase the number of records that these dynamic parameters pull in. It involves editing the registry.

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

See Here

看这里