Component

This page is for application designers. It describes the properties of a component. It also lists the popup menu options for components.

Overview

Components are the building blocks of screens. For information about the different types of component and how they can be combined into layouts, see Screen Structure.

Each component has the following properties. Some properties are only available for some types of component.

Property Pane Toolbar

For information about the toolbar options, see the Common Properties page, Toolbars and Controls section.

 Properties Tab

Parent Details

If this item is within or belongs to another, it's parent name is shown here. See the Common Properties page, Parent Details section for more details.

. For components, this property is read-only. The parent is the application or package to which it belongs.

Basic Settings

FieldDescription
Name

Enter the name of the component.

The names for data views, form fields and card components cannot include spaces.

Mapping Name

Available for input fields. Read-only.

Use this mapping name if you need to map this component in context parameters, drop-downs and expressions.

Once the form is backed by a Stream, the change of a Stream Attributes names do not affect the Mapping Name, so there is no need of altering existing expression after the name change.

Allow Empty Row

Available for drop-down and fixed drop-down components.

 Tick to allow empty rows in the list.

Cache Data

Available for drop-down and fixed drop-down components..

 Tick to cache the data in the field after it is loaded for the first time.

Parent

Available for button components. PhixFlow displays the name for the parent component.

The following options relate to actions.

For new applications created in PhixFlow version 9.0 or later, we recommend you use new actionflows for configuring actions.

  1. Set the Action Method to Actionflow.
  2. Select or create an Actionflow.

For applications created in version 8.3 and earlier, we recommend that you continue to use table-actions combined with either an Action Type or an Action, not both.

  1. Set the Action Method to Stream action.
  2. Select:
    • either an Action Type.
    • or an Action from the appropriate table.

If you specify both, the Action Type overwrites the type of the first record-action rule that is configured in the action properties. The rest of the record-action rule configuration remains the same. For example:

  • A button Action Type is Update.
  • Its Action has 3 record-action rules, to:
    1. insert 
    2. insert
    3. update.

When the user clicks the button, PhixFlow runs the record-action rules in turn, but runs the actions:

  1. update
  2. insert
  3. update

Only the first insert record-action rule type is replaced by the update type specified in the Action Type

Action Type

Available for buttons.

Select one of the following action types that will run when the user clicks the button.

  • General
  • Insert: adds a new record to the table
  • Clear All Fields: clears content from all form fields on the parent form
  • Close Screen: closes the parent screen
  • Update: updates a record
  • Delete: deletes a record
  • Maximise/Minimise Screen: toggles the screen between minimised and its default size.

Alternatively, use the Action field to specify a table-action in which you can configure more details.

Action Method or 
Double-click Action

Action Method is available for buttons. Double-click Action is available for grid views and cards.

Select whether or not an action runs when the user clicks the button or grid. 

  • No Action
  • Table-Action: use when maintaining applications created in PhixFlow version 8.3 or earlier.
  • Actionflow: new in PhixFlow version 9.0.0. Use for new applications; see Creating Actionflows.
Action

Available when Action Method is Table-Action.

Select the action to run when a user clicks the button or double-clicks a grid view or card. The list shows:

  • if your application is not loaded: a list of applications. Select the application on which you are working to see the available tables.
  • if your application is loaded: a list of tables.

Select a table to see the list of actions associated with the table.

Default Action

Available for grid and card data components, when Double-click Action is Table-Action.

Select an action to run when a grid row or card is double-clicked

Drag Type

Available for grid and card data components, when Double-click Action is Table-Action or Actionflow.

Select or add a drag type to use when the user drags a grid row or card; see Drag Types and Drop Targets.

Actionflow

Available when Action Method is Actionflow. Click:

 Add New to create a new actionflow.

 Actionflow to select an actionflow from a list. The list shows:

  • if your application is not loaded: scroll down the list of applications to find the application on which you are working and its actionflows.
  • if your application is loaded: a list of actionflows in your application.
End of options related to actions
Snap Grid Size

Available for container components:

  • form
  • area

