Le mar 21/01/2003 à 14:02, Rodrigo Moya a écrit : > On Tue, 2003-01-21 at 11:22, Vivien Malerba STNA 7FD M204 wrote: > > > Do you think that this could be interesting, or it's better not to > > > reinvent the wheel and do the same that other engines ? > > > > > > > I really like what you propose, it is much more powerfull and easy to > > understand. It is also very easy to generate from mergeant (and making a > > graphical tool to create reports would be easy). > > > oh, cool to hear, but could you ellaborate a bit more on why it would be > easy to do? I think we really need a graphic reporting tool before 1.0, > and given the work Santi is putting on the GDA part, it would be really > cool if adding a GUI for that is easy. > > So, please, tell us why is it so easy so that we can start implementing > it. :-) I did not mean very easy, but not very difficult. Basically I had two ideas in mind. 1st idea: --------- Queries defined in mergeant can contain related sub queries (well, the editor does not really allow it for now but it's the idea), and so, to take the example of Santi, we can define a query named "query_bank", then a sub query named "query_office" which is related to the previous query by "bank_id=query_bank.id_bank", then a sub-sub query named "query_customer" related to the previous one by "office_id = query_office.office_id" etc... Then creating a report is just a matter of inserting some text before each query, and we can generate the <detail></detail> part; the different <sql_query></sql_query> parts are also easy to generate from the queries organisation mentionned in the 1st paragraph. 2nd idea: --------- To take Santi's example, all the queries are defined independantly of each other, some of the queries are defined with parameters (as it is possible to do now). - "query_bank": no parameter - "query_office": 1 parameter which is bank_id - "query_customer": 1 parameter which is office_id - "query_accounts": 2 parameters which are customer_id and office_id. Rem: each query can be executed independantly of the other ones; the missing parameters will the be asked in the same way you did for the 'SQL console' queries. Then I don't think is it too difficult to create some new kind of canvas items to allow the user to organize queries and connexions between queries for a report, on a canvas. For a small and dirty illustration of what it could look like, see the joined picture (and the associated DIA file): the appendices on the right of each query are the possible parameters which we can connect to 'fields' (columns) of other queries. Also, for example, if we defined a "bank_name" parameter for the "query_bank", then we could make the whole report depend on that parameter (which would be asked before the report's generation). I think the 2nd idea is really better. Rem: both ideas are really only easy to implement in mergeant and not in libgnomedb because it requires the notion of (structured) queries which are not defined in libgnomedb. What do you think? Vivien
Attachment:
report.png
Description: PNG image
Attachment:
report.dia
Description: application/dia-diagram