Ability to simultaneously display information from two related data sources
(having a one-to-many relationship) in a single page
Easy display of information from lookup tables (item-description
pattern) by defining the appropriate query sources
Ability to display computed columns or attributes. The
attribute defined in the "name" attribute is passed to the custom function in
$source parameter and also the attributes of the selected row are exposed to the
function in a hash array
named $record. The developer may also use the makelink function to
generate links in the computed field.
Layout control in the <top> section using the <hr> and <vr> tags.
These tags are translated into horizontal and vertical separators respectively and are useful
when there is a lot of information to show in a page.
Automatic pagination of the rows and inclusion of the navigation
facility in multi-row view pages
Ability to filter the page's data source based on the criteria passed
from a search page
Allowing the user to sort the rows based on any of the columns
(<field> tags) in ascending or descending orders and remembering the user's
preferred sort order across the session.
Supporting multi-line text, password, constant and combo inputs
Ability to simultaneously input information for two tables having
a one-to-many relationship (in insert pages)
Ability to use an auxiliary data retrieving query (similar to the
queries used in view pages) to display meaningful information to the user amid
the data entry fields in the forms.
Ability to use a seed query to retrieve seed values for data
entry fields (type="seed")
Automatic validation of user input upon submission of the form
Properly reporting the error messages generated by the built-in
form verification routine or returned from onload and onsubmit functions
Ability to use combo boxes for inputting foreign key attributes,
even in the body of the form
Supporting various modifiers for the <field> tag. Examples
are hidden and noinsert attributes.
Layout control in the header of the form using <hr> and <vr>
Using transactions when modifying the database. If any of
the queries fails or the onsubmit function cancels the operation, the
transaction is rolled back.
Ability to update external files which are used as the source of
the combo inputs
Ability to search in the values of attributes in exact, partial
and range modes
Ability to search in every attribute that is included in the
underlying search query, no matter if it is shown in the search results or
Ability to use DISTINCT or UNIQUE queries to allow the user
the search based on the attributes of the related rows in other tables
Ability to simultaneously remove related rows from two tables
having a one-to-many relationship (The received parameter is treated as the
primary key for the "one" side and the foreign key for the "many" side.)
Supporting referential integrity constraints in the definition of
the page. If removal of the rows results in violation of the constraints,
the delete operation is aborted.
Supporting onload and onsubmit functions, allowing the developer to
implement further checks to verify the validity of the delete operation (in
onload) or execute supplementary queries to complement the delete operation (in
Ability to archive the rows in archive tables before removal.