Also available for basic layouts:

  • tab header
  • tab display area
  • labelled number field
  • labelled date field
  • labelled date-time field
  • labelled drop-down field
  • labelled true/false field.

Specify the number of pixels that the component can grow or shrink when resizing in response to changes to the screen size.

Composite Component

 Tick to indicate this component is grouped with its parent component.

It can be useful to group components together, such as a dynamic text field and the static text field that acts as its label. To do this,

  1. Create a component to act as the container, for example an area.
  2. Add the components you want to treat as a single component.
  3. Tick this option for each of the components within the container.

PhixFlow then treats the container and the components it contains, as a single, composite component. In a screen, when you select or drag a component, such as a text field, PhixFlow selects or moves the whole composite component. 

To select a component that is part of a composite component:

  1. Click once to select the composite component.
  2. Click again to select the specific component.
Layout Category 

Available for container components:

  • areas
  • forms
  • card containers.

This property relates to configuring preferred parents for components; see Component Categories and Preferred Parents.

Select a layout category to indicate the part of a screen that this component represents, such as a header, navigation, button-bar or footer. You can also add a new layout category. Layout categories are listed in the repository.

For other components and layouts, the property tab includes a Preferred Parent Categories section. Use this to select the layout categories that are suitable locations to drop a component. For example, a button could have button-bars as their preferred parent. When you drag a component or layout from the palette,  PhixFlow can highlight parts of the screen where you can drop.

Table

Available for card containers and forms.

The name of the table or view bound to the form or card container. 

For a card container, you can drag a  table or view from the repository into this property to bind data.

View Name
Display Text

Available for static text fields.

Enter the text you want to display on the component. By default this field is an expression editor. For options to format the display text as HTML, tick Use HTML Formatting.

Use HTML Formatting

Available for static text fields.

 Tick to change the Display Text field from an expression editor to an HTML editor. You can then use the toolbar to apply HTML formatting to the text. 

Default Value

Available for data field components:

  • true/false field
  • date field
  • date-time field
  • number field
  • string field
  • dynamic text.

Select or enter a value to display in the field. PhixFlow uses this value if:

  • an action opens the screen to which this component belongs
  • and there are no context parameters or form mappings to populate this field.
Date/Time Format

Available for the data field components:

  • date field
  • date-time field
  • dynamic text
  • drop-down
  • static drop-down

Select the format in which to display the date or date time value.

Number Format

Available for the data field components:

  • number field
  • dynamic text
  • drop-down
  • static drop-down

Select the format in which to display the number value.

The list of Number Formats is populated from the formats defined for your: 

  • PhixFlow instance
  • your application's theme
  • your application.
Type

Available for dynamic text, drop-down and static drop-down components.

Select one of the data types:

  • String
  • Integer
  • Float
  • Date
  • Datetime
  • HTML

The data type determines how the selected data will be formatted.

  • Integer or Float must have a number format
  • Date or Datetime must have a date-time format.
Decimal Places

Available for dynamic text components.

Enter the number of decimal places to display for numbers.

URL

Available for URL display components.

Specify the URL that you want to be displayed.

Expression

Available for URL display components.

Enter an expression which, if true, determines the URL.

Multi-line

 Tick to allow the text to wrap over 2 lines.

The following options are only available for date, date-time, number, string, drop-down and static drop-down fields.
Use Field Name as Place Holder Tick to automatically use the field name as the placeholder text in the empty field.
Place Holder Text

Enter text that PhixFlow will display when the input field is empty. Placeholder text is shown slightly greyed out to distinguish it from text that:

  • either is entered by the user
  • or is read-only text.

The following options are only available for a view or a card container. 

ParentThe name of the form or area that this component is a part of.
Display NameEnter a name to be displayed as the heading for this component. If no display name is set, the file name for the component is displayed.
View NameSelect the view that backs this card container or form. This means you can have aggregated data in the background filter of the card container or form.
Select First Row By Default

 Tick to automatically select the first grid row or card when the screen is opened.

