In DataView you can display masks as lists, forms or as combined forms. Masks are called using several special -> standard menu userexits at menu items, buttons or events. All userexits for calling masks require a parameter string specifying the mask to be created in detail.
Note! The mask definition in the Mask Data system form has no special attribute identifying masks as lists or forms. Only the calling function defines whether a list or a form will be created. In your application you should always make sure that copied and modified default lists are only called as lists while copied and modified default forms are only called as forms. This you guarantee that masks and fields are correctly displayed regarding their positioning data specified.
Lists display several records in rows in a two-dimensional table. The fields assigned to the mask form the table columns. You use lists if your users need to have an overview over a number of records simultaneously.
The calling method of lists depends on the model object you want to display. The -> standard menu userexits iwf_lis_...are used. The figure shows in an example how you can call an item master list at the pull down menu and then a refine list displaying the assigned suppliers at the Select menu of the item master list.
Forms show a record in freely positioned fields. You use forms whenever the users require detailed information for individual records.
The calling method of forms depends on the model object you want to display. The -> standard menu userexits iwf_frm_...are used. The figure shows in an example how you can call a Type form at the Select menu of the item master list in order to show additional technical data.
Combined forms show one or several sub-lists or sub-forms in a header form. You use combined forms whenever your users require a complete view on the data from within one form, e.g. simultaneously the list of the suppliers and the corresponding item record.
In the mask definition of DataView the combined form is no special mask, but the combination of several masks created in the Mask Data system form. Combined forms are called with the -> standard menu userexits iwf_frm_lis. The figure displays how you could incorporate a refine list displaying assigned suppliers into an item master form as an alternative for using a separate list. As opposed to a simple mask call you will have to pass several mask specifications in the parameter string (for the header form and the sub-lists).
In order to minimize the size of combined forms with several sub-lists and to offer ease of use at the same time you can equip your header form with an index card system.
Creating index card systems is part of the Button Area/Button Definition and is independent from calling masks. Detailed information on index card systems can be found in -> Index card systems in forms.
Combined forms with index card systems are called in the same way as regular combined forms using the standard menu userexit iwf_frm_lis. In the parameter string you only have to pass the first sub-mask in addition to the header form, even if you want to position several of them (@> alternatively possible, too). The remaining sub-masks are called by the userexit iwf_cyc_lis at the index cards. The figure shows how you could incorporate the refine list displaying suppliers and a link list displaying storage data into an item master form.
Attention! With the help of DataView standard functions you can mix the two procedures for creating combine forms (with or without index card system). As soon as an index card system has been defined, only one mask -- which is the one on the current index -- can be active. Additional sub-masks or several masks on one card index cannot be defined.
In order to display a high number of fields within one form you can summarize sub-sets of fields in sub-forms and place them on index cards. To do so, explicitly create the required sub-forms in addition to the header form and pass F>form-name for the sub-forms in the parameter string of iwf_frm_lis or iwf_cyc_lis, respectively. It is a precondition that the fields of the header form and the sub-forms either point to only one table or to 1:1-linked tables. An example for the application of sub-forms can be found in the Mask Data system form itself. This is the Additional Attributes sub-form.
Sub-forms in combined forms may cause performance problems, because changing sub-forms always initiates a new database search. You have the following possibilities to improve performance: In a first step you should incorporate all fields of the sub-forms into the header form, too, but make them invisible there. This has the effect that all data are locally available after the first call (i.e. database query) of the form. So they can be immediately displayed if sub-forms are changed. The disadvantage is that invisible fields are defined on the server and, thus, data still have to be transferred from the server to the client if the fields become visible when the sub-forms are changed. If you also want to avoid that disadvantage, in a second step you should make the additional fields in the header form visible, but position them outside the form (negative column position). If the form is in Mask-Edit state , fields positioned outside the form will not be accessed. It is not required to install the standard field userexit cch_skp_fld.
If sub-forms with defined mask joins are used, the procedure for optimizing the performance described here cannot be applied.When the index tabs are changed, the joins are automatically appended to the mask join of the header form or removed, respectively. In order for the updated Where condition of the header form to work after changing the tab, a refresh is required.