> Customized Panes

Customized Panes

Customized panes provide a mechanism for you to create your own panes directly within a SYSPRO program.

Customized panes can be created within any docking pane application in SYSPRO. Because they are docking panes, they can be dragged from their current location and repositioned, left to float in a more suitable location, or minimized to a sidebar tab. If embedded within a SYSPRO program, it opens and closes as the corresponding program opens and closes.

A single customized pane can be added to a program to perform a specific task, or many can be added to a program so that they work together.

Each customized pane can have its own VBScript code associated with it which can be used to call SYSPRO's business objects to process or retrieve information. When called correctly from within the customized panes, business objects do not need to be licensed.

You can create desktop alerts (i.e. popup windows) that can have hyperlinks to SYSPRO programs and/or executables. You can cause refresh events to be posted to a customized pane from another form, listview or indeed another customized pane. A GlobalVariable is uniquely associated with each customized pane which can be used, for example, to determine if a desktop alert should be invoked or if the alert has already been displayed.

A customized pane can interact with other customized panes and any other entry or display form or listview that is associated with the same docking pane application. You can automate a customized pane to refresh itself after a specified period of time.

Using role-based security in conjunction with the customized panes, enables a group of operators to have a completely unique working environment.

Templates

Of the customized pane types available, a number of them include the option of selecting from a list of fully-functional pre-built templates (i.e. graph, listview, and executive dashboard).

As they do not communicate directly with the SYSPRO program, these customized pane templates can be created either against the SYSPRO main menu screen, or within any SYSPRO program.

VBScript in Customized Panes

  • The power of a customized pane is derived from the macro events and VBScripting. The customized panes for all object types have the same core macro events, however, some have additional macro events to cater for functionality specific to their object type (e.g. the OnRowSelected event is fired when you click on a listview row).

    Each object type can also have variables that can be used in the VBScripting that are specific to the object type (e.g. arrays that enable you to retrieve the values in the listview row that was clicked and those to retrieve the contents of an RTF file for the Rich Text Notepad object type).

  • A customized pane can be configured to have the OnRefresh macro event fired programmatically by other panes within the same program, or to fire the event at regular intervals. This keeps the displayed information up to date, even if the operator is not interacting with it.

  • When passing multiple pieces of information through to the customized pane using VBScript, do not use a semi-colon (;) as the delimiter as SYSPRO already uses this as its own delimiter. If the semi-colon is used, only the first piece of information will be received by the customized pane and placed in the RefreshValue variable. In addition, note that using a space as your delimiter could prove problematic if one of your pieces of data contains a space.

Resetting the contents of a customized pane form object

You can reset the content of a customized pane form using VBScript code that passes a space character to the UpdateFormValues variable (this variable is the one that you would normally use to populate the form, and is found in the CustomizedPane section within the Variables pane).

Passing multiple values to a customized pane from another pane

A pane within the same program as a customized pane can force the customized pane to fire its OnRefresh macro event, and at the same time it can pass through a string of text.

This is done as follows:

  1. Locate the CustomizedPanes section within the Variables pane.

  2. Double-click the variable representing the customized pane to be refreshed.

    When you double-click on the name of the customized pane, the Define Action for screen is displayed and this screen enables you to specify how the customized pane is to be refreshed.

    The default is to pass through the text value doRefresh.

    The maximum size of the text that can be passed through to the customized pane is 80 characters, however you are not limited to passing through only one piece of information.

    [Note]

    When passing through multiple pieces of information, you need to have a character to delimit where the different pieces of information start and stop (The more commonly used characters for delimiters are a space or a comma).

    When the customized pane is refreshed, the value passed through is available within the RefreshValue variable in the Variables pane.

    If you are passing through multiple pieces of information in the RefreshValue variable, they will appear as one string. You need to be able to separate them out within the VBScript code of the customized pane.

    This can be performed using the Split function.

    The Split function needs to be given the full name of the RefreshValue variable, along with the delimiter so that it knows how to split up the contents of the variable.

.NET User Controls

If you host a .NET User Control in a customized pane, and you use the ExecuteScript request event to execute a VBScript directly from within your control, you can return a value to your user control as the second parameter, by returning the string in the function call.

To return a value to your user control from the VBScript function, assign the value to the name of the function:

Function getNumber

getNumber = "423"

End Function

The value '423' will be returned in the second parameter of the call statement.

[Note]

Only 32-bit managed assemblies can be used as the SYSPRO process is a 32-bit application. 64-bit user controls can therefore not be used.

Notes and warnings

Role-based considerations

  • If you are a member of a role, then you can only add a customized pane to a SYSPRO program if you are in Design Mode for roles. The only exception to this is the SYSPRO Main Menu (i.e. you can add customized panes to the SYSPRO Main Menu if you are not in Design mode).

    In addition, role-based security is not applied to customized panes added to the SYSPRO Main Menu.

Activity considerations

  • Operator access to the following activities within this program can be restricted. You configure this using the Operators program.

    Activity Description
    VBScript editing Controls whether an operator can edit VBScripts or change customized panes. It also controls whether an operator can access the Visual Designer program (displayed from the submenu of the icon). This does not apply to importing customized panes, which is controlled by the Allow to import customized panes activity.
    Allow to import customized panes Controls whether an operator can import customized panes into any application with a docking layout when the operator does not belong to a Role.

    This includes using the Click to Import Customized Panes function of the Executive View pane.

Exporting considerations

  • You can export customized panes from any docking pane and import into a different docking pane layout (i.e. the customized panes do not have to be imported into the same docking pane application). For example, you could export customized panes from your Main System Menu and then import them into your Customer Query application.

    You can export customized panes from one operator and import them into a different operator.

    If you are in Design mode for a role (or by system-wide or industry) then the panes defined for that role for the current application are displayed.

    When not in Design mode, the panes created for the current operator for the current application are displayed.