Refresh If Not Active

 Tick to refresh the data in the component even if the parent screen is not active. Use this option if a user selection elsewhere in the application can affect the data in this component. 

Error rendering macro 'excerpt-include' : No link could be created for 'HELPTRUNKR:_check_box_unticked'.
 to refresh the data in the component when the screen becomes active.

Show Paging Bar Tick to display the paging bar by default.
Default Page Size

Available for grid and card data components.

Specify the number of records to be displayed as:

  • rows in a grid
  • cards in a card component.

If not specified, PhixFlow uses the default page size set in System Configuration.

Use Custom Data Range

 Untick to use the default data range, which is set in the Stream → Basic Settings → Data Range property. It determines whether this component displays records from:

  • either all recordsets
  • or the latest recordset only.

 Tick to override the setting in the table backing the component. PhixFlow shows the Data Range property.

Data Range

Available when Use Custom Data Range is ticked.

Select which recordset data is displayed.

  • Latest: displays the records from the latest recordset only. Recommended when recordsets are updated by batch process, and therefore have a Period of Daily or Monthly
  • All: displays the records from all recordsets. Recommended when recordsets are updated incrementally and therefore have a Period of Transactional or Variable.

This value is used instead of the data range specified on the table backing the component.  

Use Custom Default Filter Tick to display the Default Filter field.
Default FilterThis field is available when Use Custom Default Filter is ticked. Select or add a filter. This overrides any default filter set in the original view.
Default Sort OrderSelect or add a default order in which data will be displayed; see Sort Order.

Kanban Board 

This section is available when the Advanced → Type is Cards.

Kanban boards display records as cards in columns, with headings. The columns usually represent the status of the record. When a Kanban application user drags a card from one column to another, the default kanban drag action automatically updates these attributes to match those of the target column.

Example: a table may record information about status using the attributes StatusID and StatusName.

StatusIDStatusNameData
Use this attribute to identify the columnsUse this attribute to name the columns
01PlannedYes
02In ProgressNo
03In ReviewNo
04DoneYes

Table 1: Example attributes for a kanban board

Use the following properties to set the columns and headers for the kanban board.  To specify the styles for the kanban board columns and headings, see Component#Style Settings, below.

FieldDescription

Kanban Columns

This field is required. Select an attribute from the list.

PhixFlow uses this attribute to create the kanban columns. Each value found for the attribute in the table data generates a column. PhixFlow displays the record as cards in the column that represents the value of this attribute.

In some cases, the attribute that you use to create the columns will have a data form that is not useful as a column heading. For example it may be a identifier, rather than a name. In this case, specify Kanban Column Headings.

The columns are restricted to those found in the data.

Example

Example using the attributes from Table 1, above.

Select the attribute:

  • StatusID to create the kanban columns
  • StatusName to name the kanban columns

Recirds include StatusID values of 01 and 04. No records include the values 03 and 04. Therefore the kanban board has just two columns:

  • 01, with the heading Planned 
  • and 04, with the heading Done.

To display kanban columns for all possible values of the selected attribute, tick Evaluate Kanban Columns as Expression. PhixFlow adds the expression fields:

  • Kanban Column Expression
  • Kanban Column Headings Expression, when you select a Kanban Column Headings attribute.

Enter an expression that defines all the columns and (optionally) their headings.

Kanban Column Headings

Optionally, specify the attribute to create the kanban column headings. Select an attribute from the list. 

This attribute must have values that correspond to the values in the Kanban Columns attribute. For example, if you select a Kanban Columns attribute of StatusID, the corresponding attribute for column headings is StatusName, as shown in the Table 1 above.

Evaluate Kanban Columns as Expression

 Tick to display expression fields. Enter expressions to specify the full set of columns and headings that you require. Columns remain visible on the board even when there are no records to display in them.

To ensure kanban boards are responsive, expressions can only take a subset of functions; see Responsive Functions.

Kanban Column Expression

Available when a Kanban Columns is selected and Evaluate Kanban Columns as Expression is ticked.

Enter an expression to specify which columns appear on the board.

Example

