Hi,
We're trying to delve deep now into ListGrids etc. We're trying to mimick a user-interface that we built in .net which more-or-less mimicked a BI (Business Inteligence) tool such as Business Objects -- that is, a user can select fields of interest and the underlying SQL is generated against the datawarehouse with appropraite aggregate expressions, group by statements, where clauses, and having clauses.
So far, SmartGWT's filter builder seems unbeatable in terms of looks. However, I'm not sure the current version of SmartGWT that we have (the details of which are at end of this thread) provides pre-built support for basic BI reporting against a datawrehouse. That is, if our queries are going to use "aggregate expresions" for the metrics and therefore "group bys" for the attributes, how does SmartGWT handle it?
Specifically, we looked at the sample "Dynamic Reporting" (http://www.smartclient.com/smartgwtee/showcase/#sql_dynamic_reporting) and then used it for our mock-up, but based on what we saw, we believe that we need *2* filter builders for any basic datawarehouse report -- one for the "where clause" and the other for the "having" clause (or, in the case of SmartGWT, we think they've subsituted a "having" syntax statement with another "where clause" that executes as part of an outer query, right?)
So, our questions are:
1) So, how can "insert" the criteria that's generated by the 2 filter builders into the ultimate SQL statment
2) Is there a pre-built interface/component to allow a user to "select" fields of interest (ie this is similar to the hide/unhide feature in SmartGWT listgrid, except that when a user "hides" a field, it should not appear in the SQL select statement at all)
*****3) Assuming that #2 is solved somehow (eg custom form etc.), is there an easy way to have the SQL statement be smart enough to put the "appropriate" fields in the group by clause (ie only the attributes shoudl be in the group-by clause; everything else, such as aggregate expressions, should not be in the group-by clause, though they will be in the "select" clause.) (This point #3 is the main question.)
In general, we're wondering how SmartGWT handles the above? Or, if it's not in 2.4 or 2.5 SmartGWT EE, is it being worked on in the nighlty builds? (Our best educated guess is that if SmartGWT did not natively address the requirements of BI reporting, there's got to be a way that we could (easily?) customize SmartGWT as follows: write front-end javascript code (written originally in Java of course, but compiled using GWT) so that we could overide the variables "$defaultWhereClause" and "$defaultSelectClause" etc and maybe even create new session variables that we can stick in to the datasource definition, perhaps using Velocity? If we're on the right track, could you please point us in the right direction of how we can save a session variable/object through the front-end SmartGWT Java code...we couldn't find any such reference in the SmartGWT forums. We did though find referenes on how we can access session variables.)
Thanks in advance.
Regards,
Gautam
Additional infracstructure details are below:
==================================================
OS: Windows XP Pro
IDE: MyEclipse 9.0 with Google Plugin for Eclipse (2.3.1)
SmartGWT EE 2.4
Browwer: Mozilla Firefox 4.0.1
GWT SDK: 2.2
Sun JDK 1.6.0_13
We're trying to delve deep now into ListGrids etc. We're trying to mimick a user-interface that we built in .net which more-or-less mimicked a BI (Business Inteligence) tool such as Business Objects -- that is, a user can select fields of interest and the underlying SQL is generated against the datawarehouse with appropraite aggregate expressions, group by statements, where clauses, and having clauses.
So far, SmartGWT's filter builder seems unbeatable in terms of looks. However, I'm not sure the current version of SmartGWT that we have (the details of which are at end of this thread) provides pre-built support for basic BI reporting against a datawrehouse. That is, if our queries are going to use "aggregate expresions" for the metrics and therefore "group bys" for the attributes, how does SmartGWT handle it?
Specifically, we looked at the sample "Dynamic Reporting" (http://www.smartclient.com/smartgwtee/showcase/#sql_dynamic_reporting) and then used it for our mock-up, but based on what we saw, we believe that we need *2* filter builders for any basic datawarehouse report -- one for the "where clause" and the other for the "having" clause (or, in the case of SmartGWT, we think they've subsituted a "having" syntax statement with another "where clause" that executes as part of an outer query, right?)
So, our questions are:
1) So, how can "insert" the criteria that's generated by the 2 filter builders into the ultimate SQL statment
2) Is there a pre-built interface/component to allow a user to "select" fields of interest (ie this is similar to the hide/unhide feature in SmartGWT listgrid, except that when a user "hides" a field, it should not appear in the SQL select statement at all)
*****3) Assuming that #2 is solved somehow (eg custom form etc.), is there an easy way to have the SQL statement be smart enough to put the "appropriate" fields in the group by clause (ie only the attributes shoudl be in the group-by clause; everything else, such as aggregate expressions, should not be in the group-by clause, though they will be in the "select" clause.) (This point #3 is the main question.)
In general, we're wondering how SmartGWT handles the above? Or, if it's not in 2.4 or 2.5 SmartGWT EE, is it being worked on in the nighlty builds? (Our best educated guess is that if SmartGWT did not natively address the requirements of BI reporting, there's got to be a way that we could (easily?) customize SmartGWT as follows: write front-end javascript code (written originally in Java of course, but compiled using GWT) so that we could overide the variables "$defaultWhereClause" and "$defaultSelectClause" etc and maybe even create new session variables that we can stick in to the datasource definition, perhaps using Velocity? If we're on the right track, could you please point us in the right direction of how we can save a session variable/object through the front-end SmartGWT Java code...we couldn't find any such reference in the SmartGWT forums. We did though find referenes on how we can access session variables.)
Thanks in advance.
Regards,
Gautam
Additional infracstructure details are below:
==================================================
OS: Windows XP Pro
IDE: MyEclipse 9.0 with Google Plugin for Eclipse (2.3.1)
SmartGWT EE 2.4
Browwer: Mozilla Firefox 4.0.1
GWT SDK: 2.2
Sun JDK 1.6.0_13
Comment