Select Data from Multiple Database Tables and Retrieve Related Data
With Evoke you will use Selections, configured via a wizard, to select any data from a table or multiple tables in your database/databases to populate data areas that can be used in your app.
With Evoke Selections you are able to select data from your table/object without any restrictions, just as you would if interacting directly with your database as you or your existing applications do currently.
Evoke provides a wizard to help you create various simple or complex "selections" that will retrieve data (groups of data records or a single data record) from your database.
In Evoke you can use plain English or actual database selection structures, at your choice, when creating a selection. Evoke will offer database column names or attributes to helpp you set up a selection and will then create all the database interaction code for you. You can pass parameters into a selection for further refinement/complexity and Evoke provides "builders" to help you select the corerct data pass when you use a selection.
You can then use Evoke selections to populate data areas that can be used in the user interface of your app. Run these selections when menus are clicked, buttons, when you enter a page, when a user clicks on a product or property, for droplists, lookups, in fact at any point that running a selection and populating one or more, independnant or shared, data area(s) would be useful and optimal for your app.
Let your user view the data, amend it, add to it, etc., all controlled by you as a designer and the security levels that you wish to use, and, if desired by you or clicked by the user, Evoke will save the data back to the database.
Related Data
Evoke fully supports related data in your database. This may be records that are related to each other via joins or link tables (in SQL databases), views (e.g. in Oracle) or remote keys, local keys, embedded multivalue associated groups, subvalues, etc (in Multivalue databaaes). Using Evoke you can control the retrieval (from the database) of this related data, when it is retrieved, how much is retrieved and how it is displayed/updated/used in your app.
For example, if you have a products table/object and you select (using a selection) from your database all the product records that are currently in a sale, but each product is held in one of multiple distribution centers and has its current stock levels held a further table/object, then either when you select the products or when a user clicks on a product in the app UI or on any other condition, you can retrieve the related distributon table/object records and/or the related stock records. The links between the different records, in different files can be held as of the methods above.
One of the fundamental principles of Evoke is that you should not need to change your database, its structure or any part of it to be able to use it within an Evoke built app.

App Users Sorting, Searching, Filtering and adjusting data grid column sizes
Please use the controls on the video on the right to access a full screen view for a clear demonstration
When you display a datagrid/table of data in your app then you can allow your users to control and manipulate the display of data as well as the selection of the data.

Within the UI of the running app, users that log into your deployed app can:
  • Sort the records of data in a datagrid/table - Sort assending or decending on text, numeric value, etc.

  • Search - search for text, numbers, data to find a record.

  • Filter - search for text, numbers, data to filter the table down to a subset of records.

  • Adjust - adjust column widths in real time to see data in a different way.

Users can use a range of filters including contains, starts with, greater than, less than, not equal to, does not contain, etc.
There are also multiple other options for you, as the app developer, to either give your app users the ability to manipulate and control the data they see and how they see it OR for you to preset conditions that change the data i.e. different security level see different data or different customers are directed to different databases, etc.