I would like to know what is the best way to create a form. In particular, an order form that will always have 10 lines, even if the order only has 3 lines so the user will have additional lines to enter additional products on and it needs to be able to have different 'body' line types (ie, product lines, and comment lines).
I've always done this using a DataWindow. You may need to do this using a composite datawindow, with the 10 lines in the second child datawindow. If the user has entered *some* of the data through the app, you can trap the PrintStart event and use InsertRow() to get the remaining blank lines.
Alternatively, you can set the InitialValue property of the appropriate columns and do the InsertRow calls when you open the form. The rows have a status of NEW! until the user actually does something, so even if you call Update(), they won't get added to the database extraneously.