Example using the attributes from Table 1, above.

  1. Select the attribute:
    • StatusID to create the kanban columns
    • StatusName to name the kanban columns
  2. Tick Evaluate Kanban Columns as Expression
  3. Enter an expression for all 4 columns: 01, 02, 03 and 04.
  4. Enter an expression for all 4 column names: Planned, In Progress, In Review and Done.

The kanban board has just four columns. The In Progress and In Review columns do not contain any cards.

Your expression can directly specify all the columns/headings.

If you want the flexibility of changing the kanban columns over time, consider having a table in which all the attributes for the kanban columns and their headings are defined. Use the expression to refer to the table. When you update the table, the kanban board will automatically be updated.

To ensure kanban boards are responsive, expressions can only take a subset of functions; see Responsive Functions.

Kanban Column Headings Expression

Available when a Kanban Column Headings is selected and Evaluate Kanban Columns as Expression is ticked.

Enter an expression to specify which column names appear on the board.

Background Filter Rules

Available for data view components and card containers. Specify a background filter that PhixFlow applies to the table data before it is displayed in the component.

FieldDescription
Evaluate These Filter Rules as an Or

Specify how to combine the Background Filter Rules.

 Untick to combine the background filter rules as an AND filter.

 Tick to combine the background filter rules as an OR filter.

Background Filter Rules

This section has a toolbar with standard buttons.

The grid contains a list of the background filter rules that are combined together to create the background filter for the component.  To add a filter rule  to the list, click  Create New. PhixFlow opens the filter rule properties. To remove a filter rule, use the toolbar button  Delete.

For information about the details shown in the grid, see Filter Rule.

Preferred Parent Categories 

This property relates to configuring preferred parents for components; see Component Categories and Preferred ParentsFor container components, the property tab includes a Layout Category property in which you can create layout categories and assign container components to them.

This section includes a list of the layout categories, that this component can be dragged onto. For example, you can set a button-bar as the preferred parent for a button. When you drag a component or layout from the palette, PhixFlow can highlight parts of the screen where you can drop it.

To add a category, open the repository Layout Categories section and drag one into the list.

Advanced

FieldDescription
TypePhixFlow populates this property with the type of component.
View Type

Available for area components. Optionally select one of the following to set additional behaviour for an area.

  • Field Container: indicates the area is acting as a container for a data field and associated text field.
    PhixFlow uses the container name as the text in the field,  
  • Screen Drag Handle: the area acts as a drag handle.
    The application user can click in the area and drag to move the whole screen.
Internal Icon Source 

Select an image from the list of uploaded images.

Optionally specify either an internal or an external icon source. If you specify both, PhixFlow will use the Internal Icon Source.

When you add a component to the palette, PhixFlow uses the image as the icon in the palette. If you do not specify an image, PhixFlow uses a default icon based on the component type.

External Icon Source 

Enter the path to an icon that is stored in your file system.


Test Handle

Enter a name that you can use for this component, when you are running automated tests on your application.

Template

Read-only. Available for components that have been added to a palette.

 Tick indicates this is a template component that has been added to a palette.

Palette Label

Available for components and layouts that have been added to a palette.

Optionally, enter a label that will appear below this component when it is displayed in the palette. This is useful if you want a shorter or more descriptive label than the component name, which is displayed by default.

Description

FieldDescription
TooltipEnter tooltip text. When using the application, if the user hovers their mouse over this component,  PhixFlow displays this text.
If this text is in the translation table, PhixFlow can display translated text that matches the user's locale; see Translating an Application Interface.
DescriptionEnter a description to explain the purpose of this component.

Validation

FieldDescription
Validation TypeSelect an existing or create a new Validation Type. The selected Validation Type sets the criteria for an input field to be considered valid. For example, the criteria that determine if an email address is valid or if the value entered in a field is long enough. 
MandatoryDefines if it is mandatory to enter a value in the form field.
Error MessageThe error message that gets displayed to the user when they mouse over a form field that does not satisfy the criteria of the validation type.

 Style Tab

Style Settings 

