All will be explained.
b283 - a multiply valued row place holder variable is a way of declaring a table with an unknown number of rows consisting of values for 1 or more variables, in effect a sparse matrix. (An Excel spreadsheet is an everyday exampel of sparse matrix). The foreach loop in reports allows building pages with such variables relatively easily, but there has been no way to define an input form to manage such tables without knowing how many entries in advance. Now, a new type of form Row Update solves this dilemma. Row update forms are called in the context of one entity (message, gem, etc.) and with a specific row number to edit. New rows can be created by calling the form with the next free row number. The customInputForm, customInputFormLink and customInputFormLinkPopup macros have been modified to accept an optional rowIndex parameter , the number of the row to edit in a table. The links generated by addedValueMacros.customInputFormLink and addedValueMacros.customInputFormLinkPopup are of necessity ephemeral and contain a validity field so they cannot be used after the table has changed. Attempting to call up a form with an outdated link generates an error. The intended use of these macros is in an item detail report. for example the report that displays a message might contain an HTML representation of each row, together with a link to edit that row.