dsReport uses slightly different aproach to work with bands as other reports and can be interesting for that. It doesn't know anything about master or detail bands. It knows three types of bands. PrintOnce band, Loop and Group. Additionaly you can set band to be header or footer. You put bands one onto another to get the results you want. That means you can put as many bands as you want onto another. Group band operates differently as well. It prints as long group criteria is true. once false, it drops out. That means if you want to print groups you have to put group band on the loop.
dsReport also knows side pages. What's that. Let's imagine you have a DBGrid with lot of columns. You can't put all the columns on the page one if page is in landscape orientation. With dsReport you can print that columns onto side pages. That are pages that can be glued together after printing is done in horizontal direction.
dsReport prints it's pages into metafiles and can reprint any page to another canvas later on. Another canvas can be printer canvas for example. But another canvas can also be some pdf canvas. dsReport is already ready to export to pdf if you have llPDFLib. Or you can export to pdf via already prepared dll (no sources for pdf). Export to jpg is there already.
New controls can be easily added. It is shown in the demo how to add new control.
dsReport uses REM pascal script for it's scripting language. That means if you use that freeware scripting language, you can easily do some more things very quickly.
You can of'course design reports at runtime or design time. repots can be saved to files or databases or can be a part of dfm.