Why are there three report ranges?
Summary
The three range screens in the Report Generator can speed up some reports considerably.
It is advisable you only use ranges 2 and 3 for complex reports.
More Information
Each range screen is processed in order from 1 to 3 and all variables on a range are evaluated before the range is executed. Variables on range 2 are not evaluated until range 1 has passed and variables on range 3 are not evaluated until range 2 has passed.
Using this information you can split up your ranges so that you spread your variables, save any time expensive evaluation variables (period totals, period balances etc) for ranges 2 or 3. Keep range 1 for simple variables such as codes, names, addresses, descriptions etc - these variables are usually entered on a "Property Screen" - their value doesn't require any calculations.
- Period totals and balances have to be calculated and can therefore take a while, there is no reason to calculate these for the range if the data is for a stock line or account that falls outside the range.
Example
A report to list all customers in account group 'MAIN' with a period turnover in the last 3 months over £2000.
- A01 = Account Ledger.
- Every transaction knows if it is on the Sales Ledger 'S' or Purchase Ledger 'P'.
- A07 = Account Group.
- Each account has it's group recorded.
- A08 = Period Balance. (D1 is a date range for the last 3 months)
- Time taken to evaluate is data dependant - Lots of transaction will take a while.
Range 1
- A01 = "S" AND A07 = "MAIN"
Range 2
- A08{D1} > 2000
If A08 on range 2 was on the first range screen it would be evaluated even when A01 wasn't "S" and A07 wasn't "MAIN", so potentially (dependant on the amount of transactions you had) taking lots of extra time. Putting this on the second range would mean the Report Generator would only evaluate the period balance when the account was a customer in account group "MAIN".
Implementation
Serious amount of gather time can be saved if your report has two evaluation style variables (e.g. Sales in a period and Purchases in a period) if you place one variable on range 1 and the other on range 2 you could save evaluation time on the second range (remember range 2 will not be evaluated unless range 1 passed).
- Any time saved time is always dependant on the data, with small amounts of information it probably isn't worth splitting the range filters.
It is important to note that your report will finish with the same information on it if you use 1 or all 3 ranges. All you are doing is assisting the Report Generator in the speed at which it gathers data for the report. The second phase (Sorting) will not be affected by anything you do with the ranges. |
See also