Using tables directly has the advantage that Designer knows that you are working with tables. Designer allows to select rows or columns, to simultaneously resize a column for example or provides a check box to repeat the table header. But this also limits you in what you can do if it comes to non-standard tables. Internally, tables are handled as subform structures. You can easily check this if you look at the XML source of the template in Designer.
Subforms or Tables
For this blog I’m using Designer 8.1. The first thing to notice is that when you drag and drop a table structure from the data view onto the form design a set of nested subforms is created. If you really want to have a table in your form you need to use the menu item “Convert to Table” which can be found in the Table menu of Designer. For all experts, this behavior is SAP-specific.
Advantage when using Subforms
Using subforms gives you more flexibility when laying out tables. An example that is frequently mentioned are tables where not all fields fit into one row. I now want to describe what you’ve got to do in this case. First of all do not convert the subforms to a table (or do not use the table wizard). Then you have to change the content type of the subform from “flowed” to “positioned” for the body row (Object palette, subform tab). After this you can resize the subform to get more space for all the fields. Finally, you can rearrange the fields so that it looks like multiple rows but technically it is only one row.
Note: It might be that fields overlap and you can’t see them all because their X and Y coordinates are all zero. No worries, you can go ahead with rearranging the fields.
Figure 1: Another example of a table where the cells are rearranged
If you want the header to be repeated in case of page breaks you have to use “Overflow Leaders” (instead of the convenient check box if you are using tables). You can set them on the “Pagination” tab of the object palette.
These examples illustrated what you can do if you use a subform structure instead of a table. So depending on what you want to achieve you might have to use subforms instead of a table. But for standard tables, the recommendation is to use the table object directly.