DataEase 8.2 - QBM and DQL preview. Manual lay-outing now partially fixed (Ver. 184.108.40.2068)
NB! This preview will install parallel to your production version of DE8 and will not affect it in any way. If you use this version to change your DE* app, it will run faultlessly in your production version, given you have one of the latest 8.1 versions running.
We are now at the end of the development cycle for DE8. We did release it early as 8.0, simply because it was a much better development environment for existing users than 7.2, and we released 8.1 because that as well was a much improved product on 8.0.
Initially we had decided that we wouldn't "fix" the DQL in DFW. It was simply to "messed" up and badly implemented, and our worries were that we would not be able to fix it and maintain backwards compatibility. However, as things have progressed DE8 became a much better development environment than any of us had expected, and we became much better DFW developers than we had intended.
It is beyond doubt that DataEase had been let down by its developers, and it might be very late in the day to try to correct some of this but we couldn't help ourselves.
It has long been the recommendation to use DQL as procedures and QBM for reporting. You could save the result of processing in a table and report on it with a QBM.
Only problem is that QBM too has been fraught with problems. We have used it quite extensively over the last year, and you always end up in a "bin". You make a report, you then realise that you need to summarize a field or insert a group/subform. If you do this from the "model" it gets inserted automatically in your layout, which it then "mess up". It also remove any virtual fields you have implemented, as well as insert summarize fields for all levels etc.
The initial design of DFW was over idealised and "pretended" that it could take programming out of programming. That has caused a lot of frustration over the years. The idea behind DataEase is to make it quick to make applications, not to make it automatic.All this automation just get in the way, and it is also "bottled disappointment". It give a lot of promise, and then instantly disappoint.
With DE8 our focus is to make DFW into a powerful RAD development tool for people that want to develop and want a proper tool, not a wizard for non-programmers.
So we have changed QBM so you are in charge. After the initial layout you will not be able to do any "layout changing" selections from the QBM dialogue, only change sorting and filtering. Everything else you will have to do "manually" in your layout, on the other hand we don't automatically change your design or remove fields or other elements you have inserted.
After having "changed" QBM we just had to attack DQL to enforce the same rules. This we knew was a big job, and one that we possibly might not succeed in doing.
It is no big secret that 99.99% of DataEase developers has given up using DQLs for reporting and printing. It has been very buggy and with DE "messing" up your Layout every time you have to recompile the DQL, it is only the staunches and most persistent of users that could hack it.
Now it will work the same way as QBM. You will get a layout attempt after the first compile, but after that you will have to manually build your own layout. The good bit being that we don't mess it up for you when you re-compile.
It might be a little "daunting" for users that has grown accustomed to the auto-layouting, but the DFW form builder model is fantastic when you get the knack of it.
To make it "logical" we now restrict the FieldDef dialog to only be able to insert columns that are listed in List Records, and you are restricted to insert them in the correct element i.e. sub form fields will only be insertable in sub-forms etc.
You either need to list fields in the right place, or you can use the brilliant Multiview model of DFW.
It is amazing how many users that don't know that you can override the FieldDef insert dialogue and create virtual fields directly anywhere in ViewForms, Reports and DQL layouts.
Simply write in a virtual column name, and you can define any derivation. If you simply want to list a column, write the column name, but you can use any derivation.
The nice thing now, is that when you insert virtual fields, your own summarize fields etc, they will stay there and work until YOU remove them.
Have a go at the 8.2 Preview. This is an early version, and there is some bugs/limitations still.
1. QBM - It won't save Filters/Sorting after the initial Layout build.
2. DQL - You can't insert Subforms/Groups or delete the ones that has been automatically inserted
(You can get an automatic rebuild of your layout in DQL by simply right-clicking on the layout and choose layout. Choose the new layout and check the Regenerate Layout option)