Difference between revisions of "Why are there three report ranges?"
(→See also) |
(Bulk update) |
||
(9 intermediate revisions by 3 users not shown) | |||
Line 5: | Line 5: | ||
== More Information == | == More Information == | ||
− | Each range screen is processed in order from 1 to 3 and '''all''' [[What is a | + | Each range screen is processed in order from 1 to 3 and '''all''' [[What is a report generator variable?|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. | 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. | ||
Line 17: | Line 17: | ||
** Each account has it's group recorded. | ** Each account has it's group recorded. | ||
* A08 = Period Balance. (D1 is a date range for the last 3 months) | * A08 = Period Balance. (D1 is a date range for the last 3 months) | ||
− | ** Time taken to evaluate is data | + | ** Time taken to evaluate is data dependent - Lots of transaction will take a while. |
''Range 1'' | ''Range 1'' | ||
Line 25: | Line 25: | ||
* A08{D1} > 2000 | * 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 ( | + | 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 (dependent 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 == | + | === 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). | 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 | + | * Any time saved time is always dependent on the data, with small amounts of information it probably isn't worth splitting the range filters. |
{{Note|text=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.}} | {{Note|text=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 == | == See also == | ||
− | + | * [[Column types in the report generator]] | |
− | + | * [[Hidden report generator columns]] | |
− | + | * [[How do I use calculation sequence?]] | |
− | * [[Column | + | * [[What is a report generator variable?]] |
− | * [[Hidden | + | * [[How do I enter a report range?]] |
− | * [[How do I use | + | * [[REF:rprgvc01|Accessing the values of other columns.]] |
− | * [[What is a | ||
− | * [[ | ||
− | + | {{KB_Tags|report range, three ranges}} | |
+ | {{MClass}}{{KB_RGen}} |
Latest revision as of 05:31, 12 April 2019
Summary
The three range screens in the Report Generator can speed up some reports considerably if used correctly.
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 dependent - 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 (dependent 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 dependent 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
- Column types in the report generator
- Hidden report generator columns
- How do I use calculation sequence?
- What is a report generator variable?
- How do I enter a report range?
- Accessing the values of other columns.