Recipe Editor Table

Sepasoft MES Module Suite

Recipe Editor Table | Vision

A component that is added to Ignition windows to manage a single recipe. This is just one method of managing recipes and for more information on the other methods see the Using the Recipe Editor | Vision section.

To use the recipe table you must supply an item path and recipe name then the table will populate with the related values.

It has the capability for end users to do the following recipe related tasks:

  • View the current tag values related to this recipe and equipment path. This can be set to update at a specific interval.
  • Manually adjust the recipe value before writing it down to the tags.
  • Update the selected recipe with the current live values.


Component Palette



Table Columns

The table coulmns displayed can be customized by using the standard Ignition table customizer available by right clicking on the table component in the designer. The available fields are:

  • Name

The recipe value name

  • Recipe Setting

The set value assigned in the recipe

  • Live Value

The current live tag value referenced by this recipe value

  • Manual Value

        A value that is manually set by the user. You must call a method of the component in order to have this value affect the recipe or the tag value.

  • Description

               The description of this recipe value

  • Units

               The units of this recipe value

  • Assigned By

               The assigned by name of this recipe value

  • Format

               The format of this recipe value

  • dataType

               The data type of this recipe value

  • tagPath
               The tag path referenced by this recipe value

Component Properties

Properties are provided that can be set to affect the operation and look of the component. They can be set through the Property Editor in the Designer or through scripting.

Example

Code
event.source.parent.getComponent('Recipe Editor Table').resizingAllowed = False

Behavior

Name Scripting Property Type Description
Row Selection Allowed rowSelectionAllowed boolean This flag is used in conjunction with the Column Selection Allowed flag to determine whether not whole-rows, whole-columns, or both (single-cells) are selectable.
Resizing Allowed resizingAllowed boolean Whether or not the user is allowed to resize table headers or not.

Data

Name Scripting Property Type Description
Item Path itemPath String Item path of the Recipe to view.
Recipe Name recipeName String Name of the Recipe to view.
Recipe Value Name Filter recipeValueNameFilter String Optional recipe value name filter to limit recipe values shown.
Data data Dataset Data for the table.
Live Update Interval liveValueUpdateInterval int Interval in seconds to update the live vale. values less than 1 will not update the live values.
Column Attributes Data columnAttributesData Dataset Dataset describing the column attributes.
Selected Row selectedRow int Index of the first selected row, or -1 if none.

Appearance

Name Scripting Property Type Description
Header Font headerFont Font Font designated for the table header.
Header Foreground Color headerForeground Color Foreground color of the table's header.
Header Visible headerVisible boolean Whether or not the table header is visible.
Initial Slide Position initialSlidePosition float Initial position to open the slide.
Maximum Slide Position maximumSlidePosition float Maximum position to open the slide.
Minimum Slide Position minimumSlidePosition float Minimum position to open the slide.
Row Height rowHeight int Height of each row, in pixels.
Odd Row Background oddBackground Color Color which odd rows will be colored if background mode is 'Alternating'.
Selection Background selectionBackground Color Background color of a selected cell.
Selection Foreground selectionForeground Color Foreground color of a selected cell.
Show Horizontal Grid Lines? showHorizontalLines boolean Displays horizontal gridlines making it easier to read.
Show Slide Gripper showSlideGripper boolean True to show the slide gripper or false to hide it.
Show Vertical Grid Lines? showVerticalLines boolean Displays vertical gridlines making it easier to read.
Grid Line Color gridColor Color Color used to draw grid lines.
Slide Font slideFont Font Font designated for the slide.
Slide Foreground Color slideForeground Color Foreground color of the slide.
Slide Background Color slideBackground Color Background color of the slide.
Slide Direction slideDirection int Direction of the slide panel to open it. Options: Left, Right, Top, Bottom.
Slide Type slideType int Type of the slide panel to open it. Options: Over, Out.
String Value Display Icon Path stringValueDisplayIconPath String Relative path of an icon image appearing for string value display.
String Value Edit Icon Path stringValueEditIconPath String Relative path of an icon image appearing for string value edit.

Event Handlers

Event handlers provide the ability to add custom script when a user interacts with a component.

cell

cellEdited

