Learn WorkXpress
![]() ScreensScreens organize the presentation of Details. Screens can contain Details, another Screen, or can external content. Interaction with a business software application to view, edit, or add data almost always occurs through a familiar set of interface styles utilized by most software vendors. For example, people work with form fields, lists, calendars, trees, etc. Similarly, people navigate to different pages using tabs, select choosers, and links. WorkXpress uses Layouts to provide these common interface and navigation capabilities to application builders. Non-traditional navigational functionality may also be achieved.
| |
Screens Present Details About ConceptsIn WorkXpress, Screens become blue blocks known as Layouts. | |
Overview
-

Form Elements
Show Technical DetailsCommon Layout Structures
Certain aspects of Layout Types remain common between them. For example, any Layout has a "header", although it may not be displayed to the user. Headers are largely similar between Layout Types, and may include an icon, a title, a collapse/expand button, an area for dropping Field Type - Links, and a background. Layouts have an outside boundary that inclues their header and their body.
Beneath the header area, and within the oustide boundary, most Layout Types are very different. These differences are described separately for each Layout Type.
Traversal controls
Traversal controls are not yet implemented for all Layout Types. (complain loudly!)
-

Like a Web Page
Show Technical DetailsBuilding Your Interface



Layouts are the forms you present to your users. Create rich pages and navigation.
Fields are nested in Layouts, and let users enter data about Items. In our first lesson, we learned how to use Item Types, Relationship Types, and Fields to construct a data model for the application you want to build. In this second lesson, we'll teach you to use the presentation layer in WorkXpress to construct an interface for your application. In WorkXpress, the presentation layer of an application uses Layouts to display Fields.
Click here to read the full article on the WX Presentation Layer
Layouts are like FormsForms on a webpage take a variety of shapes and sizes, and as such there are a variety of Layout types to choose from. The most basic Layout is a “page” itself. Within a page, you can nest other Layout types including Field Grids, Lists, Calendar’s, Tree’s and much more. Within a Form, actual data is presented and captured in a Field.
Fields are like Form ElementsFields are similar to a form element or a control (in addition to filling a role in the data layer). They serve the primary purpose of presenting data to and capturing data from Users. However, they also incorporate user interface elements such as input masks and sub-controls like a calendar picker or color wheel.
-

