I have made a report that shows transactions in a certain time period for certain products.
To simplify it; its based off 3 tables: Transaction, Product and Customer. Transaction joins to Product and Customer by keys ProductID and CustomerID respectively. The product can be used by several customers though, so there is no join between customer and product.
The report is structured as below:
Report Header:
-Group Header 1 - CustomerID (prints name, id etc)
--Group Header 2a - Product Code (prints name, description..)
--Group Header 2b - sub report GetOpeningBalance
---Group Header 3 - Transaction Date
----Details (nothing printed)
---Group Footer 3 - Prints transaction date, details, new balance
--Group Footer 2 - Prints Product closing balance (opening - transactions).
-Group Footer 1 - Prints nothing.
Report Footer - prints nothing.
The sub report GetOpeningBalance calls a stored prodedure and returns a number in a shared variable corresponding to the opening balance. This is then incremented/decremented by each transaction and the closing balance is displayed at the end.
Now the selection formula is based on: Customer, Product and Date Range (to/from). Customer and Product can be discrete, range or discrete + range values.
This worked fine; it showed product transactions which occured in the range given and displayed numbers. The customer however wanted it to show all products; even if no transactions had happened in that time period. For example they had stock; but there were no intakes/outtakes so the opening and closing balance are equal.
So to solve this; I removed the date range parameter in the selection criteria (so it returns all transactions for the product) and have then supressed any detail lines that fall outside of the wanted date range. I have modified the running total formulas accordingly so they only include the “shown” transactions.
Now I am experiencing strange behaviour. Complete groups can be duplicated on the next page.. Say products 1-9 are printed on page 1, you would expect page 2 to start with product 10 and so on. However products 1-9 are printed; but then products 8 AND 9 are printed again at the start of page two . It prints the full section including the correct totals.
This behaviour is not consistent; it wont do it on every page or for every date range/product selection.
I have attempted ticking/unticking keep together in the Section Expert and the Group Expert. I have also tried removing some extra groups and details to try narrow it down to no avail.
Are there any options or settings that may be causing these groups to be reprinted?
I would usually use a subreport for the details section in these kind of problems; however because there is no direct join between product and customer it makes it impossible.
I had some free time to play with this today.
I found that switching the Group Header 2a with 2b; so that the subreport is before the product details header will stop this behaviour happening.
Now to test, test, test!