This event occurs when a component that can receive input, such as a text box, receives the input focus. This usually occurs when a user clicks on the component or tabs over to it.

Property Description
.source The component that fired this event.
.oldValue The old value in the cell that changed.
.newValue The new value in the cell that changed.
.row The row of the dataset this cell represents.
.column The column of the dataset this cell represents.

focus

focusGained

This event occurs when a component that can receive input, such as a text box, receives the input focus. This usually occurs when a user clicks on the component or tabs over to it.

Property Description
.source The component that fired this event.
.oppositeComponent The other component involved in this focus change. That is, the component that lost focus in order for this one to gain it, or vice versa.

focusLost

This event occurs when a component that had the input focus lost it to another component.

Property Description
.source The component that fired this event.
.oppositeComponent The other component involved in this focus change. That is, the component that lost focus in order for this one to gain it, or vice versa.

key

keyPressed

An integer that indicates whether the state was changed to "Selected" (on) or "Deselected" (off). Compare this to the event object's constants to determine what the new state is.

Property Description
.source The component that fired this event.
.keyCode The key code for this event. Used with the keyPressed and keyReleased events. See below for the key code constants.
.keyChar The character that was typed. Used with the keyTyped event.
.keyLocation Returns the location of the key that originated this key event. Some keys occur more than once on a keyboard, e.g. the left and right shift keys. Additionally, some keys occur on the numeric keypad. This provides a way of distinguishing such keys. See the KEY_LOCATION constants in the documentation. The keyTyped event always has a location of KEY_LOCATION_UNKNOWN.
.altDown True (1) if the Alt key was held down during this event, false (0) otherwise.
.controlDown True (1) if the Ctrl key was held down during this event, false (0) otherwise.
.shiftDown True (1) if the Shift key was held down during this event, false (0) otherwise.

keyReleased

Fires when a key is released and the source component has the input focus. Works for all characters, including non-printable ones, such as SHIFT and F3.

Property Description
.source The component that fired this event.
.keyCode The key code for this event. Used with the keyPressed and keyReleased events. See below for the key code constants.
.keyChar The character that was typed. Used with the keyTyped event.
.keyLocation Returns the location of the key that originated this key event. Some keys occur more than once on a keyboard, e.g. the left and right shift keys. Additionally, some keys occur on the numeric keypad. This provides a way of distinguishing such keys. See the KEY_LOCATION constants in the documentation. The keyTyped event always has a location of KEY_LOCATION_UNKNOWN.
.altDown True (1) if the Alt key was held down during this event, false (0) otherwise.
.controlDown True (1) if the Ctrl key was held down during this event, false (0) otherwise.
.shiftDown True (1) if the Shift key was held down during this event, false (0) otherwise.

keyTyped

Fires whenever a bindable property of the source component changes. This works for standard and custom (dynamic) properties.

Property Description
.source The component that fired this event.
.keyCode The key code for this event. Used with the keyPressed and keyReleased events. See below for the key code constants.
.keyChar The character that was typed. Used with the keyTyped event.
.keyLocation Returns the location of the key that originated this key event. Some keys occur more than once on a keyboard, e.g. the left and right shift keys. Additionally, some keys occur on the numeric keypad. This provides a way of distinguishing such keys. See the KEY_LOCATION constants in the documentation. The keyTyped event always has a location of KEY_LOCATION_UNKNOWN.
.altDown True (1) if the Alt key was held down during this event, false (0) otherwise.
.controlDown True (1) if the Ctrl key was held down during this event, false (0) otherwise.
.shiftDown True (1) if the Shift key was held down during this event, false (0) otherwise.

mouse

mouseClicked

This event signifies a mouse click on the source component. A mouse click the combination of a mouse press and a mouse release, both of which must have occurred over the source component. Note that this event fires after the pressed and released events have fired.

Property Description
.source The component that fired this event.
.button The code for the button that caused this event to fire.
.clickCount The number of mouse clicks associated with this event.
.x The x-coordinate (with respect to the source component) of this mouse event.
.y The y-coordinate (with respect to the source component) of this mouse event.
.popupTrigger Returns True (1) if this mouse event is a popup trigger. What constitutes a popup trigger is operating system dependent, which is why this abstraction exists.
.altDown True (1) if the Alt key was held down during this event, false (0) otherwise.
.controlDown True (1) if the Ctrl key was held down during this event, false (0) otherwise.
.shiftDown True (1) if the Shift key was held down during this event, false (0) otherwise.