Block Association
Show Technical DetailsBlock Association is the tie that binds all WorkXpress Blocks to each other and enables them to work together. There are permanent, global Block Associations and temporary, local ones. First, all Blocks are permanently associated with either an Item Type or Relationship--this defines an application's structure. Second, Layouts and Fields can permanently nest inside of Layouts to create your interface. Third, Actions can permanently nest inside of Actions to create logic. Finally, at any point in time, a Layout, Field, or Action will temporarily be "about" a particular Item in the database, to give context.
Introduction:
- Block Association makes WorkXpress unique and powerful as an application development tool. It's the glue that connects all WorkXpress Blocks to each other.
- Permanent Block Associations define the application's structure.
- Temporary Block Associations give the interface and logic "context", which helps the application to interact with the database at a point in time.
Permanent (Global) Block Associations
Item Type or Relationship Type AssociationThe most basic type of all Associations, this defines your application structure. At the topmost level, an application is a group of Item Types. These Item Types may have associated Relationship Types. Collectively, all other Blocks in WorkXpress then are associated ultimately with an Item Type. Therefore, an "application" is defined as a set of Item Types and all their associated Blocks.
When searching for Blocks in the build tools, you will tend to find them by first beginning your search on a particular Item Type or Relationship Type, and viewing their associated Blocks.
This choice of Association also effects data backup and restoration.
Blocks with permanent Item Type Association only: Relationships
Blocks with permanent Item Type or Relationship Type Association: Layouts, Fields, Actions
Layout AssociationTo build an interface you must nest Layouts and Fields inside of other Layouts. This nesting generates Layout Association.
Blocks with permanent Layout Association: Layouts, Fields
Action AssociationTo build a logic model (aka business rules, scripting, etc.) you must nest Actions inside of other Actions within a procedure.
Blocks with permanent Action Assocation: Actions
Global and Local Actions
Actions may be associated with an event and block globally, or they may be associated locally. A "Global Action" exists everywhere and every time the Action's parent Block undergoes that same event. A "Local Action", however, only exists when the Action's parent block undergoes this specific event, in this context. In this case though, context refers to the context of the triggering Block within the interface, not the Item context. This is a unique kind of context.
In other words, although a Field may trigger a local Action when it is saved from within one Layout, it will not trigger that same local Action when it is saved from within a different Layout. In both cases, however, its global save Actions will be triggered from either Layout.
For example, for a certain Field, Action A is global to its "Field Save" event for all pages and Action B is local to its "Field Save" event for a specific page. Later, that same Field is added to a new page. When that new page is saved, Action A will fire, but Action B will not exist at all on that page (in that unique context).
Item Association and Context
An Action is always associated with the building block for whom it is a "local" or "global" action (see below). Placing an Action in the Action Manager will result in that Action being associated with an Item Type based on where it is placed. Actions may be associated with Layouts, Fields, Items, or Relationships.
Similarly, an Action typically requires context to function properly. That context comes from the Block for whom this Action Manager Tool was opened and may not be the same Block for which this Action is a local or global Action. Context and Item Association for an Action may be different.
Further, some Actions can change the context. For example, when a list of Items is passed into an Action Manager from a "Mass Action" button in Layout Type - List, the context is each of the Items passed. However if they pass through a "foreach" control structure, the subsequent context passed to subordinate action is that of a single one of the Items in the list, changing each time the loop is repeated.
Temporary (Local) Block Association
Temporary Item Association (Context)At any given time, what is the page you are on "about"? If the page is about a company, then the context of that page is the specific company it is displaying (e.g. "Acme Company", where Acme Company is an "Item" in the database of "Type" Company). Any Fields or Actions need to be about that specific item and not some other item (i.e. about "Acme company and not some other company), so those Fields or Actions need to be provided with this context. For a much more detailed examination of this concept, which is critical to successfully building applications with WorkXpress, please see our lesson about Context.
If the page is about a specific Item of Type: User...for example the "current user"...then perhaps it is about you? When the page displays data, it needs to display that data about you. When Actions on the page shoot off an email notifying of a change to username, it needs to shoot that email to you, not to some other User. YOU are an Item in the database of Type User, and are also the context in this second example.
Context then is the specific Item (Not Item Type) in the database which the current Layout, Field or Action is displaying data about.
Blocks with temporary Item Association: Layouts, Fields, Actions
-

Modes
Show Technical DetailsWorkXpress Field and Layout Blocks have three modes: view, edit, and add. View mode allows your users to see your application's data but doesn't allow them to make changes. Generally, you'll want to use view mode to present data to your application's users wherever they won't need to change or add to that data. To allow your users to perform those tasks, they'll need to be able to use edit and add modes, respectively. WorkXpress allows you to securely manage users' priveleges to add and edit modes so only the right people have access to the right information.
Security and Modes refer generally to the ability for a particular user to access or change a particular set of data. The concepts are closely interrelated.
A Layout may operate in one or more of three possible modes;
- View - Fields within the Layout are not editable.
- Edit - Fields within the Layout are about an existing Item, may contain data, and the values in the Field are exposed to be changed by the user. Upon saving, any values changed by the user will be permanently stored on the Item, whereas the old values will be permanently deleted. (note: the builder can use a variety of tools make a copy of that value)
- Add - Fields within the Layout are not about an existing item, may contain data, and the values will be stored on a new Item created at the point the Layout is saved.
A Field's modes can be either dependent upon, or independent of, their parent Layout's mode.
Layout modes are determined by Security Settings, however in the absence of specific settings, the modes are inherited from any parent.
Field modes are inherited from the parent layout, but may be overridden by specific settings.
Layouts without any specific security settings are managed by their parents "behavior" (aka view, edit, add, save) controls. Fields without any specific security settings are also managed by the parents behavior controls. Checking for a parents behavior controls chains all the way up to the first parent that actually has its own behavior controls, and those control then control the behavior all children or chidren's children etc. who do not have their own behavior controls.
-

Save Behavior
Show Technical DetailsSave And...
In practical business applications, there are myriad possibilities for desired page behavior when it has been saved. Some examples include:
- Save and... close the popup page
- Save and... view the Item you just added
- Save and... navigate to the page prior to this page
- Save and... perform some checks for data integrity, present a caution message to the user, then ,depending on the response, send an email. ...and then close the popup page! ...and then refresh the page underneath!! ...and then... and then...
In WorkXpress, anything the "computer does for you automatically" is an Action, one of the 5 fundamental Building Blocks. WorkXpress handles a practically limitless combination of possible "Save and..." automations.
WorkXpress allows the builder to create different "Save and..." choices for any Layout (see Layout Settings: Save and Add Behavior Tab) to present to the user, each of which may initiate a separate chain of Actions. In the Action Manager, one simply creates an evaluation that checks for the "Save and..." choice to have been made by the user, and if it has, one then sets up the Action chain of events required. A string of evaluations can check for a range of "Save and" choices and provide a range of ensuing Actions accordingly.
-

Save Options
Show Technical DetailsSave Options
-

Configuration
Show Technical DetailsCreation
"Creating a Layout" refers to the act of adding a Layout of some Type into an application.
How to Create
There is only one way to create a non-page Layout: Using the Block Creator tool's Create tab, drag a Layout Type onto a page. There are two ways to create a Layout Type - Page; through the "Action Type - Layout - Open a Page" action, or from within an "Add Page Wizard" (see Application Workspace, or see Layout Type - Page).
Wizard Questions
Wizard Questions vary by Layout Type. Please see the individual Layout Types for details.
Automations
Automations vary by Layout Type. Please see the individual Layout Types for details.
How to Edit
All Layout Settings are accessed from the Block Editor. For any Layout, this Tool is accessed in context by navigating to the Layout in question and clicking on the blue Layouts cube on the left side of that Layout. Layouts have two classes of settings: common settings and Layout Type Specific settings. All Layout settings are local, because at the present time, Layouts are not reused (discuss).
-

Layout Security
Show Technical DetailsSecurity (more)
Layouts have sophisticated capabilities for security. By default, a Layout will inherit the behavior (or "mode") of its parent, and therefore the behavioral security settings of its parent. In this case, it will not have its own independent behavior controls but instead will change behavior according to the first parent that does have indpendent behavior controls.
Independent behavior controls can be enabled for any Layout Type that is allowed behavior. In this case, the builder has the capabiltity of using the Query Builder to define or point to Items and assign allowed behaviors to those Items. Typically, the Items pointed to would be users or groups, although that is not a requirement; it is merely an artifact of common concepts of application "security".
Additionally, Layout Type - Lists, or any layout with traversal controls activated, may control the Items that Layout is able to display. This is commonly referred to as Item security. In the case of lists, this control is exercised in the "list of" setting, by launching the Query Builder and restricting the Items displayed in the list according to an "evaluated filter" (see Query Builder, "filtering"). For Item Security on Layouts with traversal controls, this control is exercised on the "About Me" settings tab, by restricting the context provided to the Layout, also using an "evaluated filter".




