To build applications with Evolutility the minimal set of required elements in the metadata are: one form, one data, several panel, and many field. This is enough to describes a simple CRUD (Create, Read, Update, Delete) application including all the necessary web forms for searching, viewing, editing, deleting and exporting the data in a DRY (Don't Repeat Yourself) way.
form is the root element. It doesn’t represent one single web form, but all necessary web forms (Edit, View, List, Search, Advanced Search, Export) at once. Fields are displayed or not on each web form based on the attributes search, searchlist, and searchadv.
The form element contains one element data and one or more elements panel.
It has the optional attributes label, description and version, and the required namespace xmlns. Example: <form xmlns="http://www.evolutility.com" label="To do list" >
The data element specifies the set of database objects used by the component: driving table, stored procedures; and the icon and screen name associated.
dbcolumnicon Name of the database column containing the item icon file name. Example: dbcolumnicon="icon"
dbcolumnlead Database column used as record identifiyer for the user (not the primary key). Example: dbcolumnlead="LASTNAME"
dbcolumnpk Name of the primary key column used as record identifiyer. Example: dbcolumnpk="ID"
dbcolumnuserid In multiple-users environment, specify the column name of the “who is column” designing the specific user author of the record. Default is UserID.
dbcommentsformid <for future enhancements>
userpage Page name for the user profile information.
dborder List of column names to include in the "order by" SQL clause. It is the default sort option.
dbtable Name of driving table for the component.
dbtablecomments Name of the table to store comments for this component. This table can be shared between components.
dbtableusers Name of the user table which should have the following columns "ID", "login", and "password". This property is only used if splogin is not set.
dbwhere SQL where clause to limit the dataset manipulated, must use the alias "T" for the driving table. Example: dbwhere="T.publish=1"
entities Plural for entity. Default value = "items".
entity User's object name for the database object (for example: "contact" for the AddressBook application). Default value = "item".
icon Filename of the component icon (same one for all records). Example: icon ="memo.gif"
spdelete Name and parameters of the stored procedure for deleting records (or flagging them as deleted).
spget Name and parameters of the stored procedure for loading a specific record. Example: spget="EvoSP_Get @itemid" or spget="EvoSP_Get @itemid, @userid"
splogin Name and parameters of the stored procedure for checking users login and password. Example: splogin="EvoSP_Login @login, @password"
sppaging Name and parameters of the stored procedure for paging search results. Example: sppaging="EvoSP_PagedItem @SQLselect, @SQLtable, @SQLfrom, @SQLwhere, @SQLorderby, @pageid, @pagesize"
The panel element is used to visually group fields on the screen.
cssclass CSS class for the panel. The default value is "Panel".
cssclasslabel CSS class for the panel title. The default value is "PanelLabel".
img Image to display as the title panel.
label Panel title
optional Skips the panel from displaying, if every field contained is empty and optional (in View mode only).
width Width of the panel in percentage of the total width of the form. Example: width="100"
The elements field represent fields on the screen, and database columns at once. It is the most used element and the element with the most attributes. Database columns hidden to the user (like the primary key of the driving table) are not declared.
cssclass CSS class name for the specific field. The default value is "Field".
cssclasslabel CSS class name for the specific field label (in modes Edit and View). The default value is "FieldLabel".
dbcolumn Database column (SQL name) for the field.
dbcolumnimg Database column (SQL name) containing the filename of the image to display.
dbcolumnpix Database column (SQL name) containing the image filename.
dbcolumnread Database column alias. Only useful for field of type LOV, otherwise dbcolumnread must be the same as dbcolumn for the field.
dbcolumnreadlov Column to show as value in lists. Default value is "name".
dborderlov Column (or coma separated list) to sort the LOV by (SQL where clause).
dbtablelov Database table with the list of values.
dbwherelov Extra where clause to limit the list of value.
defaultvalue Default value for the field displayed while creating a new record (only for LOV fields).
dependency Allows to specify a "slave dropdown" (dependent dropdown identified by its "dbcolumn") which will dynamically updates it's list of value when the users selects a different value int the master-field. More information about dependent fields.
format Field format (for fields of type boolean, date, decimal, or integer). Example: format="'$'#,##0.00"
height Height of the field, in number of rows (default to 1 for all field except fields of type TextMultilines).
help Help for the field (in Edit mode).
img Image to display (for fields of type "boolean" or "url") in Edit or View modes.
imglist Image to display (for fields of type "boolean" or "url") in List mode.
jsvalidation Allows to specify the name of a Javascript method for custom validation. More information about fields validation.
jsdependency Allows to specify the name of a Javascript method called when the user select a field value (using the "onclick" event). More information about fields validation.
label Field title. Can be empty but then labeledit and labellist should be provided.
labeledit used for edition and search (only used when label is empty).
labellist Field title in list headers, useful to display an abbreviated header in lists.
link Force the field to be displayed as a link to another dynamic page. It can use the following variables @itemid, @userid, @fieldid.
linklabel Display a sentence or an image as the link. @fieldvalue in the string is replaced by the field value at runtime.
linktarget Direct link click to a new browser.
lookup Automatically set the field value in edit mode to a specified page request parameter.
max Maximum value allowed for the field.
maxlength Maximum number of characters allowed for the field.
min Minimum value allowed for the field.
optional Determines if the field is displayed when empty (apply to View mode only).
readonly readonly=1 presents edition of the field. readonly=2 presents edition of the field, but allows typing in insertion.
required Determines if the field is required for saving. The Javascript for client-side validation is automatically generated.
search Determines if the field appear in the search form.
searchadv Determines if the field appear in the advanced search form.
searchlist Determines if the field appears as a column of the search results list.
splistlov Stored Procedure name (with parameters and @itemid, @fieldid, @userid assigned by the control) for listing LOV values when lovmany.
type The type of the field as described in more details in field types. Possible values are:
width Width of the field in percentage of the Panel it belongs to.
In addition to the former required elements, Evolutility provides the optional elements panel-details, queries and query, and tab to add functionalities like master-details, cross-references lists, predefined queries, or more page structure.