mouseEntered

This event fires when the mouse enters the space over the source component.

Property Description
.source The component that fired this event.
.button The code for the button that caused this event to fire.
.clickCount The number of mouse clicks associated with this event.
.x The x-coordinate (with respect to the source component) of this mouse event.
.y The y-coordinate (with respect to the source component) of this mouse event.
.popupTrigger Returns True (1) if this mouse event is a popup trigger. What constitutes a popup trigger is operating system dependent, which is why this abstraction exists.
.altDown True (1) if the Alt key was held down during this event, false (0) otherwise.
.controlDown True (1) if the Ctrl key was held down during this event, false (0) otherwise.
.shiftDown True (1) if the Shift key was held down during this event, false (0) otherwise.

mouseExited

This event fires when the mouse leaves the space over the source component.

Property Description
.source The component that fired this event.
.button The code for the button that caused this event to fire.
.clickCount The number of mouse clicks associated with this event.
.x The x-coordinate (with respect to the source component) of this mouse event.
.y The y-coordinate (with respect to the source component) of this mouse event.
.popupTrigger Returns True (1) if this mouse event is a popup trigger. What constitutes a popup trigger is operating system dependent, which is why this abstraction exists.
.altDown True (1) if the Alt key was held down during this event, false (0) otherwise.
.controlDown True (1) if the Ctrl key was held down during this event, false (0) otherwise.
.shiftDown True (1) if the Shift key was held down during this event, false (0) otherwise.

mousePressed

This event fires when a mouse button is pressed down on the source component.

Property Description
.source The component that fired this event.
.button The code for the button that caused this event to fire.
.clickCount The number of mouse clicks associated with this event.
.x The x-coordinate (with respect to the source component) of this mouse event.
.y The y-coordinate (with respect to the source component) of this mouse event.
.popupTrigger Returns True (1) if this mouse event is a popup trigger. What constitutes a popup trigger is operating system dependent, which is why this abstraction exists.
.altDown True (1) if the Alt key was held down during this event, false (0) otherwise.
.controlDown True (1) if the Ctrl key was held down during this event, false (0) otherwise.
.shiftDown True (1) if the Shift key was held down during this event, false (0) otherwise.

mouseReleased

This event fires when a mouse button is released, if that mouse button's press happened over this component.

Property Description
.source The component that fired this event.
.button The code for the button that caused this event to fire.
.clickCount The number of mouse clicks associated with this event.
.x The x-coordinate (with respect to the source component) of this mouse event.
.y The y-coordinate (with respect to the source component) of this mouse event.
.popupTrigger Returns True (1) if this mouse event is a popup trigger. What constitutes a popup trigger is operating system dependent, which is why this abstraction exists.
.altDown True (1) if the Alt key was held down during this event, false (0) otherwise.
.controlDown True (1) if the Ctrl key was held down during this event, false (0) otherwise.
.shiftDown True (1) if the Shift key was held down during this event, false (0) otherwise.

propertyChange

propertyChange

Fires whenever a bindable property of the source component changes. This works for standard and custom (dynamic) properties.

Property Description
.source The component that fired this event.
.newValue The new value that this property changed to.
.oldValue The value that this property was before it changed. Note that not all components include an accurate oldValue in their events.
.propertyName The name of the property that changed. NOTE: remember to always filter out these events for the property that you are looking for! Components often have many properties that change.


Extension Functions

getBackgroundAt

  • Description

Called for each cell, returns the appropriate background color. Do not block, sleep, or execute any I/O; called on painting thread.

  • Parameters

self - A reference to the component that is invoking this function.

row - The row index of the cell.

col - The column index of the cell.

isSelected - A boolean representing if this cell is currently selected.

value - The value in the table's dataset at index [row, col].

defaultColor - The color the table would have chosen if this function was not implemented.

  • Return

Default color

  • Scope

Client

getForegroundAt

  • Description

Called for each cell, returns the appropriate foreground (text) color. Do not block, sleep, or execute any I/O; called on painting thread.

  • Parameters

