Soldato
- Joined
- 27 Mar 2003
- Posts
- 2,710
So I wasn't sure how to title this as I am looking more to see if others have tried this and how they overcame the problem.
I'll set out the scenario first:
I'm in the process of moving our reporting platform from SSRS 2005 and a whole host of other "bespoke" solutions that I have inherited over time and although I looked at SSRS 2012 as a viable solution it just isn't flexible enough for our needs and the volume of different reports that potentially need to be generated.
The main aims of the solution were:
1) To make it fast (current solution is painfully slow due to a number of factors)
2) To make it work with a number of different data sources and aggregate result sets together
3) To make it self service so that it requires only updates and critical changes by the development team
4) Accessible to internal and external users with the variety of security/ authentication surrounding it.
5) Try to avoid having a billion and one reports that may only ever get used once or limited period of time but take hours, days or even weeks to build.
6) On the web and work on the multitude of devices available.
So I have completed a little prototype which is working really well with one report that I have built but although it serves a purpose as a first draft I just know that this is going to be an unwieldy beast to maintain when I start having to build more and more reports or make modifications to suit one set of users but not another set of users. Due to the level of filters, options, columns etc that are going to need to be required.
It also means any updates will need a site update and taken off line for a period of time to deploy and test changes to make sure they are working as expected.
So as I started working on one of our more complex reports where there is a lot of conditional filtering I had a bit of a brain wave in trying to build a kind of dynamic report builder that was more user friendly than the likes of using access, SSRS report design builder etc. These tools although excellent do require some level of understanding of basic database principles and require knowledge of how our data is structured.
So to avoid this I wanted to take the kind of UML/ story board and present the data in a pseudo sql view but give custom filters and describe the data changes. so for example:
Hopefully you get the idea of what I am trying to achieve.
Now I have the basics of this working in terms of doing the following:
1) Selecting a drop down with available data sources (think of these as tables of data)
1a) Column selection is going to be done afterwards (all columns are selected currently)
2) Select the appropriate filter you want to apply and then conditional operator that the filter can have eg Equals, Contains, Less Than etc.
3) This then shows the appropriate controls for the user to entre or select the conditional filter eg if it's a date filter then a date picker is selected, if it's a numeric then a numeric textbox is selected etc.
Now I am at the point where I need to potentially mix and match a number of filters together and get combinations of filters working together eg.
Hopefully you have managed to get to this point (apologies for the war and peace like effort here)
So just wondering how best to achieve this in a nice easy solution for the users?
I have thought about a number of solutions but all seem to be a bit too technical or possibly a little bit beyond me at the moment (I have learnt so much in the past couple of days just getting to this point)
I'm trying to follow the KISS principle here but I have spent so much time looking at it that I feel I am over complicating things unnecessarily or maybe missing something obvious.
various options I have thought about include:
1) Selecting all the required filters and then ordering/combining them after they have been selected.
2) Select the filters as we go along and then asking if the new filter is part of a group of filters and then add the additional filters in that group together.
3) Provide some other solution of doing this.
So just wondering if others have done something similar or have thoughts about how to do this.
I'll try to post up some pictures tomorrow with what I am trying to achieve to make it a bit more visual for those interested in offering advice.
Again thanks in advance for any advice/ assistance anyone can provide with this.
I'll set out the scenario first:
I'm in the process of moving our reporting platform from SSRS 2005 and a whole host of other "bespoke" solutions that I have inherited over time and although I looked at SSRS 2012 as a viable solution it just isn't flexible enough for our needs and the volume of different reports that potentially need to be generated.
The main aims of the solution were:
1) To make it fast (current solution is painfully slow due to a number of factors)
2) To make it work with a number of different data sources and aggregate result sets together
3) To make it self service so that it requires only updates and critical changes by the development team
4) Accessible to internal and external users with the variety of security/ authentication surrounding it.
5) Try to avoid having a billion and one reports that may only ever get used once or limited period of time but take hours, days or even weeks to build.
6) On the web and work on the multitude of devices available.
So I have completed a little prototype which is working really well with one report that I have built but although it serves a purpose as a first draft I just know that this is going to be an unwieldy beast to maintain when I start having to build more and more reports or make modifications to suit one set of users but not another set of users. Due to the level of filters, options, columns etc that are going to need to be required.
It also means any updates will need a site update and taken off line for a period of time to deploy and test changes to make sure they are working as expected.
So as I started working on one of our more complex reports where there is a lot of conditional filtering I had a bit of a brain wave in trying to build a kind of dynamic report builder that was more user friendly than the likes of using access, SSRS report design builder etc. These tools although excellent do require some level of understanding of basic database principles and require knowledge of how our data is structured.
So to avoid this I wanted to take the kind of UML/ story board and present the data in a pseudo sql view but give custom filters and describe the data changes. so for example:
Code:
Select
column 1 and column 2 and column 3 but not column 4
From
Main working report
Where
Condition 1 is equal to {your selected condition}
Hopefully you get the idea of what I am trying to achieve.
Now I have the basics of this working in terms of doing the following:
1) Selecting a drop down with available data sources (think of these as tables of data)
1a) Column selection is going to be done afterwards (all columns are selected currently)
2) Select the appropriate filter you want to apply and then conditional operator that the filter can have eg Equals, Contains, Less Than etc.
3) This then shows the appropriate controls for the user to entre or select the conditional filter eg if it's a date filter then a date picker is selected, if it's a numeric then a numeric textbox is selected etc.
Now I am at the point where I need to potentially mix and match a number of filters together and get combinations of filters working together eg.
Code:
Select
column 1 and column 2 and column 3 but not column 4
From
Main working report
Where
Condition 1 is equal to {your selected condition}
AND
Condition 2 is between {date value 1} and {date value 2}
OR
(Condition 1 is less than {Your selected condition}
AND
Condition 3 is {true} )
Hopefully you have managed to get to this point (apologies for the war and peace like effort here)
So just wondering how best to achieve this in a nice easy solution for the users?
I have thought about a number of solutions but all seem to be a bit too technical or possibly a little bit beyond me at the moment (I have learnt so much in the past couple of days just getting to this point)
I'm trying to follow the KISS principle here but I have spent so much time looking at it that I feel I am over complicating things unnecessarily or maybe missing something obvious.
various options I have thought about include:
1) Selecting all the required filters and then ordering/combining them after they have been selected.
2) Select the filters as we go along and then asking if the new filter is part of a group of filters and then add the additional filters in that group together.
3) Provide some other solution of doing this.
So just wondering if others have done something similar or have thoughts about how to do this.
I'll try to post up some pictures tomorrow with what I am trying to achieve to make it a bit more visual for those interested in offering advice.
Again thanks in advance for any advice/ assistance anyone can provide with this.
Last edited: