Removing report joins at runtime?
I have a report based on four tables, here is a rough description of the
tables:
Work Orders, contains work order information, a Contract Code and a Region
Code.
Contracts, contains information about a contract and a Contract Code.
Regions, information about a region and a Region Code.
Contract Regions, contains a link between Contracts and Regions (Region Code
and Contract Code).
I want a report to show, all Work Orders (regardless of Region Code) for all
Contracts within a specific Region. So if a Work Order is done in a
different Region, if the contract also covers that region the Work Order is
displayed.
The report I have done is a list of Work Orders, grouped by contract, joined
on the Contract Code to the Contracts table. The Contracts table is joined
to the ContractRegions table and a value is put in the Region Code to search
on.
This report works fine, but when no Region Code is set, multiple records are
returned by the join of the ContractRegions to the Contracts table, and all
the data in my report is duplicated.
So, my question, sorry if my example isn't very clear: can I remove the join
at runtime if no Region Code is specified, or is there a better way to
design the report?
Thanks in advance, even if you only had the patience to read all this!
Ryan
One of the tables
tables:
Work Orders, contains work order information, a Contract Code and a Region
Code.
Contracts, contains information about a contract and a Contract Code.
Regions, information about a region and a Region Code.
Contract Regions, contains a link between Contracts and Regions (Region Code
and Contract Code).
I want a report to show, all Work Orders (regardless of Region Code) for all
Contracts within a specific Region. So if a Work Order is done in a
different Region, if the contract also covers that region the Work Order is
displayed.
The report I have done is a list of Work Orders, grouped by contract, joined
on the Contract Code to the Contracts table. The Contracts table is joined
to the ContractRegions table and a value is put in the Region Code to search
on.
This report works fine, but when no Region Code is set, multiple records are
returned by the join of the ContractRegions to the Contracts table, and all
the data in my report is duplicated.
So, my question, sorry if my example isn't very clear: can I remove the join
at runtime if no Region Code is specified, or is there a better way to
design the report?
Thanks in advance, even if you only had the patience to read all this!
Ryan
One of the tables
This discussion has been closed.
Comments
Instead of using joined datasets and a grouped style report, try creating a
Master-Detail report using subreports. Link the datasets using standard
Delphi linking. Creating a Master-Detail report is more flexable than a
grouped based report because you can set the subreport visibility, set
SkipWhenNoRecords on the detail datapipeline, and also set the
NoDataBehaviors on the subreports. Check out the help file on TppSubreport
and also please see demos 61 - 80 in the main reports demos project for more
information.
--
Nico Cizik
Digital Metaphors
http://www.digital-metaphors.com