self - A reference to the component that is invoking this function.

row - The row index of the cell.

col - The column index of the cell.

isSelected - A boolean representing if this cell is currently selected.

value - The value in the table's dataset at index [row, col].

defaultColor - The color the table would have chosen if this function was not implemented.

  • Return

Default color

  • Scope

Client

getDisplayTextAt

  • Description

Called for each cell, returns a String which will be used as the text of the cell. Do not block, sleep, or execute any I/O; called on painting thread.

  • Parameters

self - A reference to the component that is invoking this function.

row - The row index of the cell.

col - The column index of the cell.

isSelected - A boolean representing if this cell is currently selected.

value - The value in the table's dataset at index [row, col].

defaultText - The string the table would have chosen if this function was not implemented.

  • Return

Default text

  • Scope

Client

filterRow

  • Description

Called for each cell, returns a Boolean indicating if this row is to be filtered from view. Do not block, sleep, or execute any I/O; called on painting thread.

  • Parameters

self - A reference to the component that is invoking this function.

row - The row index in the dataset.

unfilteredData - The dataset before filtering.

  • Return

Boolean

  • Scope

Client

getStringValueOptions

  • Description

Get the options for the string values of the recipe.

  • Parameters

itemPath - The item path.

recipeName - The recipe name.

valueName - The recipe value name.

  • Returns

List of string values.

  • Scope

Client




Custom Methods

Custom methods allow you to add your own component functions to a component that can be called through scripting. This is a useful and clean method of re-using script that is specific to the component (say you want to update a visual aspect of the component in the same way whether a user clicks on the component or a window property value changes). See Component Custom Methods in the Ignition Help Manual for more information.


Customizers

Table Customizer 

Table Customizer manages the data entered into the Recipe Editor Table. It will allow you to modify the data which is stored inside the Recipe Editor Table. Thus the formatting and alignments are made easy.

Column Configuration

Header - Provide a custom name to the column header.

Hide? - Hides the column.

Editable - Allows the editing of the cell pertaining to the column.

Sortable - To make a column filter the data on user's demand.

Sortable - Allows the user to sort the table according to the selected column.

Horiz Align - Aligns the contents of the column.

Vert Align - Aligns the contents of the column.

Wrap Text? - Data in the cell wraps to fit the column width. When you change the column width, data wrapping adjusts automatically.

Prefix - A custom text that proceeds the contents of each cell.

Suffix - A custom text that follows the contents of each cell.

Number Format - A format of the cell is the contents of the cell are number types.

Date Format -  Used if the contents of the cell are date types.

Boolean? - Changes the contents of the cell to reflect a 'check box' look and feel.


Component Functions

This component provide the following functions that can be called on it. If this component has been dropped onto the windows root container, the path and an example call would be event.source.parent.getComponent('Recipe Editor Table').activeRecipe().


activateRecipe()
  • Description

This script will activate the current recipe name on the selected item path using the Manual Values entered in the table.

  • Parameters

None

  • Return

A String representing any error that was encountered. The string will be blank if the recipe was successfully activated.

  • Scope

Client

cancelRecipe()
  • Description

This script will end the currently active recipe on the selected item (equipment) path.

  • Parameters

None

  • Return

A String representing any error that was encountered. The string will be blank if the recipe was successfully activated.

  • Scope

Client

Python
#Sample script to activate the currently viewed recipe:   recipeEditorTable = event.source.parent.getComponent('Recipe Editor Table') result = recipeEditorTable.activateRecipe() if result != '':  system.gui.messageBox(result, "Recipe activation error")

reset()
  • Description

This script will reset the manual values to the recipe settings value.

  • Parameters

None

  • Return

None

  • Scope

Client

saveRecipe()
  • Description

This script updates the settings for the recipe with the current live recipe values.

  • Parameters

None

  • Return

A String representing any error that was encountered. The string will be blank if the recipe was successfully activated.

  • Scope

Client

updateLiveValues()
  • Description

This script updates the live values of the recipe referenced tags in the table.

  • Parameters

None

  • Return

A String representing any error that was encountered. The string will be blank if the recipe was successfully activated.

  • Scope

Client


 

Sepasoft MES Module Suite