Select formatting properties for the current component; see Style properties, as they are the same as the Style Settings here.

PhixFlow uses the style settings to construct CSS for the component; see w3schools.com CSS for details of CSS. If the formatting you require is not available in this section, you can also create custom styling, see CSS Properties. PhixFlow applies the style to the component when you save changes to the properties tab.

In addition to the standard style properties, this section includes the following settings related to kanban boards. 

FieldDescription
Kanban Column Style


Available when a Kanban Board → Kanban Column attribute is selected.

Select a Style to format the kanban board columns and their headers.

  • Either select a style from the list.
  • Or click  List Styles to show the list of styles available in the repository
  • Or click  Create New to create a new style to use.
Kanban Header Style
Header Style
Remaining properties

The rest of the Style Settings properties are the same as those that you can set in a Style.


Style settings include adding scrollbars.

Grid and card container components that have scrollbars can also scroll automatically. This means users can drag cards or grid items to targets that are currently off-screen.

  1. Click to select the item and start to drag it in the direction of the target.
  2. At the edge of the component, pause the mouse pointer.
  3. PhixFlow then starts to scroll in the direction of your drag.

Automatic scrolling can be:

  • left or right
  • up or down
  • diagonal.

Shared Styles

A list of shared styles. Click Show the List of Styles to see the styles available in the repository. You can drag styles from the repository into the grid to add a shared style to this component.

Formatting Rules

A list of rules about when to apply formatting. Click  Create New to add a new rule; see Formatting Rule.

CSS Properties

A list of CSS properties. Click  Create New to add a new CSS style; see CSS Properties.

Position Settings

FieldDescription
OrderThe order of the component.
Tab IndexThe order of the tab.
WidthThe width of the component; https://www.w3schools.com/cssref/pr_dim_width.asp
HeightThe height of the component; https://www.w3schools.com/cssref/pr_dim_height.asp
TopThe top of the component; https://www.w3schools.com/cssref/pr_pos_top.asp
LeftThe left of the component; https://www.w3schools.com/cssref/pr_pos_left.asp
RightThe right of the component; https://www.w3schools.com/cssref/pr_pos_right.asp
BottomThe bottom of the component; https://www.w3schools.com/cssref/pr_pos_bottom.asp
Prevent Dragging Tick to prevent a component from being dragged or resized when a screen is in edit mode.  This means you cannot accidentally move a component that you want to stay in a fixed position, such as a header or footer.

 Actions Tab

Event Handlers

This section has a toolbar with standard buttons

The grid contains a list of event handlers configured for this component. Event handlers use a user action, such as a mouse-click, to trigger a table-action or actionflow to run. To add an event handler:

  1. Click  Add New
  2. PhixFlow opens a new properties tab for the event handler.
  3. Select the Event Type, Action Method and specific table-action or actionflow you require; see Event Handler properties.

To remove an event handler, use the toolbar button  Delete.

Drop Targets

A list of rules of the action drop-targets on this component. Click  Create New to add a new drop-target; see Drag Types and Drop Targets and  /wiki/spaces/HELP91/pages/9050667181.

Mappings

This section is only available for components that can have actions, such as buttons, views and cards. This means you can map attributes that have different names. PhixFlow will evaluate all the mapped datasets when it runs the action.

 Security Tab

Access Permissions

See the Common Properties page, Access Permissions section.

 Audit Tab

Audit Summary

See the Common Properties page, Audit Summary section.

Creating Background Filters Within a Component

As well as using the properties tab to set up background filters, you can apply them within an unlocked screen or component that contains a grid view.

In the component, drag the column header from a grid view onto a form or card. This creates a background filter using the backing attribute. When you then select a different row in the grid view, the contents of the form or card is updated to show the details for the selected row.

If the backing table no longer contains an attribute that appears as a column header in the grid view, PhixFlow prompts you to select an alternative attribute of the same type, if one is available. If the backing table has no attributes of the same type, PhixFlow reports and error. 

Understanding Kanban Boards

