1

I'm currently using Microsoft SQL Report Builder to create a custom report for my data. I have a table of customers, a table of devices and a table of jobs (each customer has a couple of devices, each device has a couple of jobs).

What I want is a list of customers, and when I click on a customer it should expand and show all associated devices, and when I click on the device it should expand and show all jobs.

Should I just use a list in a list in a list? Or should I embed a subreport inside my list? Should I split all 3 tables in different datasets? Or just use 1 dataset?

I imagine there are a lot of different options (I did my research online) but there seems to be little consensus about whether it's a good idea to use subreports or not for example.

1

In my humble opinion, it depends on the complexity of the details view.

If I'm showing a sample list of values in each view then I'd rather use a List inside a List, inside a List.

For example:

[+] Customer Id + Customer Name
    [+] DeviCe Id + Device Name
        |------------|-----------------|
        | Job Id Job | Job Description |
        |------------|-----------------|
        |------------|-----------------|
        |------------|-----------------|

But, if the details view have a more complex structure, like graphics + tables or matrix, then I use a subreport.

  • Thanks for you opinion on this matter. It makes sense to me. I am going to use a list in a list for now. Is it a good idea to have all tables (with their columns) in 1 dataset or should I have different datasets for each list? – Edeholland Dec 5 '16 at 10:43
  • You can use a single select if you're using a fully related tables. Let me point you this article of Patrick LeBlanc with a full example in this question. blogs.technet.microsoft.com/microsoft_in_education/2013/03/09/… – McNets Dec 5 '16 at 10:48

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Not the answer you're looking for? Browse other questions tagged or ask your own question.