The data controls are things like KBField, KBMemo, etc., which (usually ( Only usually. A data control can be unbound, that is, have no expression associated with it. In this case it is not involved in any interaction with the server database. However, values can be set by scripts, and maybe retrieved by them, ) ) take data from the database and display it on screen (or in a report).
In a report, data is output from the database row by row, so a block will end up showing as many rows of data as are forthcoming. However, in a form a KBBlock may display more than one row of data at a time. In this situation, the data control holds as many values as there are rows of data on display, and there will be multiple instances of the control shown (ie., a KBField may correspond to several line edit controls).
All data controls have a common set of operations and settings which specify how they relate to the server database. Individual types have their own specific settings. For instance, a KBPixmap has a setting for a frame to be drawn round the image, while a KBChoice has a set of possible values.
The KBHidden control is special, in that is does not actually display. Rather, it can be used if you need to retrieve a value from the server database for use in a script, but which does not need to be displayed to the user.