• I'm not sure from your question exactly which part you are having trouble with, could you include some more detail on that?

    I have tried using Shared Data Sources:

    - These are always good. You create a single data source connection in your solution, and re-use it for all the projects & reports that require it.

    I have tried using one Query for all info:

    --This should work fine but note you will get all the main table data repeated for each of the rawmaterials and other table rows. To get around that you can using grouping in the main tables to avoid duplicating rows. Using four datasets would work easily if you use the same parameter in all four and then run the report for a single quote at a time.

    How many quotes do you have in the system?

    Do you want to iterate through all of them and have them all on different pages?

    Are you restricting the report in some way, e.g. by client so that the report doesn't end up being huge once you have a lot of quotes in the system?

    One option might be to do a single quote at a time. Create a separate dataset that returns perhaps "quote number", "Quote date" and then you can use this dataset to drive a parameter for the main dataset using the quote number to filter. The report would only ever be 1 quote then.

    If this is a report to make it easy for your users to print individual quotes then that's the ideal solution.

    If you wanted to make it even more useful you could cascade 2 parameters. First dataset gets a list of clients. The client ID then filters the second dataset to only show quote numbers belonging to that client so when the user picks client1 from the first drop-down, the second drop-down only has that client's quotes. Then they can run the report and print it or export to excel.

    If you want them to be able to print all quotes for a client, or a date range then that's a bit more complicated but certainly achievable. Options include using a subreport to iterate through each quote number, or using a single table with multiple (separated) grouping regions in it with a master group on quote number, and forcing a page break between each instance of that quote group.