A kanban board is a project tracking tool that shows work at various stages of a process. Each column represents a stage in the process. Each piece of work is represented by a card. 

Card components have properties so that you can easily create kanban boards. In the Kanban Board section, select an attribute from the backing table to define kanban columns, and optionally their headings. PhixFlow creates one card for each record in the table, and displays it in the appropriate column. To define the styles for the columns and headings, use the options in Style Settings.

There are two ways to move cards to different columns.

  • Either update the backing table. When you refresh the kanban board, PhixFlow automatically moves the cards to the columns that reflect their stage in the process.
  • Or drag a card from one column to another. PhixFlow automatically updates the values of its kanban attributes to reflect the target column. 

Example

The backing table for a component has the attribute Status, which can have the values:

  • Not started
  • In progress
  • Blocked
  • Done

PhixFlow uses these values to create 4 columns, and uses the status values as the headings. Each record is displayed as a card. The Status attribute determines which column the card is in. You can drag a card between columns, for example from Not started to In progress. In the backing table, PhixFlow updates the Status of the record to In Progress.

Component Pop-up Menu

Right-click on a component to show the pop-up menu. The options vary for different types of component. Options for screens will be listed:

  • either in the pop-up menu itself
  • or in the  screen Screen Options sub-menu.

In the following table, the menu options are grouped according to purpose. This may not be the order in which the options appear in the menu.

Menu optionDescription
Fixing and Moving

 Unlock 

When a screen is locked, unlock to make changes.
 Lock
Lock a screen to display the data content.

 Pin/Unpin Selected Objects Selected Objects

Pin or unpin a component. You can drag unpinned components to different locations in the screen. Unpinned components will move if another component is dropped on or near them.
 Lock HeightFix the height of the selected component.
 Turn Auto Size Off/On

Toggle whether or not the currently selected component is automatically auto sized when an application window is resized by the user.

Using this option, or manually resizing a component may change the state of the Component → Style Settings → Auto Size property; see Style.

 Arrange Selected Items sub-menu

Options to arrange the selected components:

 Align Objects to Left: Align the left edges of all the selected components to the component that is furthest to the left.

 Align Objects to Right: Align the right edges of all the selected components to the component that is furthest to the right.

 Align Objects to Top: Align the top edges of the selected components to the component that is positioned highest.

 Align to base: Align the bottom edges of the selected components to the component that is positioned lowest.

 Distribute Objects Horizontally: Equally distribute the selected components horizontally in the available space.

 Distribute Objects Vertically: Equally distribute the selected components vertically in the available space.

Information
 Show Element DetailsOpen the properties tab for the component.
 Screen PropertiesOpen the properties tab for the screen.
 Table PropertiesOpen the properties tab for the table.
 Show Context ParametersOpen the list of context parameters.
 Show attributes for <table>
Open the list of attributes for the table. This option is available when a screen or component has a backing table or view
 Show attributes for view <name>
Open the list of attributes for the table. This option is available when a screen or component has a backing view as well as a backing table or view.
 Show Record DetailsOpen a window showing the record.
 Find in RepositoryOpen the repository with the component's name highlighted.
 Add MappingOpen a new mapping properties tab.
Adding
 Create New FormFor new screens, add a form container.
 PaletteOpen the palette to drag in templates.
 Add Area on RightAdd a vertical bar to the current area.
 Add Area AboveAdd a horizontal bar to the current area.
Selecting
 Select all childrenFor the selected area or container, select all the components contained in it.
Copy as TemplateUse the selected item as a template. This also copies any background filter rules and data mapping to the template.
Deleting

 Delete 

Delete the selected component from the screen.

 Delete Selected Objects

Delete the selected component from the screen, and everywhere it is used.

Sections on this page

Learn More

For links to all pages in this topic, see Designing Screens.


Terminology changes in progress

As part of the redesign of PhixFlow, we are changing the following terms:

dashboard → screen   
stream → table
stream attributes → attributes
stream item → record
stream set → recordset
stream view → view
stream item action → record-action 
stream action → table-action
driver class → database driver