I was a bit disappointed this weekend when I realized that the ComponentOne Report for WinForms Designer Edition control is missing something I expected it would include: a way for end users to build queries. To be completely honest, I suppose it was a faulty assumption on my part; the two items aren’t necessarily the same thing. But it just never occurred to me that the designer wouldn’t include any user interface for the end-user to select the tables, columns, etc. that they will need for their reports.
I spent 5 minutes thinking that perhaps I could just create my own, but that notion was quickly thrown out the window – that would be a lot of work! I found two .NET components that seem to do the job: Active Query Builder and Easy Query .NET. I really liked Easy Query’s approach from an end-user perspective; it looks a lot easier for end-users to understand and work with.
Unfortunately, it is missing something that would make it a lot more work for me to use. Easy Query allows users to build their query via an easy user interface and then generates the requisite SQL, but it cannot take the SQL and transform it into their simple UI. So in addition to saving the SQL for selecting the records as part of the reporting code, I’d have to also save the queries in their custom format. No big deal, but I already have a bunch of queries embedded in many reports, and I’d have to take the time to re-create those again. Since Active Query Builder doesn’t have that limitation, I decided to go with it.
So far it has gone pretty well. The only outstanding problem I’m dealing with is that the reporting component handles parameterized queries with a somewhat different syntax than Active Query Builder. So I will need to do some parsing to address that. But I think it is doable in a fairly straightforward manner (hopefully).