2
votes

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.

5
Don't know how Crystal Reports generates the query, but if they produce a list of values that turns into an Oracle "... WHERE USER in (....) clause, the Oracle limit will be 1000dpbradley

5 Answers

2
votes

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.

1
votes

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

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).

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

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

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.

0
votes

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.

See Here

0
votes

The following is for 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 100000 in the development. (0 or -1, meaning all values, is no longer supported. )

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

0
votes

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.