Welcome to Sable

Sable GUI Software for Vensim

Sable Developer is designed to assist Vensim modellers in the creation of user-friendly graphical user interfaces (GUI) for their Vensim models. Sable has been designed to be as easy to use as possible without sacrificing flexibility. Sable Runtime is a free to distribute run-time version of Sable.

Tutorial

  • Start a Sable Project

Project Features

  • Screens
  • Objects
  • Directory Structure
  • Workspace
  • Design Mode
  • Run Mode

Sable Tools and Menus

  • Menu Bar
  • Tool Bar

Advanced Functions

  • Scripts
  • Publishing
  • Sub Projects
  • ActiveX
  • Subscript Mapping
  • String Tables
  • Linked Controls
  • Template Screens

Resources

  • About Sable
  • FAQ


Sable Developer Help

About Sable

Sable is developed by

Ventana Systems UK Ltd.
Wilsons Steynings House,
Fisherton Street,
Salisbury, Wiltshire.
SP2 7RJ, United Kingdom

Telephone +44 (0) 23 8090 9838
Facsimile +44 (0) 709 202 4736
Web http://www.ventanasystems.co.uk

General E-Mail
info@ventanasystems.co.uk

Support E-mail
Sablesupport@ventanasystems.co.uk

Support Telephone
+44 (0)23 8090 9838

Copyright, Ventana Systems UK Ltd, 2006


FAQ

Sable Developer Help

Frequently Asked Questions

If you have a question, please send it to Sablesupport@ventanasystems.co.uk, it will be added to the list.

Questions

How do I attach a button to a graph?
How do I change the model that Sable is using?
How do I make use of the Vensim redistribution DLL?
Sable cannot use the Vensim minimal DLL. Why?
There is an edit-box in my project that is displaying a "rubbish" value. Why?
How do I get Vensim to run a compiled model?
How do I make use of a Vensim external function library?
I have a screen from an old project and would like to use it in another. How do I do this?
How do you use a Vensim custom graph?
I have an edit box, and no value is appearing. Why?
How do I make use of a vensim.ini file?
How do I insert a graphic into a screen?
How do I change the starting screen for a project?
How do I make use of a Vensim toolset?
Can I plot one variable against another in TChart?


Start a Sable Project

Getting Started

Sable projects are developed in a simple fashion by following the steps below. Advanced features can be used to create more powerful features, but most basic interfaces can be created using nothing but the simple tools and processes outlined here.

Create a project

Design a project

Distribute a project


Create Project

Create a Project

The first thing to do is to create a Sable Project.

1. Start Sable Developer

2. On the "New" tab, click on "Sable Project"

3. Click on "Open" (or double-click on "Sable Project")

4. Enter a name for the project.

5. Browse to the location on your hard drive to create and store the Sable Project. When the project is created, a directory with the name entered in step 4 will be created below the directory chosen in step 5, and all project files placed in it's sub-directories.

6. Browse to the Vensim model to be included in the Sable Project. The Vensim model must be in *.vmf or *.vpm format. Note that the chosen model will be copied from it's original location to the "model" subdirectory of this project.

7. Click on "Ok"

A Sable project has now been created with a single screen (named "main.vnn"). Navigate to the directory named in steps 4 and 5 above and take a look at the Sable project directory structure or open the project workspace. Under the Files tab in the workspace you will see displayed all the directories making up a Sable project, together with any files so far created. Use the workspace to add and delete files.

8. Now design you project.


Design a Project

Project design is a matter of producing a simple-to-use interface between the user and the Vensim model. The nature of the design will depend on a number of factors; the intended audience and the nature of their interaction with the model (are they a group of senior decision makers requiring rapid access to a limited number of assumptions and/or outputs? Are they a decision support team requiring to setup, run and analyse scenarios in depth?), the type of interaction (simulation, game), the purpose of the interaction (run and compare scenarios, learn how the system operates..).

A general rule-of-thumb is to design the simplest interface possible in order to achieve the required level of interaction with the model.

The following sections describe how to get started in designing and creating a Sable Project, with an examples for simulation design.

  • Once the Project has been created, select a relevant project size using the advanced tab of the project workspace.
  • Enter design mode.
  • Sable automatically creates the first screen and names it main.vnn, with "vnn" being the suffix used for Sable screen and mini-screen files. The screen is stored under the screens and mini screens sub directories.
  • Add objects to the main screen.
  • Create additional screens as necessary.
  • Enter run mode to test the project (at any stage)

Example project designs:

Simulation interface

Other design options


Simulation Interface

This section describes the creation of a simple interface design to allow a user to simulate a model and analyse the results.

1. Screens and navigation

Sketch out a basic design, screen by screen, to include purpose of each screen and any navigation buttons required.

The above diagram shows a simple simulation interface comprising 4 screens and specific inter-screen navigation options.

2. Create project screens

2.1 The Welcome Screen

2.2 The View/Edit Data Screen

2.3 The Simulation Screen

2.4 The Analysis Screen


Simulation Welcome Screen

Simulation Interface: Welcome Screen

It is useful to start with a simple welcome screen to include information about the project;

  • Project name
    Use the Text tool to add the name of the project.
  • Copyright information
    Use the Text tool to add relevant copyright information

Navigation

1. Use the button tool to create navigation links to the View/Enter Data and Analysis screens.


Simulation ViewEdit Screen

Simulation Interface: View/Edit Data Screen

Although optional, it is useful to give users the ability to view and change assumptions in the model. There are a number of ways to achieve this;

  • Present data on the screen using edit box, combo box, list box, slider, radio button and check button objects.
  • Provide the ability to select from a list of data files.
  • Combination of the two.

I want to;

1. Use objects to present data and allow changes to the data.

2. Provide a means for the user to select from data files.


Simulation Display Data Objects

Simulation Interface: View/Edit Data Screen: Display Data Objects

  • Use the edit box to create data fields on the screen
  • Use the button tool with the command "Venapp>SIMULATE>READCIN|{cinfile}" to load an existing, previously saved data record where {cinfile} refers to the name of the Vensim "cin" file holding the saved data. A "?" can be used in place of the {cinfile} entry to invoke a dialog box requesting the user select from a list of cin files (SIMULATE>READCIN|?Message). "Message" is optional and will appear in the title bar of the dialog box. Data found in the selected cin file will be loaded into the relevant data fields on the screen.
  • Use the button tool with the command "Venapp>SIMULATE>WRITECIN|{cinfile}" to save any changes in the data, where {cinfile} refers to the name of the Vensim "cin" file to hold the saved data. A "?" can be used in place of the {cinfile} entry to invoke a dialog box requesting the user a name for the cin file (SIMULATE>WRITECIN|?Message). "Message" is optional and will appear in the title bar of the dialog box.

Navigation

1. Use the button tool to create navigation links to the simulation and welcome screens.


Simulation Display Data Objects

Simulation Interface: View/Edit Data Screen: Select Data

  • Use buttons on the screen to allow users to select from a list of alternative scenario files. Use the button command "Venapp>SIMULATE>READCIN|{cinfile}" where {cinfile} refers to the name of the Vensim "cin" file holding the data.
  • Use Edit Box objects to display any or all of the assumptions found in the scenario data file.

Navigation

1. Use the button tool to create navigation links to the simulation and welcome screens.


Simulation Screen

Simulation Interface: Simulation Screen

This screen serves to assist the user in running the simulation. A very basic design would include;

  • A button to run the simulation
  • Some output (perhaps Graph) to show immediate, key output
  • Display 2D and 3D graphs using the inbuilt TChart software. Use the graph command with a button to allow the user to configure the graph displayed at run time. For example, use a single graph to display a key performance indicator (KPI) and use multiple buttons to enable the user to select from a number of KPI's to display.

Example;
In this example, a single screen is used to allow interaction with the model through SyntheSim (see the Vensim help system for details).

Navigation

1. Use the button tool to create navigation links to the analysis and welcome screens.


Simulation Welcome Screen

Simulation Interface: Analysis Screen

The analysis screen should contain enough interactive tools to facilitate analysis of simulation results, including comparisons between multiple runs. Sable provides a number of tools for displaying simulation results.

The edit box tool can be used to display values at specified times. Use this tool to display results at special time, initial time or final time (see the Vensim help system for definitions). If displaying results at special time, use the slider bar or another edit box to set the value of special time. This allows the user to select the time for which the results should be displayed.

The text tool can be used to output model results, simply enter the variable name between @@ symbols.
e.g. Average profit at month @time@ was £@average profit@ will display "average profit at month 12 was £3,250". The values displayed will be at final time.
(Use the @VDF:0:%.4f,special time:variable name@ format to output results at times other than final time. )

Use the Vensim tool to display any of the tools in the current loaded toolset, such as graph, table, causes tree etc. Use the Vensim tool command with a button to allow the user to configure the tool displayed at run time. For example, use a single Vensim tool to display a graph, but allow the user to change the Vensim tool displayed from graph to table or causes tree.

Display 2D and 3D graphs using the inbuilt TChart software. Use the graph command with a button to allow the user to configure the graph displayed at run time. For example, use a single graph to display a key performance indicator (KPI) and use multiple buttons to enable the user to select from a number of KPI's to display.

Navigation

1. Use the button tool to create navigation links to the Welcome screen.


Distribute a Project

Once the Sable project is complete and has been tested, you may wish to make it available to the user.

Simply provide the user with the Sable Project files and a copy of the Sable Runtime application. That's it. They do not need Vensim or Sable licenses to be able to run your application.

A simpler method for distribution would be to publish the application and distribute the resulting *.spk file with a copy of Sable Runtime.

Although simply copying the project files to the user machine would work, you may wish to create an install routine using one of the many install-builders on the market, such as Wise Installmaster. Include the Sable Runtime installer in your custom installation script/routine.


Sable Developer Help

Screens

Sable project screens form the backbone of any Sable project. Sable objects such as buttons and graphs are all added to screens in order to provide the user with the required functionality and interaction with the underlying Vensim model. There are two main types of screen;

Main Screen
Mini Screen

  • Creating, Copying, Deleting and Importing Screens

Create a Screen

  • Use the menu item file>new or use the new tool from the standard tool bar
  • Double-click on the screen or mini-screen icon as required, or single-click then select open.
  • Enter a name for the screen when prompted.
  • Click Ok, the newly created screen will be displayed and saved in the relevant directory of the project.

Copy a Screen

  • Open the screen (if not already displayed) by either navigating to it in the project or using the project workspace.
  • Select menu item file>Save As
  • Navigate to the relevant directory to save a copy of the screen. This need not be in the current project, but needs to be in the correct, relevant directory of the chosen project, i.e. screens in the screens directory, mini screens in the mini screens directory.
  • Enter a name for the screen (the suffix ".VNN" will be automatically added to the entered name.
  • In order to make use of a copied screen in the current or any other project, use the import feature described below.

Delete a Screen
In order to delete a screen;

  • Open the project workspace
  • On the Files tab right-mouse click on the file to be deleted and select remove.
  • Either select remove from project or remove from project and delete from disk. If the latter, then ensure that the screen to be permanently deleted is not currently being displayed by the project, or the deletion will not work.

Import a Screen into the Current Project
A screen from another project or a copy of a screen from the current project, if it is to be used in this project, needs to be imported first.

  • Open the project workspace
  • On the Files tab, right-mouse click on the Screen Files or Mini Screen Files directory name or on any of the files in the selected directory and select add file.
  • Navigate to the relevant directory of the current or any other project and select a screen file to add to this project.
  • Click on Open
  • Properties
    Right-mouse click on the screen and select "properties" or, if the "properties" dialog is already open and displaying the properties of an object, make sure the dialog remains on top of the screen by clicking the "pin" icon in the top-left of the dialog, then left-click on the screen.
Template Screen
 Check to use another screen as a template for this screen. See template screens for further details.

Advanced
 Enter a screen title to be displayed on the screen title bar in Sable runtime. For a main screen, the screen title will only be displayed if the include file name check box in the properties tab of the project workspace has been checked. For mini screens, the custom screen name entered here will always be displayed.

Check the String Table box if the screen title reads from a string table and enter the integer reference to the string table entry in the screen title field

Check the Override close screen button if you would like a script to run before the mini screen is closed. For example, you may wish to check the user has completed something before the mini screen is closed. The script will need to perform the check and, if ok, it will need to close the mini screen.

Fill
 The default setting is to use the windows default colour. This is defined by each user using the display settings of the computer. This is normally a safe setting, as users often set up colour schemes that they like, and a Sable interface configured like this will match their settings.

If the default setting is not required, the fill colour drop down box becomes active. Click to select a screen colour.

Sable can also use gradient fills. To select one of these, select either vertical or horizontal as the "Gradient Type". The "Gradient Colour" drop down box will now become active. Select a second colour to complete the gradient.

Image
 Sable can use any bitmap or JPEG as a background (from the "Images" directory of the project.) Select anything other than none and the "File" drop down box will become active. Click this and you can select one of the available images.

Activation
 Activation commands are carried out whenever a screen is displayed.

The use of this property pages is identical to that for buttons. Please refer to the link for a list of available commands and how to use the property pages.

Deactivation
Deactivation commands are carried out when a screen is closed or dismissed.

The use of this property pages is identical to that for buttons. Please refer to the link for a list of available commands and how to use the property pages.

Menu
 This option allows you to design a custom menu for your project.

Linked Controls
 Use objects in this screen already existing in other screens. See linked controls for details,


Main Screen

Sable Developer Help

Screen: Main Screen

The main screen is a type of screen or "page" in a Sable project. All object types can be placed on these pages to give the user the required functionality. A main screen will be sized to the same size (resolution) as the project itself, navigation between screens is made possible through the addition of button objects.


Mini Screen

Sable Developer Help

Screen: Mini Screen

A mini screen is a type of screen or "page" in a Sable project. All object types can be placed on these pages to give the user the required functionality. Unlike a main screen, a mini screen is independent of the project in that it's size is determined by the developer and not by the project resolution. It is, therefore, a type of "pop-up" screen.


Sable Developer Help

Objects

Objects are used by Sable to allow the user to interact with the simulation. There are two classes of objects:

  • Control objects
  • Display objects
  • Common Features
  • Adding and moving an object

    Any object type can be added to any screen in the following way.
    • Select the object type button from the “controls” toolbar or use the “Insert” menu option to insert the object type.
    • Click on the screen where the object is to be inserted.
    • Move an object by clicking on the object and dragging it to a new location on the screen.
    • Move multiple objects
      • Select multiple objects by dragging a selection box around the objects to be moved, or holding the <shift> button down and clicking on the objects to be moved, then
      • Release the ,shift. button and click-and-hold on the shaded edge of one of the selected objects then drag the lot to another location.
  • Cut/Copy/Paste/Resize Objects
    • Cut
      Right-mouse-click on the object and select “cut” from the menu or.

      Select object then select menu item Edit>Cut.
    • Copy
      Right-mouse-click on the object and select “copy” from the menu or

      Select object then select menu item Edit>Copy.
    • Paste
      Right-mouse-click on the desired location on the screen and select “paste” from the menu or

      Right-mouse-click on the desired location on the screen the select menu item Edit>Paste.
    • Resize
      To resize an object, select the object. A number of “handles” will appear around the edge of the object. Click and drag these handles to change the object shape and size.
  • Aligning objects

    Sable has a number of tools enabling rapid alignment of objects placed on a screen.

    To align objects;
    • Select two or more objects to be aligned by clicking and dragging a selection box around the objects. All selected objects will be highlighted (you will see a checked border around each selected object. Alternatively, holding the shift button down on the keyboard, click on each of the objects to be aligned.

      All objects will be aligned to the last selected object.
    • Alternatively, click on the desired align tool from the align toolbox or use the menu options under layout>align.
  • Object Properties

    Each object on the screen (and including the screen itself) has properties designed to control the way in which the object behaves. Properties can only be accessed in design mode.
    • How to access
      Right-click on the object and select “properties” from the drop-down list, or use the menu option view>properties.


Control Objects

Sable Developer Help

Control Tools

  • Button
  • Check Button
  • Radio Button
  • Slider
  • Combo Box
  • List Box
  • Edit Box


Button

Sable Developer Help

Object Type: Button

What is it for

The button tool provides users with the ability to action commands at the click of a button.

Properties

  • General

    Caption
    Enter a caption to appear on the button

    Tooltip
    Enter text to appear when the user hovers the cursor over the button. You can use the text entered in the comment field of the Vensim equation editor for any of the variables in the project model by clicking on the “description” button. On doing so, you will be asked to select a variable from the drop-down list, review the comment and select “ok” or “cancel”.

    Use String Table
    Check this box if the caption and/or tooltip is to use text from the project string table.

    Border
    Check box to add a thin border around the object.

    Transparent
    Check this box if the button is to be transparent.

    Disabled
    Check this box if the button is to be disabled when a screen opens.

    Update other controls
    Check this box if the actions of this button should result in other controls on the screen being updated.

    WIP
    Not required on button object

    Script
    Click this button to access any script commands included in the project. Any available commands will appear in the drop-down box. Selecting a command will activate that command when the button is clicked.

    If no commands appear then no script file has been created for the project, or the script file is empty.

    If more than one script command is to be executed, use the “button” tab functionality to cascade multiple commands.

    Control ID
    A unique identifier allocated to the object when it is created.

    Help ID
    Reference to the relevant help text in the user-defined help file for the project.

    Tab Order
    Enter a numeric figure for the order in which each object on the current screen would be highlighted when the user hits the “tab” key.
  • Appearance

    Act on conditions
    Use the Act on Conditions check box to allow button appearance to be set for one of two conditions;
    • Normal
    • Button was the last one clicked

    The normal setting will be displayed if the button was not the last button clicked, the alternative condition will be displayed otherwise.

    Font
    Click here to view/change the font for the caption appearing on the button. Select the font type, size, colour and style.

    Fill colour
    Click to select a colour for the button. If the button “transparent” check box has been checked, this fill colour is ignored.

    Default windows colour
    Select to force Sable to display buttons in the colour chosen by the user of the computer on which the application is running.

  • Extended Styles

    Select from 3 style types or combine them to create the desired appearance
  • Button
    Here you can enter a number of commands to be executed in sequence. There are four buttons in the command window having the following functionality

    Insert a new command
    Click this button to insert a new command

    Double-click the command entry under the “type” column to access a list of command types.

    When the command type is selected, double click to the right of the commands window to display a select box. Click on this to allocate a command.

     Delete the currently selected command

     Move the currently selected command up

     Move the currently selected command down

    When more than one command is created for a button, if a command in the sequence fails, for whatever reason, the remaining commands will not be activated. To override this behaviour, check the Continue if False" check box.
    • Button Command Types
      • External

         These commands are only of use when using the Ventana Systems UK External function library.

        Display DataCentre Dialog:- This shows the dialog for distributed simulations using the DataCentre

        Display External Function Version:- This displays version information for the external function library.

        Display Game Recorder Dialog:- This shows the game recorder dialog.

        Display Memfile Tools Dialog:- This displays the dialog for manipulation of mapped memory files.

        Edit model.ini:- Opens windows notepad with a file called model.ini in the model directory.

        Map DDE Settings:- Opens up the DDE configuration dialog for Vensim/MapInfo communication.

      • Graph

        All graph commands require a valid graph ID number to operate correctly. The graph ID number is available from the general property page of the graph you want to link the button to. See the graph help topic for a detailed explanation of the commands below.

        Export

        Exports the graph to a file (multiple formats available).

        Load

        Loads a pre-defined graph.

        OnlyShowParameter

        Removes all variables from a graph and displays only the specified one.

        Page-First

        If the graph has pages, moves to the first page.

        Page-Last

        If the graph has pages, moves to the last page.

        Page-Next

        If the graph has pages, moves to the next page.

        Page-Previous

        If the graph has pages, moves to the previous page.

        Parameter-Add

        Adds a variable to a graph. Use the "RHS Axis" checkbox to use the right-hand vertical axis for this variable.

        Parameter-Remove

        Removes a variable from a graph.

        Print

        Displays the print preview dialog.

        Properties

        Displays the graph property page. Here you will have the option to use a Vensim Savelist (see Vensim help for details of Savelist). The save list must contain a list of current model variables and be located in the model directory of the project.

        Save

        Saves the graph (if any changes have been made).

        Settings

        Displays the graph settings.

        Table

        Displays a table of data used to construct the graph, into a new window.

        Time Base

        Sets or changes the time base for the graph.

        Time Interval

        Changes the time at which the graph is displaying (pie and bar charts only).

        Update

                Update the graph with changes made.
        Set X-Min (X-Max, Y-Min, Y-Max) | Sets the axis bounds
        Set X(Y) -Axis automatic | Use to select an automatic axis range from the displayed data
        Set number of pages | If the graph has pages, set the number of data points per page (in effect setting the number of pages required)
        Set Labels | Provide runtime access to the set labels dialog (toggle labels on/off and select style)
        Copy to clipboard | Copy the graph to the clipboard
        Reset graph | Reset the graph (all variables will be removed)

      • Link
         Use this command to allow the user to navigate to another screen in the project. Select the type of screen (screen or mini screen) and then the screen to navigate to.
      • Process
         The process command executes any valid command line process. Enter the command string (including any command line parameters). For example; "notepad.exe readme.txt" will start the notepad application and open the file "readme.txt".
      • Simulation
         The simulation class of command allows the starting, continuing, running and ending of a simulation

        Continue
        Continue a stopped simulation

                 Run
        Run a simulation

        Stop
        Stop a simulation

        Continue Game
        Continue a game (go forward another game interval)

        Run Game
        Start a game.
      • Subscript Grid
         The subscript grid command displays a subscript grid. Use this command to display a grid of values for a subscripted constant. If the constant has >2 subscripts, 3rd and subsequent subscripts will be selectable from a drop-down box. The user can enter new values in the grid cells.

        Select a subscripted parameter for use within the subscript grid using the drop down box. Then select a width and height for the subscript box. These are measured in screen pixels. Finally select the number of decimal places to be shown in the subscript grid.
      • Venapp
        A button can execute any valid venapp command.

        Select the venapp class of command and the actual command and then click "Add". The command will be added to the edit box. You can concatenate commands by clicking the "Next" button (to insert an & sign, see Vensim manual for more details).
      • Vensim Tool Command
         This feature allows the user to change a Vensim Tool displayed on the screen. At present, you can change the tool being displayed, or export its contents.

        Select a Vensim tool object displayed in the current screen by using the search button adjacent to the Vensim tool ID field.

        Either select a Parameter to be displayed on the object or check the Use workbench variable check box to display the current workbench variable (see Vensim help for a description of the workbench variable).

        If required, select the Tool type to be used in the display in this object.

      • View

        The ID number of a Vensim view must be supplied for the button to operate correctly. The ID number is available on the property page of a Vensim view or can be accessed using the search button to the right of the View ID field.

        Next

        Move to next Vensim view.

        Previous

        Move to previous Vensim view.

        Select

        Select a Vensim view to look at.

        Zoom - in

        Zoom - in on a Vensim view.

        Zoom - out

        Zoom - out from a Vensim view.

        Show behaviour On | Toggle the Vensim "show behaviour" feature on.
        Show Behaviour Off | Toggle the Vensim "show behaviour" feature off.
        Show Hidden + | Show next hidden layer. Vensim allows multiple "hide" layers in a view. Use this button command to build up a "narrative" description of the view, starting with a simple view and building complexity by showing subsequent hidden layers.
        Show Hidden - | Move back to a previous "hide" layer in the Vensim view. Use this command to allow the user to return to a higher level.
        Synth Visible On | In Synthesim mode, this turns on graphics when looking at Vensim screens.
        Synth Visible Off | In Synthesim mode, this turns off graphics when looking at Vensim screens.
        Run Visible | Create a simulation only using the current visible elements. All other parts of the model not visible will be held at their initial values. This is useful in small teaching models in order to show how new structure creates new behaviour.

      • XCommand
                 X commands do not fall into any fixed category. The following commands are available

        Reload

        Reload the entire project.

        Close mini

        Close the mini screen. Note that this requires the button to be placed on the mini screen to be closed.

        URL | Enables you to enter a URL. This button will then access the particular URL when clicked
        Close Project | Close down project
        Execute Script | Execute a Sable script
        Display Savelist Control | Display the Vensim savelist control for direct access to any savelists in use for the model. See Vensim help for a description of save lists.
        No Net Simulate | Used specifically for Sable Net solutions. This enables a player in a multi-player game to "watch" and not interact. This command is no longer supported.
        Open Sub Project | Opens a sub project for this project. If sub-projects have been set up, the user will be presented with a list of accessible sub-projects to open on activation of the button.
        Open Parent Project | Opens the parent project to this sub-project. This will only work if the button is placed within a project which has been set up as a sub project
        Change Frame | Run time command to change the image or mini screen displayed in a frame object.
        Copy from clipboard | Useful for populating a large series of edit box entries. Give each edit box a unique tab number, these will be used to identify the placement of any values copied from the clipboard (sourced from, for example, Excel). For example, 20 edit boxes with tab numbers 1 to 20. 20 cells of data copied to the clipboard from Excel. A button with "copy from clipboard,1,20" would update the edit boxes with the values from the spreadsheet.
        Assign String Variable | Assigns a value to a SableString variable.
        Disable Control | Disable a control. Enter the unique ID of the control to be disabled.
        Enable Control | Enable a control. Enter the unique ID of the control to be enabled.


Check Buttons

Sable Developer Help

Object Type: Check Button

What is it for

The check button is used to allow users to set a yes/no (0/1) value in the model.

Properties

  • General

    Caption
    Enter a caption to appear attached to the button

    Tooltip
    Enter text to appear when the user hovers the cursor over the object. You can use the text entered in the comment field of the Vensim equation editor for any of the variables in the project model by clicking on the “description” button. On doing so, you will be asked to select a variable from the drop-down list, review the comment and select “ok” or “cancel”.

    Use String Table
    Check this box if the caption and/or tooltip is to use text from the project string table.

    Border
    Check box to add a thin border around the object.

    Transparent
    Check this box if the button is to be transparent.

    Disabled
    Check this box if the button is to be disabled.

    Update other controls
    Check this box if the actions of this object should result in other controls on the screen being updated.

    WIP
    Not required on check button object

    Script
    Click this button to access any script commands included in the project. Any available commands will appear in the drop-down box. Selecting a command will activate that command when the button is clicked.

    If no commands appear then no script file has been created for the project, or the script file is empty.

    Control ID
    A unique identifier allocated to the object when it is created.

    Help ID
    Reference to the relevant help text in the user-defined help file for the project.

    Tab Order
    Enter a numeric figure for the order in which each object on the current screen would be highlighted when the user hits the “tab” key.
  • Appearance

    Font
    Click here to view/change the font for the caption appearing on the button. Select the font type, size, colour and style.

    Fill colour
    Click to select a colour for the button. If the button “transparent” check box has been checked, this fill colour is ignored.

    Default windows colour
    Select to force Sable to display buttons in the colour chosen by the user of the computer on which the application is running.
  • Extended Styles

    Select from 3 style types or combine them to create the desired appearance
  • Check Button
    Select a constant or gaming variable to attach to the check box. Check boxes should be used to set 0/1 decisions (unchecked = 0, checked = 1).

    Use the Toggle WIP to enable the check box as a switch for work in progress graphs and other objects. This will allow the user (in runtime version of Sable only) to control work in progress characteristics of the desired object. Set the object ID in the ID Number field.


Radio Button

Sable Developer Help

Object Type: Radio Button

What is it for

The radio button is used to give users the ability to choose from a set of options.

Properties

  • General

    Caption
    Enter a caption to appear attached to the button

    Tooltip
    Enter text to appear when the user hovers the cursor over the object. You can use the text entered in the comment field of the Vensim equation editor for any of the variables in the project model by clicking on the “description” button. On doing so, you will be asked to select a variable from the drop-down list, review the comment and select “ok” or “cancel”.

    Use String Table
    Check this box if the caption and/or tooltip is to use text from the project string table.

    Border
    Check box to add a thin border around the object.

    Transparent
    Check this box if the button is to be transparent.

    Disabled
    Check this box if the button is to be disabled.

    Update other controls
    Check this box if the actions of this object should result in other controls on the screen being updated.

    WIP
    Not required on radio button object

    Script
    Not active.

    Control ID
    A unique identifier allocated to the object when it is created.

    Help ID
    Reference to the relevant help text in the user-defined help file for the project.

    Tab Order
    Enter a numeric figure for the order in which each object on the current screen would be highlighted when the user hits the “tab” key.
  • Appearance
    Font
    Click here to view/change the font for the caption appearing on the object. Select the font type, size, colour and style.

    Fill colour
    Click to select a colour for the object. If the object “transparent” check box has been checked, this fill colour is ignored.

    Default windows colour
    Select to force Sable to display buttons in the colour chosen by the user of the computer on which the application is running.
  • Extended Styles

    Select from 3 style types or combine them to create the desired appearance
  • Check Button
    Select a constant or gaming variable to attach to the radio button, and a value to set it to when the radio button is selected.


Slider

Sable Developer Help

Object Type: Slider

What is it for

Sliders can be used to change model constants or gaming decisions as well as display model results during a simulation/game.

Properties

  • General

    Caption
    Enter a caption to appear attached to the button

    Tooltip
    Enter text to appear when the user hovers the cursor over the object. You can use the text entered in the comment field of the Vensim equation editor for any of the variables in the project model by clicking on the “description” button. On doing so, you will be asked to select a variable from the drop-down list, review the comment and select “ok” or “cancel”.

    Border
    Check box to add a thin border around the object.

    Transparent
    Check this box if the slider is to be transparent.

    Disabled
    Check this box if the slider is to be disabled.

    Update other controls
    Check this box if the actions of this object should result in other controls on the screen being updated.

    WIP
    Not required on slider object

    Script
    Not active.

    Control ID
    A unique identifier allocated to the object when it is created.

    Help ID
    Reference to the relevant help text in the user-defined help file for the project.

    Tab Order
    Enter a numeric figure for the order in which each object on the current screen would be highlighted when the user hits the “tab” key.
  • Appearance

    Act on conditions
    Not supported for Slider controls.

     Fill colour
    Click to select a colour for the object. If the object “transparent” check box has been checked, this fill colour is ignored.

    Default windows colour
    Select to force Sable to display objects in the colour chosen by the user of the computer on which the application is running.
  • Extended Styles

    Select from 3 style types or combine them to create the desired appearance
  • Slider
    Use the combo box Parameter to select a model constant or gaming variable. Set the min and maximum values that the slider will operate over, and the tick frequency. Use the "use parameter" check box to use model constants for the min and max slider values.

    The point and orientation combo boxes dictate the appearance of the slider.

    Use "Set Vensim Special Time" to indicate that this slider is to be used to change the value of special time. If this check-box is checked, the "use parameters" option becomes active and INITIAL TIME and FINAL TIME selected as the min and max limits for the slider.
  • Links
    Where the user must enter a series of values who's sum must result in a particular value, then linked sliders provide the answer. For example, if the user were to enter the relative importance of 5 criteria, 5 sliders could be used, one for each criterion, all linked with the sum adding to 100, for example. Use this feature to select the controls to link to and the total to be summed to.


Combo Box

Sable Developer Help

Object Type: Combo Box

What is it for

Combo Boxes are useful for allowing a user to make a decision without having to enter numbers.

Properties

  • General

    Tooltip
    Enter text to appear when the user hovers the cursor over the object. You can use the text entered in the comment field of the Vensim equation editor for any of the variables in the project model by clicking on the “description” button. On doing so, you will be asked to select a variable from the drop-down list, review the comment and select “ok” or “cancel”.

    Border
    Check box to add a thin border around the object.

    Transparent
    Not required on combo box object
    Disabled
    Check this box if the object is to be disabled.

    Update other controls
    Check this box if the actions of this object should result in other controls on the screen being updated.

    WIP
    Not required on slider object

    Script
    Click this button to access any script commands included in the project. Any available commands will appear in the drop-down box. Selecting a command will activate that command when the button is clicked.

    If no commands appear then no script file has been created for the project, or the script file is empty.

    Control ID
    A unique identifier allocated to the object when it is created.

    Help ID
    Reference to the relevant help text in the user-defined help file for the project.

    Tab Order
    Enter a numeric figure for the order in which each object on the current screen would be highlighted when the user hits the “tab” key.
  • Appearance
    Font
    Click here to view/change the font for the caption appearing on the button. Select the font type, size, colour and style.

    Fill colour
    Click to select a colour for the object. If the object “transparent” check box has been checked, this fill colour is ignored.

    Default windows colour
    Select to force Sable to display objects in the colour chosen by the user of the computer on which the application is running.
  • Extended Styles

    Select from 3 style types or combine them to create the desired appearance
  • Combo Box
    Here you can use the "Parameter" dropdown box to select a variable to attach to the combo-box. The window below is used to add/remove entries from the combo box. Each button is described as follows.

    Insert a combo box item. When an item has been inserted, the value associated with that item is displayed in the value box. During runtime, when a user selects this option from the combo box, the parameter attached to the combo box is set to the value here.

    Delete the currently selected combo box item.

    Move the currently selected item up (change the order of the entries within the combo box).

    Move the currently selected item down (change the order of the entries within the combo box).

    There is a read-only checkbox for when you want to display strings depending on the value of a variable. You can also display strings from the string table by checking "Use string table" and using string numbers for the item names.

    Click on "Select View" to enable the combo box to be used as a Vensim "view" selector. Select the browse button to the right to browse to the particular Vensim view object. The combo box will automatically list all views from the loaded model. The user may then use this tool to select from the available views. Remember to enter the "view id" for the view to be used.

    A combo box can also be used to create a subscript selection list for the user. To do this, choose "Select Subscript" and use the browse button to the right in order to select the subscript range or sub-range elements to be displayed. (note that at least one element must be selected). Note that, unlike the list box, the use of the combo box in the selection of subscript elements will ensure that one and only one element in the range is displayed.

    "Change colour" can be used when a combo box has the read only attribute set. Depending on the value of the parameter being shown, you can change the colour of the text displayed (this can be used to highlight any changes from default input data).


List Box

Sable Developer Help

Object Type: List Box

What is it for

As with a combo box, a list box is useful for allowing a user to make a decision without having to enter numbers. The List Box tool can also be used to allow developers to create a subscript selection dialog in their Sable application.

Properties

  • General

    Tooltip
    Enter text to appear when the user hovers the cursor over the object. You can use the text entered in the comment field of the Vensim equation editor for any of the variables in the project model by clicking on the “description” button. On doing so, you will be asked to select a variable from the drop-down list, review the comment and select “ok” or “cancel”.

    Border
    Check box to add a thin border around the object.

    Transparent
    Check this box if the button is to be transparent.

    Disabled
    Check this box if the object is to be disabled.

    Update other controls
    Check this box if the actions of this object should result in other controls on the screen being updated.

    WIP
    Not required on object

    Script
    Click this button to access any script commands included in the project. Any available commands will appear in the drop-down box. Selecting a command will activate that command when the button is clicked.

    If no commands appear then no script file has been created for the project, or the script file is empty.

    Control ID
    A unique identifier allocated to the object when it is created.

    Help ID
    Reference to the relevant help text in the user-defined help file for the project.

    Tab Order
    Enter a numeric figure for the order in which each object on the current screen would be highlighted when the user hits the “tab” key.
  • Appearance
    Font
    Click here to view/change the font for the caption appearing on the button. Select the font type, size, colour and style.

    Fill colour
    Click to select a colour for the object. If the object “transparent” check box has been checked, this fill colour is ignored.

    Default windows colour
    Select to force Sable to display objects in the colour chosen by the user of the computer on which the application is running.
  • Extended Styles

    Select from 3 style types or combine them to create the desired appearance
  • List Box

     Here you can use the "Parameter" dropdown box to select a variable to attach to the list box. The window below is used to add/remove entries from the list box. Each button is described as follows.

    Insert a list box item. When an item has been inserted, the value associated with that item is displayed in the value box. During runtime, when a user selects this option from the list box, the parameter attached to the list box is set to the value here.

    Delete the currently selected list box item.

    Move the currently selected item up (change the order of the entries within the list box).

    Move the currently selected item down (change the order of the entries within the list box).

    There is a read-only checkbox for when you want to display strings depending on the value of a variable. You can also display strings from the string table by checking "Use string table" and using string numbers for the item names.

    Click on "Select View" to enable the list box to be used as a Vensim view selector. Select the browse button to the right to browse to the particular Vensim view object. The list box will automatically list all views from the loaded model. The user may then use this tool to select from the available view. Remember to enter the "view id" for the view to be used.

    A list box can also be used to create a subscript selection list for the user. To do this, choose "Select Subscript" and use the browse button to the right in order to select the subscript range or sub-range elements to be displayed. (note that at least one element must be selected).

    "Change colour" can be used when a combo box has the read only attribute set. Depending on the value of the parameter being shown, you can change the colour of the text displayed (this can be used to highlight any changes from default input data).


Edit Box

Sable Developer Help

Object Type: Edit Box

What is it for

Edit boxes can be used to ask the user to enter numerical data. They can also be used to link to pie charts and bar graphs to change the time at which a variable is displayed.

Properties

  • General

    Tooltip
    Enter text to appear when the user hovers the cursor over the object. You can use the text entered in the comment field of the Vensim equation editor for any of the variables in the project model by clicking on the “description” button. On doing so, you will be asked to select a variable from the drop-down list, review the comment and select “ok” or “cancel”.

    Border
    Check box to add a thin border around the object.

    Transparent
    Not yet supported

    Disabled
    Check this box if the object is to be disabled.

    Update other controls
    Check this box if the actions of this object should result in other controls on the screen being updated.

    WIP
    Not required on object

    Script
    Not active.

    Control ID
    A unique identifier allocated to the object when it is created.

    Help ID
    Reference to the relevant help text in the user-defined help file for the project.

    Tab Order
    Enter a numeric figure for the order in which each object on the current screen would be highlighted when the user hits the “tab” key.
  • Appearance
    Font
    Click here to view/change the font for the caption appearing on the button. Select the font type, size, colour and style.

    Fill colour
    Click to select a colour for the object. If the object “transparent” check box has been checked, this fill colour is ignored.

    Default windows colour
    Select to force Sable to display objects in the colour chosen by the user of the computer on which the application is running.
  • Extended Styles

    Select from 3 style types or combine them to create the desired appearance
  • Edit Box

     Select a constant or gaming variable to attach to the edit box, the action to be performed by the edit box (set parameter, show parameter, game interval or show messages) and the format of the number (integer, float with decimal places). You can also set the alignment of the contents of the edit box here.

    Where subscripted parameters exist, their subscript ranges will be displayed by default. Check the Display all subscript combinations to gain access to all subscript elements. See Vensim help for a description of subscript ranges and elements.

    Type options:

    Set Parameter
    The edit box will be used to allow the user to enter a value for the constant or game decision.

    Show Parameter
    The edit box will display the value of the variable (no user interaction).

    Game Interval
    Values entered into the edit box will update the Vensim internal variable "game interval". In game mode, game interval dictates the period of simulated time to move forward when the game is resumed,

    Show Messages
    The edit box will display any Vensim-related messages.

    Show Value -1 (-2, -3, -4)
    The edit box will display the value of the variable one, two, three or 4 time periods ago.

    VDF Value
    The edit box will display the value of a variable from a previous run (Vensim Data Format or vdf). This is useful for displaying and comparing results for several runs side-by-side. Use "Display at time" to choose the simulation time to be displayed (check the "use Vensim Special Time" to enable a drop-down box where you can choose from Initial Time, Final Time and Special Time). Use the "Dataset" drop-down box to select the dataset to display. Datasets are referenced by their position in the list of loaded datasets.

    Link to Graph
    This can be used to change the time at which certain grapGraphhs display. For example, if you have a bar chart on your screen, you can change the time at which results are displayed using an edit box linked to the graph.

    Set Vensim Special Time
    Values entered into the edit box at runtime will set the value of Vensim Special Time.


Display Objects

Sable Developer Help

Display Tools

  • Frame
  • Group Box
  • Text
  • Model View
  • Graph
  • Table
  • Vensim Tool
  • Animation
  • Custom Control
  • Tab Control


Frame

Sable Developer Help

Object Type: Frame

What is it for

Frames are used to separate or highlight different parts of a user interface. They can be used to display graphics and to embed mini screens.

Properties

  • General

    Tooltip
    Enter text to appear when the user hovers the cursor over the button. You can use the text entered in the comment field of the Vensim equation editor for any of the variables in the project model by clicking on the “description” button. On doing so, you will be asked to select a variable from the drop-down list, review the comment and select “ok” or “cancel”.

    Border
         Check box to add a thin border around the frame.

    Transparent
    Check this box if the frame is to be transparent.

    Disabled
    Not required on object
    Update other controls
    Not required on object
    WIP
    Not required on object
    Control ID
    A unique identifier allocated to the object when it is created.

    Help ID
    Reference to the relevant help text in the user-defined help file for the project.

    Tab Order
    Enter a numeric figure for the order in which each object on the current screen would be highlighted when the user hits the “tab” key.
  • Extended Styles

    Select from 3 style types or combine them to create the desired appearance
  • Static Frame
    Set the type of frame, the colour and whether it is sunken or not.

    Insert an Image

    If the frame type is set to Image the image drop down box becomes active. This will list all available images in the Images directory of the project.

    Insert a Mini Screen

    If the frame type is set to mini screen, the image drop down box will be relabelled mini and display all mini screens found in the mini screens directory of the project. Use this option to embed commonly used control buttons etc (having created the control buttons on the mini screen as a template).

    Note: you cannot save a mini screen if it is currently being displayed within an "active" screen. To do so, close the active screen before saving any changes to the mini screen.


Group Box

Sable Developer Help

Object Type: Group Box

What is it for

Group boxes are used to separate different parts of a user interface.

Properties

  • General

    Caption
    Enter a caption to appear in the title of the group box.

    Tooltip
    Enter text to appear when the user hovers the cursor over the object. You can use the text entered in the comment field of the Vensim equation editor for any of the variables in the project model by clicking on the “description” button. On doing so, you will be asked to select a variable from the drop-down list, review the comment and select “ok” or “cancel”.

    Use String Table
    Check this box if the caption and/or tooltip is to use text from the project string table.

    Border
    Check box to add a thin border around the object.

    Transparent
    Not required on object
    Disabled
    Not required on object
    Update other controls
    Not required on object
    WIP
    Not required on object
    Control ID
    A unique identifier allocated to the object when it is created.

    Help ID
    Reference to the relevant help text in the user-defined help file for the project.

    Tab Order
    Enter a numeric figure for the order in which each object on the current screen would be highlighted when the user hits the “tab” key.
  • Appearance

    Font
    Click here to view/change the font for the caption appearing on the button. Select the font type, size, colour and style.
  • Extended Styles

    Select from 3 style types or combine them to create the desired appearance


Text

Sable Developer Help

Object Type: Text

What is it for

Static text is useful for adding descriptive text to your user interfaces. It can also be used to display model results.

Properties

  • General

    Tooltip
    Enter text to appear when the user hovers the cursor over the object. You can use the text entered in the comment field of the Vensim equation editor for any of the variables in the project model by clicking on the “description” button. On doing so, you will be asked to select a variable from the drop-down list, review the comment and select “ok” or “cancel”.

    Border
    Check box to add a thin border around the object.

    Transparent
    Check this box if the text is to be transparent.
    Disabled
    Not required on object
    Update other controls
    Not required on object

    WIP
    Not required on object
    Control ID
    A unique identifier allocated to the object when it is created.

    Help ID
    Reference to the relevant help text in the user-defined help file for the project.

    Tab Order
    Enter a numeric figure for the order in which each object on the current screen would be highlighted when the user hits the “tab” key.
  • Appearance

    Font
    Click here to view/change the font for the caption appearing on the button. Select the font type, size, colour and style.
  • Extended Styles

    Select from 3 style types or combine them to create the desired appearance
  • Static Text

     Type the text you want to appear in the text box, or click on the Description button to retrieve a description from the model (from the text entered in comments for each model parameter). You can also use a string from the string table by selecting "Use string table" and entering the string number in the edit box. Finally select the alignment of the text when it is displayed.

    Displaying Model Values Within Text

    Static text can be used to display model values. To insert model values, enclose the parameter name within "@" symbols. For example, the following diagram shows how to display text saying "Model Time = xxxx" (xxxx being the time the model has reached).

    Values can also be formatted for output. The formatting is the standard "c" programming language way of formatting numbers. The following diagram shows the text required to format model time to two decimal places.

    Displaying The Currently Selected Subscript

    Static text can be used to display the currently selected subscript. To insert the currently selected subscript, enclose the subscript name in square brackets [subscript name]. The following diagram shows the text required to do this. Note that only the first selected subscript element will be displayed. See list box and combo box for alternative ways to display and select subscripts.

    Displaying The Current Run Name

    Static text can be used to display the current run name. To insert the current run name, type "@RUNNAME@" where you want it to appear in the text. The following diagram shows the text required to do this.

    Displaying a loaded run name

    Static text can be used to display one of the loaded runs. To insert a run name, type "@RUN@ to display the first run, @RUN01@ to display the second, and so on.

    Displaying the Workbench Variable

    Static text can be used to display the name of the current workbench variable (see Vensim help for a description of workbench variable). To insert workbench variable, type "@WBVAR@". The following diagram shows the text required to do this.

    Reporting Results from Loaded Runs (vdf)

    Static text can be used to display values from a particular loaded run.

    For example;

    @VDF:0:%.4f,final time:average profit@

  • Use the @@ symbols to denote the beginning and end of a variable value
  • First argument is the VDF name or position. :0: is first loaded, :1: is second loaded and so on. Examples: VDF:0: = first loaded VDF; VDF:baserun.vdf: refers to an existing run name.
  • Next argument is the formatting {optional} and display time. Example; %.4f {c-formatting},final time:
  • Last argument is the variable name

    Calculating Results between Loaded Runs

    Static text also allows for manipulation of reported values from multiple runs to enable, for example, reporting of percentage change in a performance output between runs. As an example, the following entry in a text box will calculate and report the percentage change in the variable "total wage cost(millions)" between the first and second loaded runs, whatever they may be:

    EQUATION[(@VDF:0:%.4f,final time:"total wage cost (millions)"@ - @VDF:1:%.4f,final time:"total wage cost (millions)"@)/@VDF:0:%.4f,final time:"total wage cost (millions)"@*100]%

    The use of the keyword EQUATION[ ] indicates a calculation. In more detail;

    EQUATION[ (value of variable at final time in first loaded run minus value of variable at final time in second loaded run) divided by
    value of variable at final time in first loaded run times 100 ] percent

    The equation is comprised of values taken from two runs, expressed as a percentage changed from the first loaded run.

    At present, the operators *, / , + and - are supported.


Model View

Sable Developer Help

Object Type: View

What is it for

In Sable, you are able to embed a Vensim model view (see Vensim documentation for more information on views). The view is "live" in that the user will be able to see variable comments on hovering the cursor over a variable in the view, and will be able to select any of the variables as the workbench variable with a double-click (see Vensim help for details on workbench variables).

Properties

  • General

     Tooltip
    Enter text to appear when the user hovers the cursor over the button. You can use the text entered in the comment field of the Vensim equation editor for any of the variables in the project model by clicking on the “description” button. On doing so, you will be asked to select a variable from the drop-down list, review the comment and select “ok” or “cancel”.

    Border
    Check box to add a thin border around the object.

    Transparent
    Not required on object
    Disabled
    Not required on object
    Update other controls
    Not required on object
    WIP
    Not required on object

     Control ID
    A unique identifier allocated to the object when it is created.

    Help ID
    Reference to the relevant help text in the user-defined help file for the project.

    Tab Order
    Enter a numeric figure for the order in which each object on the current screen would be highlighted when the user hits the “tab” key.
  • Extended Styles

    Select from 3 style types or combine them to create the desired appearance
  • Model
    Here you can     set the zoom level, the view to display, and toggle scrollbars on and off (default on). For information, the number of views in the loaded model is also displayed.


Graph

Sable Developer Help

Object Type: Graph

What is it for

Sable allows the display of a number of different graph types (including line, bar and pie). Sable graphs are similar in functionality to Vensim Custom graphs.

Sable graphs are provided by TeeChart, © TeeMach (visit http://www.teemach.com for more information).

Properties

  • General

    Tooltip
    Enter text to appear when the user hovers the cursor over the button. You can use the text entered in the comment field of the Vensim equation editor for any of the variables in the project model by clicking on the “description” button. On doing so, you will be asked to select a variable from the drop-down list, review the comment and select “ok” or “cancel”.

    Border
    Check box to add a thin border around the object.

    Transparent
    Check this box if the button is to be transparent.

    Disabled
    Check this box if the button is to be disabled.

    Update other controls
    Not required on object
    WIP
    Check this box if the graph is to display while a simulation is running (work in progress - WIP).
    Control ID
    A unique identifier allocated to the object when it is created.

    Help ID
    Reference to the relevant help text in the user-defined help file for the project.

    Tab Order
    Enter a numeric figure for the order in which each object on the current screen would be highlighted when the user hits the “tab” key.
  • Extended Styles

    Select from 3 style types or combine them to create the desired appearance
  • Parameters

     The list box Parameter contains all variables that will be shown by the graph. To add parameters, click the [image] button. The following dialog will be displayed.

    Click the OK button to add the parameter to the Parameter list.

    Check the check-box to the left of the parameter name if you wish this parameter to be displayed using the right-hand vertical axis for scale. Default setting is to display all parameters using the left-hand vertical axis.

    To remove a parameter, select the parameter to be removed from the graph, and click the [image] button.

    Select the type of graph to display by using the drop-down box Graph Type. To display Vensim sensitivity results in a TChart, select the graph type sensitivity from the drop-down box.

    The graph is automatically saved to the graphs sub-directory of the project, when the screen itself is saved. The graph will be named screenname_GPHobjectID. To use the settings saved for a previously created graph, use the Load button. Alternatively, select the graph on the screen, copy and paste the graph to create a copy on the screen. This new graph will be given a new, unique, object ID.

  • Advanced 1

    The advanced property page contains the following elements.

    Run Time Options.
    Property pages for certain controls can be displayed at run-time. If the designer wants to allow access to certain parts of the property pages, click the add (user defined series can be added at run time), clone (existing series can be cloned at run time), change (existing series types can be changed) or delete (series can be deleted at run time) check boxes. In addition, check the "auto axes" box to force graph x and y axes to auto-scale depending on the values displayed.

    Line Width.
    The line width is applied to line charts and is measured in pixels.

    X-axis.
    This allows a conversion to be applied to the x-axis. The start point is added to the x axis value, and then multiplied by the conversion factor. For example, for a model running from initial time=0 to final time=36 months, you can display the results from a start year of 2002 by entering 2002 in start point and a conversion of 1/12 (the x-axis will then display years from 2002 to 2005).

    Time-Base.
    An existing variable can be selected for the x-axis. Clicking the browse [image] button, will display a drop down box allowing the x-axis to be selected. Use this option to plot one model variable against another or to use a Vensim model time-base (see the Vensim help system for details on setting and using time-base).

    Show one run
    Use this option to force the display of only one run (the first loaded) regardless of how many runs are loaded.

    Settings.
    This button displays the graphs settings dialog. Click on the image for more help on the different settings. Further help can be obtained here.

  • Advanced 2

    Data Labels
    Select "Show data labels" to display the labels for each data point in the graph, and use the Label Style drop-down box to selected a style.

    Series Draw Order
    Use "reverse parameter draw order" and/or "reverse runs draw order" to change the order in which parameters are displayed in the graph.

    Finally, if the graph type is one showing a single point in time (bar chart, for example), select the time at which the graph should display.

  • Titles

    Custom X-axis Labels and Custom Series Titles allows the developer to determine the exact way in which the series titles and x-axis labels are displayed, using the special words below:

    @PARAM@
    display the parameter name

    @SUBSCx@ (where x is between 1 and 8)
    Displays the graphed variables xth subscript element

    @SUBSC@
    Displays the entire subscript list for a variable

    @RUNNAME@
    Displays the run name

    @AXIS@
    Displays the axis (LHS/RHS)

    @Sable string variable@
    Displays the Sable string variable

    So, for example,

    Plot for Out of sequence work - @SUBSC1@, @SUBSC2@

    Custom series X Axis labels allows the developer to specify the X-axis labels used. As an example, using @current quarter@Q @current year@ would yield 1Q 2005, 2Q 2005, 3Q 2005 etc as labels on the x-axis (provided that the relevant current quarter and current year variables have been set up in the model).

  • Colours

    This features allows the user to override the Windows default colours.

  • Sensitivity

    If a Vensim sensitivity results file is loaded, this facility enables a Sable Chart to be used to display the sensitivity results. For each desired confidence bound, enter a percentage confidence and display colour. Use the "show borders" check box to toggle borders between bounds on and off.

    Note: To display Vensim sensitivity results in a TChart, select the graph type sensitivity from the drop-down box Graph Type on the parameters tab..

  • Other Graph Capabilities

    A TChart graph can be configured to perform one or more of the specialist tasks found under the TChart application as well as other more Sable/Vensim-specific tasks. For example, to allow a user to select a particular variable to display at runtime, or to change the appearance of the graph. Many such functions are set using the button tool.

    •


Table

Sable Developer Help

Object Type: Table

What is it for

Tables are used to display numerical output from simulation runs. Use the Table object to create custom reports.

Properties

  • General

    Tooltip
    Not required on object

    Border
         Check box to add a thin border around the object.

    Transparent
    Not required on object

    Disabled
    Not required on object
    Update other controls
    Not required on object
    WIP
    Not required on object
    Control ID
    A unique identifier allocated to the object when it is created.

    Help ID
    Reference to the relevant help text in the user-defined help file for the project.

    Tab Order
    Enter a numeric figure for the order in which each object on the current screen would be highlighted when the user hits the “tab” key.
  • Appearance

    Font
    Click here to view/change the default font for the table text. Select the font type, size, colour and style. Note that this font will be replaced by the font chosen for each parameter displayed in the table.

    Fill colour
    Click to select a default background colour for the table. Note that this will be replaced by the font chosen for each parameter displayed in the table.

    Default windows colour
    Select to force Sable to display tables in the colour chosen by the user of the computer on which the application is running.

  • Extended Styles

    Select from 3 style types or combine them to create the desired appearance
  • Parameters

     Here you can select a one or more parameters to be displayed in the Table. There are four buttons in the command window having the following functionality

    Insert a new command
    Click this button to insert a new parameter

     Delete the currently selected parameters from the table

     Move the currently selected parameter up

     Move the currently selected parameter down

     When a parameter is added, the "table row" dialog is displayed.

    Select the model parameter to display from the drop-down box. or select "this row is a separator" to insert a blank row. The size of the blank row, in pixels, can be entered under "Row Height".

    If the row is to show values for simulation time, check the "This row is the TIME row" box. This ensures that the table displays the time row only once when multiple results files (*.vdf) are loaded. To "fix" the time row (i.e. so that it remains displayed at the top of the object regardless of how far the user scrolls through the table), select the "This row is fixed" box.

    Formatting Appearance

    There are a number of options for formatting the appearance of the table:

    Under "Number Format"     deselect the "Use default format" box and enter the standard "c" programming language way of formatting numbers under "Number format". For example, entering "%2.1f" in this field will force the format for the parameter to show 1 decimal point.

    Enter a "Custom Title" to override the row title, by default the parameter name.     To insert the current run name, type "@RUNNAME@" where you want it to appear in the title text.

    Select "Use Custom Series" to enter user-formatted entries for the row. For example, if the model has a parameter to display "current financial quarter" and one monitoring "current year", enter "@Q@current financial quarter@ @current year@" to display Q1 2007, Q2 2007, Q3 2007 ... and so on.

    Under "Fill" use the default Windows Colour or select a fill colour for the particular parameter displayed.

    Under "Font" use the default font or select a particular font for the parameter displayed.


Vensim Tool

Sable Developer Help

Object Type: Vensim Tool

What is it for

Vensim tools are those that are normally used with Vensim, such as graphs, tables, statistical output and equation documentation, for example. These tools are user customisable. Please refer to the Vensim documentation on how to configure Vensim Tools.

Properties

  • General

    Tooltip
    Enter text to appear when the user hovers the cursor over the object. You can use the text entered in the comment field of the Vensim equation editor for any of the variables in the project model by clicking on the “description” button. On doing so, you will be asked to select a variable from the drop-down list, review the comment and select “ok” or “cancel”.

    Border
    Check box to add a thin border around the object.

    Transparent
    Not required on object
    Disabled
    Check this box if the button is to be disabled.

    Update other controls
    Check this box if the actions of this button should result in other controls on the screen being updated.

    WIP
    Not required on object

     Control ID
    A unique identifier allocated to the object when it is created.

    Help ID
    Reference to the relevant help text in the user-defined help file for the project.

    Tab Order
    Enter a numeric figure for the order in which each object on the current screen would be highlighted when the user hits the “tab” key.
  • Extended Styles

    Select from 3 style types or combine them to create the desired appearance
  • Vensim Tool

    Select the parameter to be displayed by clicking the drop down box under the "Parameter" label. The tool is selected by clicking the drop down box under the "Tool" label. The tools appearing here are those to be found in the default toolset installed with Sable, or in the specific toolset (vts) loaded with the project.

    Vensim tools can be configured to display the workbench variable (see Vensim documentation for the definition of a workbench variable). Click the "Use workbench variable" check box to enable this.

    Vensim Custom Graphs

    Sable can also make use of Vensim custom graphs. Sable can only access custom graphs if they are saved as a binary file. This is easily done in Vensim by selecting "Save As" from the custom graph dialog, and selecting the file type as "Binary Graph Definition".

    Now you need to ensure that the graph set is loaded by Sable when your project loads. The easiest way to achieve this is to assign an activation command to the very first screen your project has. The command should be something like "SPECIAL>READCUSTOM|{graphfile}" where {graphfile} is the name of the custom graph file.

    With the toolset loaded, insert a Vensim tool and access the "Vensim Tool" property page, as shown below.

    Select the "Custom Graph" checkbox, and the "Tool" drop down box will present a list of the currently loaded custom graphs. Select the one you want to see and close the property page. the dialog below shows the "DMO_CUST_GRAPH" as the selected custom graph.


Animation

Sable Developer Help

Object Type: Animation

What is it for

Sable allows you to create a number of animation object types. These can be used to enhance the visual appeal of the interface and to visually display model results or conditions.

Properties

  • General

    Tooltip
    Enter text to appear when the user hovers the cursor over the object. You can use the text entered in the comment field of the Vensim equation editor for any of the variables in the project model by clicking on the “description” button. On doing so, you will be asked to select a variable from the drop-down list, review the comment and select “ok” or “cancel”.

    Use String Table
    Check this box if the caption and/or tooltip is to use text from the project string table.

    Border
    Check box to add a thin border around the object.

    Transparent
    Check this box if the button is to be transparent.

    Disabled
    Not required on object
    Update other controls
    Check this box if the actions of this button should result in other controls on the screen being updated.

    WIP
    Check this box if the animation object is to display while a simulation is running (work in progress - WIP).
    Control ID
    A unique identifier allocated to the object when it is created.

    Help ID
    Reference to the relevant help text in the user-defined help file for the project.

    Tab Order
    Enter a numeric figure for the order in which each object on the current screen would be highlighted when the user hits the “tab” key.
  • Extended Styles

    Select from 3 style types or combine them to create the desired appearance
  • Animation

    Select the parameter to be displayed within the animation control by clicking the drop down box under the Parameter label. The animation type is selected using the Type drop down box. Click the Settings button to display properties particular to that animation type. Click on one of the following animation types to get more information on them.


Animation 3D Meter

Sable Developer Help

Animation Object: 3D Meter

3D Meters are used to display numeric dynamic data in the form of a meter with a needle that will move to indicate the chosen value output from the model. The diagram below shows an examples of a 3D Meter animation.

Meter Title and Ranges

The following diagram shows the Title and Ranges properties for a 3D Meter animation object (max. 12 characters).

Here you can set the following properties:

Meter Title - This is the title for the meter and is displayed along the bottom of the 3D Meter object.

Meter Range - The minimum and maximum range of the Meter. If these values are not known the control will automatically set the range values during the first run if values fall below the minimum or above the maximum value set. Click on Use parameters to use model parameters as the range limits.

Show Min, Max and Title Text - By checking and unchecking this box the Meter minimum, maximum and title text can be shown or hidden.

Show Current Value - By checking and unchecking this box the Meter current value text can be shown or hidden.

Colour Settings

The following diagram shows the Animation Meter Colours properties for a 3D Meter animation object.

Here you can set the colours for every aspect of the 3D meter animation object.

General

This animation tool can be used to review the results of a previous run. In the "general" tab, "show vdf value (top loaded run)", if checked, will enable the animation object to display the value of the chosen variable from the top loaded run. Click on "use Vensim special time" to force the output to display values at special time. This can be used in conjunction with a slider to allow the user to review the results across the entire run, as the slider can be used to change the value of special time.


Animation Bar

Sable Developer Help

Animation Object: Bar

Bars are used to display numeric dynamic data in the form of a single bar that will fill as the chosen value output from the model changes.

  • Range and Orientation

    Here you can set the following properties:

    Animation Range - The minimum and maximum range of the bar. If these values are not known the control will automatically set the range values during the first run if values fall below the minimum or above the maximum value set. Check Use parameters to use model parameters as range bounds.

    Animation Bar Orientation - This controls the direction in which the bar will draw and fill the area that the animation object covers.
  • Colour and Pattern

    Here you can set the following properties:

    Set Back Colour
    This sets the background colour of the area that the bar will fill. This is set to dark grey as default.

    Set Bar Colour
    This sets the main bar colour to be used. This is set to red as default.

    Set Pattern Colour
    This sets the colour to be used for a pattern if selected. This is set to dark red as default.

    The drop down box seen allows the pattern drawn on the bar to be set. There are several patterns available.

    None - No pattern selected.

    Cross Hatch at 45 degrees

    Downward hatch (left to right) at 45 degrees

    Horizontal and vertical crosshatch

    Horizontal hatch

    Upward hatch (left to right) at 45 degrees

    Vertical hatch

    Selecting OK at any point will update the selected bar with the new properties selected. Selecting Cancel will close the property page without applying the changes made.
  • General

    This animation tool can be used to review the results of a previous run. In the "general" tab, "show vdf value (top loaded run)", if checked, will enable the animation object to display the value of the chosen variable from the top loaded run. Click on "use Vensim special time" to force the output to display values at special time. This can be used in conjunction with a slider to allow the user to review the results across the entire run, as the slider can be used to change the value of special time.


Animation Compass

Sable Developer Help

Animation Object: Compass

Bars are used to display numeric dynamic data in the form of a single bar that will fill as the chosen value output from the model changes.

  • Range and Orientation

    The compass animation object displays an output from 0 to 360 degrees. The diagram below shows an examples of a compass object.

  • Compass Properties

    Here you can set the following properties:

    Number of degrees in view: Enter a value describing the number of compass degrees displayed in the object at any one time. check use parameter to use a model parameter for this value.

    Tic Position: Select the position for the degree ticks displayed in the compass object; top, bottom or both.

    Compass points as letters: if this is selected, compass points will be displayed by their letters; N, S, E, W etc.

    Set background colour: Set the colour of the object background

    Set value line colour: Set the colour of the line showing current value on the object.

    •
  • General

    This animation tool can be used to review the results of a previous run. In the "general" tab, "show vdf value (top loaded run)", if checked, will enable the animation object to display the value of the chosen variable from the top loaded run. Click on "use Vensim special time" to force the output to display values at special time. This can be used in conjunction with a slider to allow the user to review the results across the entire run, as the slider can be used to change the value of special time.


Animation Custom Shaped Bar

Sable Developer Help

Animation Object: Custom Shaped Bar

Bars are used to display numeric dynamic data in the form of a single bar that will fill as the chosen value output from the model changes. A custom shaped bar, as the name suggests, allows the developer to nominate an image to represent the bar to be filled. The diagram below shows an example of such a custom shaped bar. The developer began with a simple, all black image of Africa, saved as a bitmap (*.bmp).

  • Range and Orientation

    Here you can set the following properties:

    Animation Range
    The minimum and maximum range of the bar. If these values are not known the control will automatically set the range values during the first run if values fall below the minimum or above the maximum value set. Check Use parameters to use model parameters as range bounds.

    Animation Bar Orientation
    This controls the direction in which the bar will draw and fill the area that the animation object covers.

  • Custom Shape Colour Settings.

    Here you can set the following properties:

    Image File
    Use the Select button to browse to the desired image file. This will automatically be copied to the images sub-directory of the project, if it is not already present. The image must be a bitmap. Since you will have the opportunity to determine which colour will not be filled, it is recommended that the bitmap be coloured black and white (or simply all black).

    Background Colour
    This sets the background colour of the area that the bar will fill. This is set to dark grey as default.

    Colour Not To Be Filled
    this sets the colour in the image that will not be filled.

    Use Gradient Colours
    Check this box if you wish the coloured bar to use a colour gradient.

    Starting Gradient Colour
    This sets the main bar colour to be used. If the Use Gradient Colour is selected, then this allows the user to select the start gradient colour.

    Finishing Gradient colour
    If the Use Gradient Colour is selected, then this allows the user to select the end gradient colour.

    •
  • General

    This animation tool can be used to review the results of a previous run. In the "general" tab, "show vdf value (top loaded run)", if checked, will enable the animation object to display the value of the chosen variable from the top loaded run. Click on "use Vensim special time" to force the output to display values at special time. This can be used in conjunction with a slider to allow the user to review the results across the entire run, as the slider can be used to change the value of special time.


Animation Digital Counter

Sable Developer Help

Animation Object: Digital Counter

Digital Counter

Digital Counters are used to display numeric dynamic data in the form of a digital counter whose digits will change to indicate the chosen value output from the model. It should be noted that a Digital Counter can only display integer numbers and any decimal will be automatically rounded.

  • Settings

    Here you can set the following properties:

    Number Of Digits
    This determines the maximum number of digits that the Digital Counter can display. This must be between 1 and 10 digits.

    The drop down box is used to define the style of the Digital Counter to be created. The following styles are currently available.

    Large Style 1

    Large Style 2

    Large Style 3

    Small Style 1

    Small Style 2

    Small Style 3

    Small Style 4

    Enable Zero Padding
     If this is checked, then the counter will display a zero for each unused leading digit in the display. If it is unchecked, then unused digits would remain blank.
  • General

    This animation tool can be used to review the results of a previous run. In the "general" tab, "show vdf value (top loaded run)", if checked, will enable the animation object to display the value of the chosen variable from the top loaded run. Click on "use Vensim special time" to force the output to display values at special time. This can be used in conjunction with a slider to allow the user to review the results across the entire run, as the slider can be used to change the value of special time.


Animation Graphic Triple Trigger

Sable Developer Help

Animation Object: Graphic Triple Trigger

    Graphic Triple Trigger's are used to display graphical images which will change to indicate when the chosen value output from the model falls within defined ranges. The diagram below shows some examples of Graphic Triple Trigger animation objects.

  • Settings

    Here you can set the following properties:

    Ranges
    The minimum and maximum range for each of the three images to be displayed.

    The drop down box seen is used to define the pre-defined images that will be displayed by the Graphic Triple Trigger. The images currently available are:

    Large Three-Colour Traffic Light

    Small Three-Colour Traffic Light

    Large Bulb

    Small Bulb

    Large Face

    Small Face

    Glowing Square

    All images have transparent backgrounds and cannot be resized with the exception of the Glowing Square that can be sized as desired.

  • Custom Image Settings

    Use Custom Images
    check this box to make use of custom images. If this box is not checked, then the pre-defined image selected will be used.

    Image 1, 2 and 3
    Use the Select button to navigate to the three images to be used in this animation object. If they are not already in the images sub-directory of the project, they will be copied there.

    Refresh Each Update
    check this box if a transparent image is required - a redraw of the image will be forced.

    Use Transparent colour
    check this box to make use of the set transparent colour option selected. Click on this button to select the colour to be transparent in the object.

  • General

    This animation tool can be used to review the results of a previous run. In the "general" tab, "show vdf value (top loaded run)", if checked, will enable the animation object to display the value of the chosen variable from the top loaded run. Click on "use Vensim special time" to force the output to display values at special time. This can be used in conjunction with a slider to allow the user to review the results across the entire run, as the slider can be used to change the value of special time.


Animation Histogram

Sable Developer Help

Animation Object: Histogram

  • The histogram object displays a bar-trace of a desire parameter. The diagram below shows an example histogram object.

  • Settings

    Here you can set the following properties:

    Histogram Range
    The minimum and maximum range of the bar. Click on Use parameters to make use of model parameters for range bounds.

    Show Grid Lines
    select to display grid lines in the histogram.

    Set Bar Colour
    This sets the colour of the histogram bars.

    Set Background Colour
    This sets the background colour displayed behind the histogram bars.

    Set Grid Colour
    This sets the colour of the grid, if displayed.
  • General

    This animation tool can be used to review the results of a previous run. In the "general" tab, "show vdf value (top loaded run)", if checked, will enable the animation object to display the value of the chosen variable from the top loaded run. Click on "use Vensim special time" to force the output to display values at special time. This can be used in conjunction with a slider to allow the user to review the results across the entire run, as the slider can be used to change the value of special time.


Animation Meter

Sable Developer Help

Animation Object: Meter

Meters are used to display numeric dynamic data in the form of a meter with a needle that will move to indicate the chosen value output from the model.

  • Meter Title and Ranges

    Here you can set the following properties:

    Meter Title
    This is the title for the meter and is displayed along the bottom of the Meter object.

    Meter Angle
    This defines how wide the meter grid (wedge shape) will be in degrees. This value must be between 20 and 55 degrees.

    Show Min, Max and Title Text
    By checking and unchecking this box the Meter minimum, maximum and title text can be shown or hidden.

    Show Current Value
    By checking and unchecking this box the Meter current value text can be shown or hidden.

    Range
    The minimum and maximum range of the Meter. If these values are not known the control will automatically set the range values during the first run if values fall below the minimum or above the maximum value set. Click on Use parameters to set model parameters as range bounds.
  • Animation Meter Colours

    Here you can set the following properties:

    Set Meter Value Colour
    This sets the colour of the current value text of the meter.

    Set Meter Grid Colour
    This sets the colour of the Meter Outline and also the colour of the Minimum, Maximum and Title text.

    Set Needle Colour
    This sets the colour of the Meter needle.

    Set Background Colour
    This sets the colour of the background of the Meter.
  • Style

    Here you can set the following properties:

    Needle Thickness
    Set the thickness of the meter needle displayed (pixels)

    Grid Thickness
    Set the thickness of the meter grid (pixels)
  • General

    This animation tool can be used to review the results of a previous run. In the "general" tab, "show vdf value (top loaded run)", if checked, will enable the animation object to display the value of the chosen variable from the top loaded run. Click on "use Vensim special time" to force the output to display values at special time. This can be used in conjunction with a slider to allow the user to review the results across the entire run, as the slider can be used to change the value of special time.


Animation Multi Coloured Bar

Sable Developer Help

Animation Object: Multicoloured Bar

Multi-Coloured Bars are used to display numeric dynamic data in the form of a single bar that will fill as the chosen value output from the model changes. The Multi-Coloured Bar Differs from the Bar animation because it allows you to set up to three colours in a bar which will be used when the value output from the model falls within the desired ranges.

  • Orientation and Value Range

    Here you can set the following properties:

    Ranges
    The minimum and maximum range of each of the three colour bands to be used to create the bar. Select Use parameters to use model parameters as range bounds.

    Animation Bar Orientation
    This controls the direction in which the bar will draw and fill the area, which the animation object covers.

  • Colour And Pattern

    Here you can set the following properties:

    Set Low Bar Colour
    This sets the main bar colour to be used when drawing the band defined by range 1. This is set to red as default.

    Set Middle Bar Colour
    This sets the main bar colour to be used when drawing the band defined by range 2. This is set to yellow as default.

    Set High Bar Colour
    This sets the main bar colour to be used when drawing the band defined by range 3. This is set to green as default.

    Set Low Pattern Colour
    This sets the colour to be used for a pattern if selected for the band defined by range 1. This is set to dark red as default.

    Set Middle Pattern Colour
    This sets the colour to be used for a pattern if selected for the band defined by range 2. This is set to dark red as default.

    Set High Pattern Colour
    This sets the colour to be used for a pattern if selected for the band defined by range 3. This is set to dark red as default.

    Set Back Colour
    This sets the background colour of the area, which the bar will fill. This is set to dark grey as default.

    The drop down box seen allows the pattern drawn on the bar to be set. There are several patterns available (see Bar animation objects for available patterns).
  • General

    This animation tool can be used to review the results of a previous run. In the "general" tab, "show vdf value (top loaded run)", if checked, will enable the animation object to display the value of the chosen variable from the top loaded run. Click on "use Vensim special time" to force the output to display values at special time. This can be used in conjunction with a slider to allow the user to review the results across the entire run, as the slider can be used to change the value of special time.


Animation Oscilloscope

Sable Developer Help

Animation Object: Oscilloscope

The oscilloscope animation object displays a dynamic trace of a selected parameter. An example is shown below.

  • Oscilloscope Settings

    Here you can set the following properties:

    Range
    Set the range for the y-axis. Select Use parameters to use model parameters as range bounds.

    X-axis Text
    Enter text to be displayed for the x-axis

    Y-axis Text
    Enter text to be displayed for the y-axis

    Show Text
    Check this box to display the text

    Show Grid Lines
    Check this box to display grid lines.

    Set background colour
    Set the background colour for the oscilloscope

    Set grid colour
    Set the colour for the oscilloscope grid

    Set plot colour
    Set the colour for the line trace.
  • General

    This animation tool can be used to review the results of a previous run. In the "general" tab, "show vdf value (top loaded run)", if checked, will enable the animation object to display the value of the chosen variable from the top loaded run. Click on "use Vensim special time" to force the output to display values at special time. This can be used in conjunction with a slider to allow the user to review the results across the entire run, as the slider can be used to change the value of special time.


Animation Pie

Sable Developer Help

Animation Object: Pie

The pie animation will display a pie showing the proportional achievement of a maximum value. For example, in an ecological system, a pie could be used to display the size of a fish population relative to the carrying capacity of the area (as in the example below).

  • Settings

    Here you can set the following properties:

    Pie Range
    The minimum and maximum range of the displayed pie. If these values are not known the control will automatically set the range values during the first run if values fall below the minimum or above the maximum value set. Check Use parameters to use model parameters as range bounds. For example, setting carrying capacity as an upper bound on fish stocks.

    Text Settings
    Set the text to be displayed in the centre of the pie; no text, percentage (of pie filled) or value of parameter.

    Set Background Colour
    This sets the background colour of the pie object

    Set Pie Colour
    This sets the main pie colour to be used.

    Set Text Colour
    This sets the colour of any displayed text.

    Set Pie Outline colour
    This sets the colour of the pie outline.
  • General

    This animation tool can be used to review the results of a previous run. In the "general" tab, "show vdf value (top loaded run)", if checked, will enable the animation object to display the value of the chosen variable from the top loaded run. Click on "use Vensim special time" to force the output to display values at special time. This can be used in conjunction with a slider to allow the user to review the results across the entire run, as the slider can be used to change the value of special time.


Animation Speedo

Sable Developer Help

Animation Object: Speedo

Speedos are used to display numeric dynamic data in the form of a dial with a needle that will move to indicate the chosen value output from the model.

  • Range

    Here you can set the following properties:

    Animation Speedometer Range
    The minimum and maximum range of the Speedo. If these values are not known the control will automatically set the range values during the first run if values fall below the minimum or above the maximum value set. Check Use Parameters to use model parameters as range bounds.

    Show Current Value Text
    By checking and unchecking this box the Speedo current value text can be shown or hidden.
  • Colour

    Here you can set the following properties:

    Set Speedo Value Colour
    This sets the colour of the current value text of the Speedo.

    Set Speedo Gauge Colour
    This sets the colour of the Speedo.

    Set Speedo Needle Colour
    This sets the colour of the Speedo needle.

    Set Speedo Background Colour
    This sets the colour of the background of the Speedo.
  • Style

    Here you can set the following properties:

    Needle Thickness
    Set the thickness of the speedo needle displayed (pixels)

    Grid Thickness
    Set the thickness of the speedo grid (pixels)
  • General

    This animation tool can be used to review the results of a previous run. In the "general" tab, "show vdf value (top loaded run)", if checked, will enable the animation object to display the value of the chosen variable from the top loaded run. Click on "use Vensim special time" to force the output to display values at special time. This can be used in conjunction with a slider to allow the user to review the results across the entire run, as the slider can be used to change the value of special time.


Animation Text

Sable Developer Help

Animation Object: Text

The animated text object can be used to output text to the screen as a result of model parameter values. The example below shows output in an animated text window.

  • Ranges

    Any number of text strings can be created, they will be displayed if the chosen model parameter's value falls within the specified range.

          •

    Insert a new range

    Delete the currently selected range

    Move the currently selected range up

    Move the currently selected range down

Once a range has been created, type the text straight into the Text field unless the desired text is to be multi-line. in this case, double-click on the text field for the range.
  • General

    This animation tool can be used to review the results of a previous run. In the "general" tab, "show vdf value (top loaded run)", if checked, will enable the animation object to display the value of the chosen variable from the top loaded run. Click on "use Vensim special time" to force the output to display values at special time. This can be used in conjunction with a slider to allow the user to review the results across the entire run, as the slider can be used to change the value of special time.


Custom Control

Sable Developer Help

Object Type: Custom Control

What is it for

Custom controls are a set of animation objects linked to constants or game variables in the underlying model. This allows the developer to create, for example, an animated bar linked to an underlying model assumption. Any user would simply drag the bar to increase or decrease this value.

Properties

  • General

    Tooltip
    Enter text to appear when the user hovers the cursor over the object. You can use the text entered in the comment field of the Vensim equation editor for any of the variables in the project model by clicking on the “description” button. On doing so, you will be asked to select a variable from the drop-down list, review the comment and select “ok” or “cancel”.

    Border
    Check box to add a thin border around the object.

    Transparent
    Check this box if the button is to be transparent.

    Disabled
    Check this box if the button is to be disabled.
    Update other controls
    Check this box if the actions of this button should result in other controls on the screen being updated.

    WIP
    Not required on object

     Control ID
    A unique identifier allocated to the object when it is created.

    Help ID
    Reference to the relevant help text in the user-defined help file for the project.

    Tab Order
    Enter a numeric figure for the order in which each object on the current screen would be highlighted when the user hits the “tab” key.
  • Extended Styles

    Select from 3 style types or combine them to create the desired appearance
  • Custom Control

    Click the Settings button to display properties particular to that custom control type. Click on one of the following custom control types to get more information on them.


Custom Control Bar

Sable Developer Help

Custom Control Object: Bar

The custom control bar is an object enabling a user to drag a coloured bar in order to set an assumption or goal in the model. In the example below, a vertical bar has been created in order to allow a user to select an investment level.

  • Range and Orientation

    Animation Bar Orientation
    decide on the direction in which the bar fills the object when values for the model parameter are to increase. In the above example, bottom to top is selected.

    Range
    enter the min and max values for the bar object. Select Use parameters to use model parameters as range bounds.
  • Colour and Patterns Settings

    Set Back Colour
    Select a colour for the background of the bar

    Set Bar Colour
    Select a colour for the bar

    Set Patern Colour
    Select a colour for the bar pattern. Use the drop-down box to select a pattern to be displayed on the bar.
  • Model Parameter

    Use the drop-down box to select a model parameter to be controlled by this custom control.


Custom Control Date or Time

Sable Developer Help

Custom Control Object: Date or Time

The custom date or time tool can be used to allow a user to make date related choices in a scenario. In the example below, the first diagram shows the appearance of the object in the screen, the second shows the date pop-up window which appears when the user clicks on the arrow. The user then selects a date, which is recorded by developer-defined model parameters.

  • Date Property Page

    Date format
    select short date (e.g. 17/02/1966), long date (17 February 1966) or time (14:42:53). Click on Custom format to modify the format of the date or time displayed. If a custom format is selected, use the preview window to observe the behaviour of the formatted object.

    Right Align
    right align the date

    Use Spin control
    shows a spin control to change the date, in place of a pop-up calendar window.

    Show None
    option for user to switch control off

    Allow Edit
    Check to allow run-time edit by the user. Uncheck if you simply wish to display a date.
  • Date and Time Parameters

    Indicate here the names of the parameters in the model holding each of the relevant date or time fields from the tool. In the above example, the date tool is used to view/change the start time for a number of construction project tasks and sub-tasks. The model stores these by day, month and year. It is up to the developer to figure out what to do with these values in the model!
  • Fonts & Colours

    Here you are able to change the appearance of the date tool.


Custom Control Duration

Sable Developer Help

Custom Control Object: Duration

The custom duration tool can be used to allow a user to make time (duration) related choices in a scenario. In the example below, the user can enter the duration of a construction task (centre) which is recorded by developer-defined model parameters.

  • Duration Control

    Days/Hours/Minutes Label
    Enter a label to displayed with the days, hours and minutes.

    Show spin button
    select to display a spin button for quick changes to duration values.

    Show Hours/Minutes
    click to show hours and minutes in the display.
  • Parameter Settings

    Indicate here the name of the parameter in the model holding each of the relevant duration fields from the tool. In the above example, the date tool is used to view/change the duration of a number of construction project tasks and sub-tasks. The model stores these by day only. It is up to the developer to figure out what to do with these values in the model!


Custom Control Meter

Sable Developer Help

Custom Control Object: Meter

The custom control meter is an object enabling a user to drag a meter dial in order to set an assumption or goal in the model. In the example below, a meter has been created in order to allow a user to select an investment level.

  • Meter Title and Ranges

    Meter Title
    Enter the title to be displayed on the meter.

    Animation Meter Range
    Enter the range of values to be displayed on the meter. Select Use parameters to use model parameters as meter range bounds.

    Meter Angle
    Enter the size of the meter in degrees

    Show current value
    check to display the value of the parameter in the meter

    Show min, max and title text
    check to display these items.
  • Animation Meter Colours

    Use these functions to change the appearance of the meter.
  • Style

    Use these options to change the thickness of the meter needle and border.
  • Model Parameter

    Use the drop-down box to select a parameter in the model to be controlled by this animation meter.


Custom Control Multcoloured Bar

Sable Developer Help

Custom Control Object: Multi Coloured Bar

The custom control multi-coloured bar is an object enabling a user to drag a multi-coloured bar in order to set an assumption or goal in the model. In the example below, a vertical bar has been created in order to allow a user to select an investment level. The coloured sections have been used to indicate the performance of the decision made (relative, say, to best practice).

  • Orientation and Value Ranges

    Animation Bar Orientation
    Decide on the direction in which the bar fills the object when values for the model parameter are to increase. In the above example, bottom to top is selected.

    Range
    Enter the min and max values for each of the three ranges in the bar object. Select Use parameters to use model parameters as range bounds.
  • Colour and Patterns Settings

    Use the set     colour buttons to set the background, bar and pattern colours for each of the three ranges.

    Use the drop-down box to select a pattern to be displayed on the bar.
  • Model Parameter

    Use the drop-down box to select a model parameter to be controlled by this custom control


Tab Control

Sable Developer Help

Object Type: Tab Control

What is it for

Tab controls are used to group controls on separate panels. The tab control is composed of the following features;

  • Multiple pages or "tabs"
    Each tab can be thought of as a screen and, as such, has it's own screen properties in addition to the general tab control properties described below. To access the properties of the particular selected tab page, right-mouse click on the page and select "properties". The properties page will look just like that of a screen object.

    All other object types can be placed on a tab page.
  • Tab Headers
    Each tab page can be accessed at run time by the user clicking on a tab header. The header usually contains some descriptive text to let the user know what to expect to see.
  • Navigation
    As there are likely to be multiple tab pages, navigation buttons are included to help navigate between them.

Properties

The properties of the tab control itself (as distinct from each individual tab screen) can be accessed by right-mouse clicking on the tab header bar (where all the tab headers are) and selecting "properties".

  • General

    Border
    Check box to add a thin border around the object.

    Update other controls
    Check this box if the actions of objects on this control should result in other controls on the screen being updated.

     Control ID
    A unique identifier allocated to the object when it is created.

    Help ID
    Reference to the relevant help text in the user-defined help file for the project.

    Tab Order
    Enter a numeric figure for the order in which each object on the current screen would be highlighted when the user hits the “tab” key.
  • Appearance

    Font
    Click here to view/change the font for the caption appearing on the button. Select the font type, size, colour and style.
  • Extended Styles

    Select from 3 style types or combine them to create the desired appearance
  • Tabs

     Here you can add, move and delete tab pages. There are four buttons in the Tabs window having the following functionality

    Insert a new tab page. Double-click the entry to change the name of the tab page.

    Delete the current tab page

    Move the currently selected page up

    Move the currently selected page down

  • Advanced

    This properties page is used to change the appearance of tab page headers. Individual tab pages themselves can be thought of as screens and, as such, they have their own properties. See the screens entry for configuration details.

    Alignment
    Select the location to display tab page headers; top, bottom, left or right.

    Height
    Enter the height of each tab header.

    Fixed Width Tabs
    Check this box if the tab headers should all be of the same width (and not determined by the length of the header text)

    Four Buttons
    Check this box to add two additional "navigation" buttons to allow the user to move rapidly to the first or last tab page.

    Auto Hide Buttons
    Check this box to automatically display the "navigation" buttons only if not all tab page headers cannot be displayed at the same time.

    Buttons After
    Check this box to display "navigation" buttons after the tab headers.

    Colours
    Use the colour setting to change the appearance of the tab header text and background.
    • Default Colours
      Use windows default colours
    • Background (selected)
      Select a background colour for user-selected tab page.
    • Background
      Select a background for all unselected tab pages.
    • Text (Selected)
      Select text colour for tab header text of user-selected tab page.
    • Text
      Select colour for tab header text on all unselected tab pages.


Multimedia

Sable Developer Help

Object Type: Multimedia

What is it for

Multimedia controls are used to play videos and sounds. Sable has support for Microsoft Windows Media player built into it. The button tool has a number of functions enabling control over multimedia applications embedded using this tool.

Properties

Multimedia is not currently implemented


Directory Structure

All Sable projects follow the same basic directory structure;

  • Folders

    The following folders are common to all Sable projects although not all are used all the time.

Common Files
Contains project elements available to multiple projects (when sub-projects are in used)

External DLLs
Place any DLLs required by the project here; e.g. for activex controls

Images
Any images to be used by the project should be placed here.

Graphs
Contains all user-defined TChart graphs. TChart graphs are automatically stored here and given names (the name is comprised of the screen name on which the graph appears and a unique object id)

Mini Screens
Contains all mini screens created for the project.

Model
The Vensim model and associated files can be found here. The model itself will be placed in this directory when the Project is created, all other model files need to be manually created and/or placed in this directory, including graph definition files, toolsets, list files, optimisation and sensitivity control files, Excel data sources etc.

Multimedia
Any multimedia files to be used by the project should be placed here.

Screens
Contains all screens created for the project.

Scripts
Any script files used by the project will be stored here. The default script file name is Extprog.vst

Subprojects
Any sub-projects will be found here

  • Files

    The following optional or essential project files will be created either automatically by Sable or manually by the developer.
    e/o | File | Install to | What is it? | Notes
    e | your model.VMF or .VPM | application directory>model | Vensim model (binary format) | Auto copied here when project created. Updates / new versions can be manually added to the directory.
    o | your toolset.VTS | application directory>model | Vensim tool set (customised) | Manually created by designer
    o | your custom graphs.VGF | application directory>model | Vensim custom graphs (binary format) | Manually created by designer
    o | vensim.ini | application directory>model | Vensim initialisation file. Sable will use this file on loading, if present. | Manually created by designer
    o | simdlx32.dll | application directory>model | Vensim compiled model file | Created when model compiled for redistribution
    o | subscriptmapping.ini | application directory>model | Subscript mapping file | Auto created when designer uses subscript mapping in Sable
    e | sablesim.dll | application directory>model | Sable redistribution dll
    e | your sable project.VNP | application directory | Sable project file | Auto created when project created
    o | stringtable.txt | application directory | String table text file (if used) | Auto created if using string text
    o | your graph(s).TEE | application directory>graphs | Tchart graph files (if used) | Auto created if using Tcharts
    o | your images.JPG/BMP etc | application directory>images | Image files used in the project | Manually created by designer
    e | your screen(s).VNN | application directory>screens | Sable project main screens | Auto created when designer adds new main screens
    o | your mini screen(s).VNN | application directory>mini screens | Sable project mini screens | Auto created when designer adds new mini screens
    o | extprog.vst | application directory>scripts | Sable script file | Manually created by designer


Sable Developer Help

Project Workspace

All Sable projects are composed of a number of files of specific types, such as screen and mini screen files, graphs and images. These are stored under the project directory structure and can be accessed, added and removed through the use of the project workspace.

To open the project workspace;

  • Menu option View>Workspace or
  • Click on the toggle workspace button from the standard tool bar or
  • Hit Ctrl-W on the keyboard.

Files

This tab displays a list of files in the project.

Properties

This tab enables a number of properties for the project to be set.

Title
Enter a title for the project. This will be displayed in the project title bar using the run-time version of Sable (not compulsory).

Subject
A subject for the project (not compulsory).

Author
Enter author information (not compulsory).

Include File Name
Check this box if the title bar is to include the name of the screen at run time. Uncheck if the title bar is only to display the project title. Use this in conjunction with the advanced properties of each screen, whereby you can enter a specific screen name to be displayed at run time (not necessary the name of the screen file).

Organisation
Enter the name of your organisation. It is important to enter the organisation name registered with the Sable redistribution Kit (if in possession). If this is not done, then the application will not work when distributed to users.

Initial Screen
Select the first screen to be loaded when the project is started up.

Splash Screen
Select the "splash screen" to be displayed when the project is started in run-time version of Sable. This is useful if you want to present application information and graphics on start-up. The splash screen will be a graphics files found in the images directory of the project (not compulsory).

Icon File
Allows the user to select an icon for use for the application. This icon will be displayed in place of the Sable icon when using ALT-TAB in windows, and also in the top left icon area of the app.

Help File
Select the help file to be used at run-time when the user selects "F1" or selects help from a runtime menu. Check the use compiled HTML help box if required (not compulsory).

Model
A model that the project operates on. You may also specify a toolset to be used by the project. The toolset must be created using Vensim (see Vensim help) and placed in the model sub-directory of the project.

Disable Navigation
Check this to disable screen navigation from the main menu bar, in runtime mode.

Disable replay net sim
N/A

Startup WIP enabled
Check this box to enable all objects WIP settings on project start-up.

Enable toolbars at runtime
Uncheck to disable the main runtime toolbar

Exit Message
Enter any text for the close-down dialog when the user closes the application (not compulsory).

Comments
Any other general comments (not compulsory).

Advanced

Click in the Advanced button to access advanced project properties.

License/Website Information
Here you may enter options to appear in the "about" dialog for the application. Enter the URL of your or the project website, and the name and company the application is licensed to.

SyntheSim Behaviour
Toggle the option for SyntheSim to update graphical results as slider bars are moved, or after slider bars have stopped moving. Leave unchecked on large models to speed execution of a SyntheSim session. See Vensim help for a description of SyntheSim.

Screen Size
Set the size of the project by selecting from a drop-down list of available resolutions. Sable can, if required, resize the project in the run-time version, to fit the resolution of the computer screen. Simply check the resize controls to fit screen check box.


Sable Developer Help

Design Mode

In order to create and modify objects on a Sable Project screen, Sable needs to be in design mode. Click on the "Design Mode" tool button or hit Ctrl-T on the keyboard to toggle design mode on and off. Objects on the screen are not active in design mode, only in run mode.


Sable Developer Help

Run Mode

In order to test a Sable Project in Sable Developer, Sable needs to be in run mode. Click on the "Design Mode" tool button or hit Ctrl-T on the keyboard to toggle design mode off. Objects on the screen will now be active. To modify objects, toggle back to design mode.


Sable Developer Help

Menu

There are 7 main menu items in Sable;

File
Edit
View
Insert
Layout
Tools
Help


Menu File

Sable Developer Help

Menu Item: File

 New
Create a new Sable project, screen or mini screen

 Open
Open a Sable project.

 Save
Save any changes made on the current screen.

Save As
Save a copy of the current screen under a new screen name. In order to use the new screen in the current or any project, you will need to import the screen.

Publish
Select this option to publish the application.

Print
Print graphs displayed on the screen. A message will appear if no graphs are currently available. If more than one graph is available, select from the list of available graphs.

Print Setup
Access printer setting options.

Import
Import screens or mini screens from other projects. Use this option to import screen copies made using “save as”.

Export

  • As XML
    Not available

  • Export screen text to string table
    Use this option to export text on the current screen to the string table. Text on buttons etc will be replaced by numeric pointers to the text strings stored in the string table.

Exit
Exit Sable


Menu Edit

Sable Developer Help

Menu Item: Edit

Cut
In design mode; delete the currently selected object(s) from the screen. A copy will be made in the clipboard for pasting elsewhere if required.

Copy
In design mode; copy the currently selected object(s) to the clipboard for pasting elsewhere on this or other screens in the project.

Paste
In design mode; Paste objects previously copied to the clipboard.

Find
Not currently available

Find & Replace
Not currently available

Insert New Object
Insert a graphic or document file as an OLE object. The object will appear as an icon to be double-clicked for activation. Sable can act as the client for OLE enabled applications. This allows documents, spreadsheets, presentations etc to be embedded within a Sable document that the user of the interface can access.

Select a file to link to act as the template for the object, or insert a new object. A list of supported OLE objects will be displayed when creating a new object.

Please note that not all OLE objects will be available on all machines. For example, if your user interface has a Microsoft Excel document embedded within it, and the end user does not have Excel installed, the object will not be accessible.

 String Table
View and change the list of string table elements.


Menu View

Sable Developer Help

Menu Item: View

 Toolbars

Standard
Display/hide the standard toolbar

Controls
Display/hide the controls toolbar

Align
Display/hide the align toolbar

Customise
Access dialog to customize the appearance of the toolbars in Sable.

Workspace
Display/hide the workspace

Design Mode
Toggle design mode on and off.

Grid
In design mode; display/hide grid.

Properties
In design mode; display properties of selected object.

Refresh
Force a redraw/refresh of the current screen.

Size
Change the size of the Sable project. This is a temporary change to test the best project size to use. See workspace for details on project size settings.

Status Bar
Show/hide the status bar (appears at the bottom of the screen).

View Subscript Mapping
Access the subscript mapping dialog.

View Text Editor
Open the text editor for editing scripts.


Menu Insert

Sable Developer Help

Menu Item: Insert

 Insert
In design mode; insert an object type in the current screen. Once an object type has been selected, click on the screen where the object is to be inserted.

Control Objects

  • Button
  • Check Button
  • Radio Button
  • Slider
  • Combo Box
  • List Box
  • Edit Box

Display Objects

  • Frame
  • Group Box
  • Text
  • Model View
  • Graph
  • Table
  • Vensim Tool
  • Animation
  • Custom Control
  • Tab Control
  • Multimedia


Menu Layout

Sable Developer Help

Menu Item: Layout

 Align
In design mode; align multiple objects to line up with the last selected object.

Space evenly
In design mode; vertically or horizontally space selected objects evenly between first and last selected object.

Make same size
In design mode; set selected object size to the dimensions of the last selected object. You may select only width or height, or both dimensions.

Size to content
In design mode; allow Sable to attempt to size object to any displayed content


Menu Tools

Sable Developer Help

Menu Item: Tools

 Draw Line
In design mode; draw a simple straight line on the screen. Once activated, click and hold left mouse button where you wish the line to begin and drag across to where the line should end, then release the mouse button. Double-click on the line to access it’s properties (or right-mouse-click and select “properties”). Grab the "handles" at the end of the line to move or realign. To delete the line, select the object and hit the delete key on the keyboard.

Draw rectangle
In design mode; draw a simple rectangular shape on the screen. Once activated, click and hold left mouse button where you wish the rectangle to begin and drag across the screen to describe the desired size, and then release the mouse button. Double-click on the rectangle to access it’s properties (or right-mouse-click and select “properties”). Grab the "handles" at the corner of the rectangle to move or reshape. To delete the rectangle, select the object and hit the delete key on the keyboard.

Draw round rectangle
In design mode; draw a rectangular with rounded edges on the screen. Once activated, click and hold left mouse button where you wish the rectangle to begin and drag across the screen to describe the desired size, and then release the mouse button. Double-click on the rectangle to access it’s properties (or right-mouse-click and select “properties”). Grab the "handles" at the corner of the rectangle to move or reshape. To delete the rectangle, select the object and hit the delete key on the keyboard.

Draw Ellipse
In design mode; draw an ellipse shape on the screen. Once activated, click and hold left mouse button where you wish the ellipse to begin and drag across the screen to describe the desired size, and then release the mouse button. Double-click on the ellipse to access it’s properties (or right-mouse-click and select “properties”). Grab the "handles" at the corner of the ellipse to move or reshape. To delete the ellipse, select the object and hit the delete key on the keyboard.

Move to front
In design mode; use to move selected drawing object (rectangle, ellipse or line) to the front.

Move to back
In design mode; use to move selected drawing object (rectangle, ellipse or line) to the back.

Move forward
In design mode; use to move selected drawing object (rectangle, ellipse or line) one place to the front.

Move back
In design mode; use to move selected drawing object (rectangle, ellipse or line) one place to the back.

Protect Screen
Set a password to protect the screen. By default, the screen is only protected in Sable Developer, preventing other developers from opening the screen with their own copy of Sable Developer. There is also a check box for activating this protection in runtime. In this case, all users of the project will need to enter the password before continuing.

Set Font
In design mode; set the font on multiple selected objects.

Set Tab Order
The tab order is usually a number from 1 to 1000 which sets the order in which controls are visited when pressing the tab key. Use this tool to set the tab order value for selected objects on the screen.

Set Control Update
In design mode; toggle the properties setting for “update other controls”.

Customise
Access dialog to customize the appearance of the toolbars in Sable.

Options

Controls
Set default appearance for each object type, such as button, combo box, check button etc.

Design

Grid
Set options for grid size and toggle on/off snap-to-grid

Parent/Sub-projects
Toggle on/off default message displayed when moving between parent and sub-projects


Menu Help

Sable Developer Help

Menu Item: Help

 Help index
Access the Sable help system.

Online forum
Click to go to the online Forum for Sable and Vensim.

About sable
Information about your copy of Sable including version, build number, license unlock code and maintenance expiry date.


Toolbar

There are 3 toolbars in Sable;

Standard
Controls
Align


Toolbar Standard

Sable Developer Help

Toolbar: Standard

New
Create a new Sable project, screen or mini screen

Open
Open a Sable project.

Save
Save any changes made on the current screen.

Cut
In design mode; delete the currently selected object(s) from the screen. A copy will be made in the clipboard for pasting elsewhere if required.

Copy
In design mode; copy the currently selected object(s) to the clipboard for pasting elsewhere on this or other screens in the project.

Paste
In design mode; Paste objects previously copied to the clipboard.

Back
Navigate back to the last screen (if active).

Next
Navigate forward to the next screen (if active and if previous back navigation used).

Refresh
Force a redraw/refresh of the current screen.

Design Mode
Toggle design mode on/off.

Toggle grid
In design mode; display/hide grid.

Toggle workspace
Display/hide the workspace.

Print graph
Print graphs displayed on the screen. A message will appear if no graphs are currently available. If more than one graph is available, select from the list of available graphs.

Help
Display context sensitive help (if any).

About
Information about your copy of Sable including version, build number, license unlock code and maintenance expiry date.


Toolbar Controls

Sable Developer Help

Toolbar: Controls

Control Objects

  • Button
  • Check Button
  • Radio Button
  • Slider
  • Combo Box
  • List Box
  • Edit Box

Display Objects

  • Frame
  • Group Box
  • Text
  • Model View
  • Graph
  • Table
  • Vensim Tool
  • Animation
  • Custom Control
  • Tab Control
  • Multimedia


Toolbar Align

Sable Developer Help

Toolbar: Align

Align left
In design mode; align multiple objects to line up with the last selected object.

Align right
In design mode; align multiple objects to line up with the last selected object.

Align top
In design mode; align multiple objects to line up with the last selected object.

Align bottom
In design mode; align multiple objects to line up with the last selected object.

Same size
In design mode; set selected object size to the dimensions of the last selected object.

Same height
In design mode; set selected object height to the height of the last selected object.

Same width
In design mode; set selected object width to the width of the last selected object.

Space across
In design mode; horizontally space selected objects evenly between first and last selected object.

Space down
In design mode; vertically space selected objects evenly between first and last selected object.


Script Languages

Sable Developer Help

Advanced: Scripting Languages

Sable can make use of a number of different scripting languages. It has its own built in language SableScript, plus any Microsoft Windows scripting language (such as VBScript or JScript) can be executed.

It is recommended to use Microsoft Windows Script as it can make use of a number of different languages, and also comes with a code debugger (there is no way of debugging SableScript).

Microsoft Windows Script

SableScript


Sable Developer Help

Microsoft Scripting Languages

Microsoft operating systems ship with the ability to execute VBScript and JScript. You can also download a script debugger that will enable you to step through your code and correct any errors.

To make use of VBScript or JScript, you need to save a .vbs or .js file into the scripts sub-directory of the Sable project. These will be automatically read when the project is opened.

Full documentation for VBScript and JScript are available on the Microsoft Scripting Home Page..

The Microsoft Script debugger can be downloaded from Script Debugger download

Sable has a number of extensions that allow VBScript and JScript to interact with Sable. These are documented here.

Microsoft Scripting Links


Windows Script Control Sable Extensions

Sable Developer Help

Microsoft Scripting Languages: Windows Script Control Sable Extensions

Sable has a number of extensions that allow Microsoft Scripting Languages to interact with Sable.

VBScript.

To access the sable extensions from VBScript, the word "Sable" must appear before each command. For example, to have a subroutine that moves to a different screen

Sub MoveToMainExample
Sable.MoveToMainScreen("main.vnn")
End Sub

Available commands are listed below.

JScript.

JScript can call Sable commands in the same way it calls normal commands. For example, a JScript version of the code above would be

Function MoveToMainExample
{

MoveToMainScreen("main.vnn")

}

Commands

The following functions are available to VBScript and JScript.

SetModelVar(string ModelVariable, float NewValue);

MoveToMainScreen(string
ScreenName)
MoveToMiniScreen(string ScreenName)
int RunVenappCommand(string VenappCommand)
SableLoadRun(string RunName)
SableClearRuns()
MoveToPreviousScreen()
SimulationStart()
SimulationStop()
SimulationRun()
SimulationContinue()
EditModelINI()
ShowPleaseWaitDlg(string Message)
HidePleaseWaitDlg()
string GetRunName(int RunNumber)
int  GetNumRuns()

float GetModelVar(string ModelVariable)
string FileOpenDialog(string Prompt, string DefaultExtension, string DefaultFile, string Filter)

string FileSaveDialog(string Prompt, string DefaultExtension, string DefaultFile, string Filter)
int DayOfMonth()

int  MonthOfYear()
int
CurrentYear()
int
GetNumberOfSubscriptRanges()
int  GetNumberOfParameters()
int  GetNumberOfConstants()

string GetSubscriptRangeName(int SubscriptNumber)
string GetSubscriptElement(string SubscriptRange, int SubscriptElement)
 int GetNumberOfSubscriptElements(string SubscriptRange)


Sable Script

Sable Developer Help

Scripting Languages: SableScript

SableScript is Sable's built in programming language. It is useful for a number of different conditions such as conditional decisions and loading specific runs.
  • Getting SableScript into Sable
  • Language layout
  • Commands


Sablescript into Sable

Sable Developer Help

SableScript: Getting SableScript Into Sable

Create a text file in the Scripts directory of your project and ensure it has the file extension "VST". Sable will search for all .VST files when the project is opened and read in any subroutines defined within it.


Sablescript Language Layout

Sable Developer Help

SableScript: SableScript Language Layout

The language consists of subroutines (as in all programming languages). Each subroutine can have values passed to it, and return values (ie, act as a function). The following are definitions of subroutines (all subroutines MUST start with sub, followed by brackets (even if the brackets do not contain any parameters, and MUST finish with end sub).

sub OpenDocument(Byval documentname as string)

end sub

sub CheckData() as integer

end sub

sub NextButton_Click()

end sub


SableScript Commands

Sable Developer Help

SableScript: SableScript Commands

The following denote the available commands to the SableScript language.

Conditional Statements

The following examples show if statements. Please note that 'and' and 'or' do NOT work.

if ( variable = value )

end if

if ( variable = variable )

end if

if ( value = value )

end if

Loops

The following example shows a loop structure.

for( number = lowerbound , number = upperbound , step increment )

end for

Variable assignment

Variables can be assigned to each other.

variable = value

Variable declaration

Variables need to be declared before use. Variables declared as global must be listed outside of any subroutine.

dim variable as string

dim variable as integer

dim variable as float

dim variable as double

global variable as string

global variable as integer

global variable as float

global variable as double

Return values

Functions can return values.

sub test()

dim x as float

x = test1(2,2)

end sub

sub test(byval var1 as float, byval var2 as float) as float

if ( var1 = var2 )

return 1

end if

return 0

end sub

Inbuilt Subroutines

SableScript has the following inbuilt subroutines.

call Sleep(miliseconds) 'sleep function

call SETMODELVAR(modelvar,value) 'set a model variable.

call MoveToMainScreen(screenname) 'move to a screen

call MoveToMiniScreen(screenname) 'display a mini screen

call RunVenappCommand(command) 'execute a venapp command

call SableLoadRun(runname) 'load a run (for graphics)

call SableClearRuns() 'unload all currently loaded runs

call ExecuteOCXCommand(ocxname,command) 'issue a command to an OCX

call MoveToPreviousScreen() 'move to previously active screen

call SimulationStart() 'simulation start

call SimulationStop() 'simulation stop

call SimulationRun() 'simulation run

call SimulationContinue() 'simulation continue

call DisplayDataCentreDialog() 'display the datacentre logon dialog

call DisplayExternalFunctionVersion() 'display external function library version

call DisplayGameRecorderDialog() 'display game recorder dialog

call DisplayMemfileToolsDialog() 'display memory file tools dialog

call EditModelINI() 'edit model.ini

call DisplayMapDDESettings() 'display external function library version

call ShowPleaseWaitDlg(messagetodisplay) 'display an "in progress" dialog with your message

call HidePleaseWaitDlg() 'hide the please wait dialog.

Inbuilt Functions

SableScript has the following inbuilt functions.

number = GETMODELVAR(variablename) 'get a model variable

string = getrunname(runnumber) 'get the active run name

number = getnumruns() 'get the number of runs loaded

number = strlen(string) 'string length

string = strleft(string,length) 'left portion of a string

string = strright(string,length) 'right portion of a string

string = strfind(string1,string2) 'find a character in a string

string = strrevfindstring1,string2 'find a character searching backwards

string = strcat(string1,string2) 'concatenate two strings

string = FileOpenDlg(title,defaultextension,defaultfilename,filter) 'display a file open dialog

string = FileSaveDlg(title,defaultextension,defaultfilename,filter) 'display a file save dialog

string = InputBox(text,title,defaultstring) 'ask the user for input

string = GetPrivateProfileString(section,keyname,default,inifile) 'get data from an ini file

number = GetPrivateProfileInt(section,keyname,default,inifile) 'get data from an ini file

Mathematical Functions

SableScript has the following mathematical functions.

number = sin(number)

number = cos(number)

number = tan(number)

number = abs(number)

number = ARCTAN(number)

number = ARCCOS(number)

number = ARCSIN(number)

number = Exp(number)

number = Log(number)

number = Sqr(number)

number = multiply(x,y)

number = add(x,y)

number = subtract(x,y)

number = divide(x,y)

MessageBox Functions

The following displays a messgebox.

number = msgbox ( text , title , style )

style = one of the following

MB_ABORTRETRYIGNORE, MB_OK, MB_OKCANCEL, MB_RETRYCANCEL, MB_YESNO, MB_YESNOCANCEL, MB_YESNOCANCEL

Reserved Functions

The following functions will be called if they exist.

sub OnFileNew()

end sub

sub OnFileSave()

end sub

sub OnFileOpen()

end sub

sub OnProjectOpen()

end sub

sub OnProjectClose()

end sub


ActiveX

Sable Developer Help

Publish

With this feature, you are able to publish the Sable/Vensim solution as a single file ("spk"). SPK files can be opened directly by Sable in the same way as a standard VNP file.

To publish the application, select the menu option "Publish" from menu item "File".

You will be shown a "Publish Package" dialog.

Sable will highlight those files in the project to be included in the published version, simply select or de-select using the check boxes adjacent to the file names.

Installation to local library

This section of the dialog is used by the SableNet application and is not yet available for purchase.


Sable Developer Help

Sub Projects

Sable has the ability to allow projects to be linked, as sub-projects. This is particularly helpful where a suite of models and interfaces are to be used.

Once a sub-project has been created, you will have access to all the files available in the "common" sub-directory

To switch between parent project and sub-project, use the button command class x commands "Open parent project" and "open sub project"

Sub projects are able to make use of resources (graphics, screens etc) designed for the parent project. To allow this, place the desired resource into the "Common Files" directory of the project workspace. These resources will then be available for use in the sub-project.


Sable Developer Help

ActiveX

It is assumed that the reader of this section is familiar with programming ActiveX controls.

Sable can use ActiveX controls as a main screen or a mini screen. A DLL is loaded which acts as the interface between the ActiveX control and Sable. Information is stored within a file called "model.ini" which must be located in the same directory as the model.

The first thing the model.ini file must contain is a list of all controls. The following example has two ActiveX controls, GIS and Advanced Input Screen. All controls must be in numerical order, Sable stops searching when a number is not found (for example, if there was a control 5 in the list below, it would not be loaded because Sable would stop searching at External Link 3).

[External Links]
External Link 1 = GIS
External Link 2 = Advanced Input Screen

Sable now accesses each link in turn and attempts to load it. The following section is used to load the GIS ActiveX control.

[GIS]
DLL = GIS_Sable.dll
OCXString = GisExtension.GISMainWindowControl
SableLOADONSTARTUP = YES
SableMINISCREEN = NO
SableCOORDINATES = 50, 50, 250, 400
Before Sim Command 1 = "before sim demo command 1"
..
..
Before Sim Command n = "before sim demo command n"
After Sim Command 1 = "after sim demo command 1"
..
..
After Sim Command n = "after sim demo command n"

The DLL entry tells Sable which DLL to load. A copy of the DLL is required by each ActiveX control (even though the DLL is identical). There can only be one instance of a DLL loaded within a process.

The OCX string refers to the name of the ActiveX control. This should be known by the programmer. The DLL uses this to create the correct control.

The SableLOADONSTARTUP flag should be set if Sable is to load the control when the project is loaded.

The SableMINISCREEN flag should be set if this control is to be a mini screen.

SableCOORDINATES are the screen coordinates for mini screens. They are ignored when the SableMINISCREEN flag is not set.

The Before Sim Command and After Sim Command are executed before each simulation and after each simulation.

The following section is for the

[Advanced Input Screen]
DLL = AIS_Sable.dll
OCXString = SableScreenControl.Advanced_Input
SableLOADONSTARTUP = YES
SableMINISCREEN = NO
SableCOORDINATES = 50, 50, 250, 400
Before Sim Command 1 = "before sim demo command 1"
..
..
Before Sim Command n = "before sim demo command n"
After Sim Command 1 = "after sim demo command 1"
..
..
After Sim Command n = "after sim demo command n"

As you can see the settings are very similar to the GIS section. The DLL is AIS_Sable.DLL (which is identical to GIS_Sable.DLL (copied and renamed)).

There are certain functions that must be present within the ActiveX control for it to function correctly. Click one of the following links to download a zip file containing template projects that should be used to build ActiveX controls. There are comments within the source code explaining each of the functions and how to use them.


Sable Developer Help

Subscript Mapping

Sable developers are able to make use of Sable subscript mapping in order to change the names of subscript elements used by the sable application without changing their names in the Vensim model. This can be useful when configuring the solution for other end-users and scenarios where the default model subscript element names do not make sense.

In order to make use of subscript mapping, use the menu option "View Subscript Mapping", which can be found under the "view" menu.

In the example above, a Vensim subscript range called "car type" has been loaded. All model subscript elements for the selected range are shown in the "Subscript Elements" window and any mapping to new names shown in the "Mapping" window. To add/change mapping, select a subscript element, the corresponding mapping will be shown. In the "select mapping type" box, select "Constant" for a permanent mapping of the element. In the example, the Vensim model has an element called "suv" (sports utility vehicle" which, in our particular application we want to make use of the European "4x4" or "four by four" in it's stead. Anywhere in the interface where the subscript element "suv" would have been displaced will now display "4x4".


String Tables

Sable Developer Help

String Table

String tables allow a developer to quickly change the text used on buttons and in combo boxes, list boxes, in text boxes etc, without changing the text embedded in the object itself. In the objects will be the value of an integer in place of text, this will be cross-referenced to the corresponding text in the string table.

In the example above, the text ID's "1", "2" and "3" would be substituted with the text strings "large", "medium" and "small" in the interface. This enables the developer to tailor rapidly the interface without changing object properties.

A file called "STRINGTABLE.TXT" is created in the project directory. If required, this can be edited using any text editor instead of the dialog above.

See the File menu option "export" for a means to create a string table for the a selected screen.


Sable Developer Help

Template Screens

In many projects there may be screens with common objects associated with them. It is useful, therefore, to be able to design a template containing these common objects and reference them whenever and wherever required by the project.

Create a template screen in the same way as you would create a main screen.

To make use of the template screen, access the properties of the screen in which the template is to be used, see below.

Check the box "this screen uses another as a template" and use the "Select parent screen" dropdown box to select the desired template screen.

You may specify the object types and screen properties to be "copied" from the template, from copying the background only through to all objects, activation and deactivation commands.

When this screen is loaded, the selected objects from the template screen are displayed, together with any additional objects added to the screen.


Sable Developer Help

Linked Controls

There may be instances in interface design where a series of objects need to be present on multiple screens, in the same relative position. For example, a series of navigation buttons or simulation control buttons may be common to all screens. In order to avoid repeating the construction of these controls, and to ensure their exact relative location and commands, Sable users may use the linked objects capability of main screens.

Right-mouse-click on a screen will bring up the screen properties dialog. Navigate to the "linked Controls" tab to add new linked controls to the screen.

Here you can specify a number of controls from other screens to appear on this screen. There are four buttons with the following functionality.

Insert a linked control

Delete the currently selected linked control

Move the currently selected linked control up

Move the currently selected linked control down

To add a new linked object to the current screen:

1. Insert a new linked control

2. In the left hand window will appear the name of the screen to select a control from; the default is "<screen>.VNN". Double-click on this name and select the desired screen from the drop-down list control that appears.

3. In the right hand window will appear the unique object id of the control to be copied from the selected screen, the default appears as "0000". Double click on this and select the desired object from the drop-down list control that appears.

In design mode, a white space will appear in the correct position for the linked control, with the text "linked control" in the centre. In run-time mode, the actual control is displayed and is active.


New Page 1

Sable Developer

Sable Developer is the version of Sable allowing developers to create application interfaces for their Vensim models. Developer can also be used to run Sable/Vensim applications although some run-specific settings, such as custom menus, would be lost.


New Page 1

Sable Runtime

Sable Runtime is a version of Sable allowing users to run Sable applications but not modify them. Sable Runtime is a freely distributable version of the software and means that the user does not require Sable or Vensim on their computer in order for the application to run.


Editor

Further Information

Introduction | Editor design | Chart pages
Series Pages | Add Series | AdjustFrame
Alignment | Enable Zoom | Angle
Animated | AreaBrush | Marks Arrow
AutoMarkPosition | Automatic | AxisPen
Marks Back Colour | BackImageLoad | BarBrush
Bevel offset | Border style | Brush
Candle style | Caption | ChangeSeriesType
Scroll | Chart3DPercent | ShowPreview
CircleBackColor | Circled | Clipped
ClipPoints | Clone Series | PanelColor
Color | Chart Title Color | ColorEachPoint
ColorWidth | ConnectingPen | Series Cursor
Dark3D | Datasource | DateTime
Depth size | Direction | DividingLines
Down Close Colour | Draw3D | Elevation
EndColor | End | Error Pen
Error Style | ExchangeSeries | ExplodeBiggest
First/Last | Font | Frame
GridCentered | GridPen | RotationAngle
Axis Maximum | InflateMargins | Inverted
Labels Visible | Legend Style | LineBrush
Logarithmic | Margins | MaxPointsPerPage
Minimum | MinorTickCount | Minimum
MultiArea | MultiBar | Next Page
Number of Levels | OffsetPercent | Orthogonal
OtherSlice | Current | Candle Pen
Pen | PercentFormat | Period
Perspective | CirclePen | Position
Previous Page | RemoveSeries | ResizeChart
Circle Labels Rotated | Rotation | RoundFirstLabel
Export Chart | ScaleLastPage | Color
Set Function source | ShadowColor | ShadowSize
Show Close Tick | Show in Legend | Show Open Tick
SideMargins | Stairs | StartColor
Start | Style | Marks Style
Style | Axes | Gradient
Titles' Brush | Titles | Wall Brush
Size | Text | Legend Text Style
TickInnerLength | Tilt | Depth size of grid
Title | TopPos | Transparent
Up Close Colour | Set Series to a colour range | Use palette
Value | Vertical Axis | View3D
Visible Walls | Width | X
Origin | Y Position | Zoom
Error T width units


Sable Developer Help

Custom Menu

Sable enables a developer to create a customised menu for the project. This menu becomes visible and active only in the runtime version of Sable.

To create a custom menu;

  • access the properties of any screen in the project.
  • Navigate to the menu tab. Here you may add, delete, set-up and edit menu items for the project.
  • First, activate a custom menu by checking the Use menu check box.
  • Under category select the menu category for the new menu item. You may add to the default file, view and help categories, or you may create up to a further five custom categories.
  • Under menu title enter the name for the menu category.
  • Now, add menu items to the category.

Insert a new menu item

Delete the currently selected menu item

Move the currently selected menu item up

Move the currently selected menu item down

  • Add a menu item and double-click on the entry to rename it and to activate the search button. This allows access to the commands to be enacted by the menu item.

The commands are, in the main, exactly those as described for buttons.
In addition, the following command classes become available:

Menu

This class of command, for the custom menu, contains the following command types:

About Sable

Adds the standard "About" dialog to the menu.
Exit | Exit the application
Help Index | Bring up the help system
Open Project | Bring up the open project dialog
Print | Bring up the windows print dialog
Print Setup | Bring up the windows print setup dialog
Status Bar | Toggle the status bar on and off
Toolbar | Toggle toolbar on and off
Separator | Add a separator in the menu

Script

This menu command option allows you to activate a Sable script from the menu.


Venapp

Sable Developer Help

Venapp Commands

The following Vensim Application (VenApp) commands can be called through the use of the button object in Sable. Refer to the Vensim help system for details on each command.

FILE

COPY|{oldname}|{newname}

CREATE|{filename}

DELETE|{filename}

EXISTS|{filename}

RENAME|{oldname}|{newname}

GAME

BACKUP|{totime}

ENDGAME

GAMEINTERVAL|{value}

GAMEON

READGIN|{filename}

RELOAD

WRITEGIN|{filename}[|{savelist}]

IF THEN ELSE
 N/A

LOG

 CREATE|{filename}

MESSAGE|{filename}|{message}

TIMESTAMP|{filename}

MENU

DAT2VDF|{datafile or ?}|{vdffile or ?}

GAME

LOAD_RUN|{runname or ?}

RUN[|o]

RUN1[|o]

RUN_OPTIMIZE[|o]

RUN_SENSITIVITY[|o]

SYNTHESIM|{o}

TAB2VDF|{tabfile or ?}|{outfile or ?}|{format file}

VDF2DAT|{vdffile or ?}|{datfile or ?}|{savelist or ?}|{+}|

VDF2TAB|{vdffile or ?}|{tabfile or ?}|{savelist or ?}|{+*!number}

VDF2WK1|{vdffile or ?}|{tabfile or ?}|{savelist or ?}|{+*!number}

VDF2XLS|{vdffile or ?}|{tabfile or ?}|{savelist or ?}|{+*!number}

WK12VDF|{tabfile or ?}|{outfile or ?}|{format file}

XLS2VDF|{tabfile or ?}|{outfile or ?}|{format file}

SETTING

EXPORTSIZE|{n}

EXTTERNALFUNCTION|{dll name}

HOVERCOM

PRINTOPTQUERY|{n}

SHOWMACRO|{n}

SHOWWARNING|{n}

SIZEINCHES|{n}

SIMULATE

1TABCHG|{varname}

ADDCIN|{cinfile}

ADDDATA|{vdffile}

BASED|{oldrun}

CHGFILE|{cinfile}

DATA|{filelist}

GETCNSTCHG|{varname}

GETTABCHG|{varname}

MINMEM|{n}

OPTPARM|{optfile}

PAYOFF|{payfile}

READCIN|{cinfile}

READRUNCHG|{oldfile}

RESUME|{n}

RUNNAME|{runname}

SAVELIST|{savelist}

SENSITIVITY|{sens file}

SENSSAVELIST|{savelist}

SETVAL|{var=val or var((x1,y1)...(xn,yn)) or var :IS: literal}

SPREADALIAS|{?alias=filename.xls}

WRITECIN|{cinfile}

SPECIAL

ASKYESNO|{question}

CLEARRUNS|{n}

LOADMODEL|{mdlname}

LOADRUN|{runname}

LOADTOOLSET|{toolname}

MESSAGE|{severe}|{title}|{string}

READCUSTOM|{graphfile}

READINI|{inifile}

SETWBITEM|{varname}

STOP|{message}

STOPSIM|{option}

SUBSCRIPT|{range}|{elem1}|{elem2}

VARSELECT|{prompt}

SYNTHESIM

AUTO|n {n is 0 or 1}

SYNTHESIM>GO|n {(n is 0 or 1)}

TEST

N/A

TIMEAXIS

RESET

SPECIALTIME|{value}

STARTTIME|{value}

STOPTIME|{value}


FAQ1

Sable Developer Help

Frequently Asked Questions: How do I attach a button to a graph?

To link a button to a graph you need to know the graph ID number. This is accessible from the general property page for the graph. The following diagram shows the general property page for a graph with the ID number as 509.

Create a button and access the "button" property page. Add a command of Type "Graph" and double-click on the field in the Commands: frame.

When you add a command for a graph, the following dialog is displayed.

Select the command and enter the graph ID number.


FAQ2

Sable Developer Help

Frequently Asked Questions: How do I change the model that Sable is using?

Sable can only access models that are saved in the model directory of the project. Save the changed model into this directory before proceeding. Note that you must also save the model in binary format (.vmf) or packaged (.vpm).

 You can change the model that Sable uses by using the project properties page. Click the [image] button on the toolbar to display the project workspace and select the properties tab (as shown below).

As you can see, there is an entry for "Model".

To the right of this there is a browse button [image]. Click this to display the following dialog.

The drop down box "Model file" contains a list of all models saved in the model directory. Click and select the new model to work with.


FAQ3

Sable Developer Help

Frequently Asked Questions: How do I make use of the Vensim redistribution DLL (vendlx32.dll) ?

To prepare the files for use with the Vensim redistribution DLL, please refer to the documentation that ships with the Vensim redistribution kit.

When all files have been prepared, you must add the Vensim redistribution DLL to the project. Save a copy of the DLL into the model directory. When Sable loads, it will search here first for vendlx32.dll, and if it exists, it will be loaded instead of any other vensim dlls.


FAQ

Sable Developer Help

Frequently Asked Questions: Sable cannot use the Vensim minimal DLL. Why?

Vensim has very good graphics capabilities, and these are not available from the minimal DLL. The minimal DLL does not support viewing of Vensim sketches (the model diagram) and this is normally put somewhere into user interfaces. Because of this, Sable requires the FULL DLL.


FAQ5

Sable Developer Help

Frequently Asked Questions: There is an edit-box in my project that is displaying a "rubbish" value. Why?

This happens when the model is changed, and the user interface is not. Look at the control that is displaying the "rubbish" value and check to see if the parameter still exists in the model.


FAQ6

Sable Developer Help

Frequently Asked Questions: How do I get Vensim to run a compiled model?

There is a sub-directory in the Vensim directory called COMP. In this directory is a file called MDL.BAT. Edit this and read the text within the file. It points out two lines that are commented out, the comment statements need to be removed. Once removed, Sable will run the compiled model (provided the model has been compiled).

Refer to the Vensim DSS32 supplement manual for more information on compiling models.


FAQ7

Sable Developer Help

Frequently Asked Questions: How do I make use of a Vensim external function library?

To load a Vensim external function library, the best way is to use a Vensim.ini file. Save the Vensim.ini file to the same directory as the model, and when Sable loads, the settings within Vensim.ini will be applied to the DLL (ensure that the Vensim.ini file loads the correct external function library).

Refer to the Vensim DSS32 supplement manual for more information on external function libraries.


FAQ8

Sable Developer Help

Frequently Asked Questions: I have a screen from an old project and would like to use it in another. How do I do this?

There is an Import menu item under the "File" menu. This has two sub menu items, "Import Main Screen" and "Import Mini Screen". Select the relevant one. The standard windows file open dialog is displayed and you can browse for the screen file. Select the screen file you want, and click "Open". The file will then be copied to the screen/mini screens directory and added to the project.


FAQ9

Sable Developer Help

Frequently Asked Questions: How do you use a Vensim custom graph?

Sable can only access custom graphs if they are saved as a binary file. This is easily done in Vensim by selecting "Save As" from the custom graph dialog, and selecting the file type as "Binary Graph Definition".

Now you need to ensure that the graph set is loaded by Sable when your project loads. The easiest way to achieve this is to assign an activation command to the very first screen your project has. The command should be something like "SPECIAL>READCUSTOM|{graphfile}" where {graphfile} is the name of the custom graph file.

With the toolset loaded, insert a vensim tool and access the Vensim Tool property page, as shown below.

Select the "Custom Graph" checkbox, and the "Tool" drop down box will present a list of the currently loaded custom graphs. Select the one you want to see and close the property page. the dialog below shows the "DMO_CUST_GRAPH" as the selected custom graph.

You should now have a Vensim custom graph displayed.


FAQ10

Sable Developer Help

Frequently Asked Questions: I have an edit box, and no value is appearing. Why?

This happens when the edit box is too small to show the value it needs to. Make the edit box larger, or right-click on the object and select size to content.


FAQ11

Sable Developer Help

Frequently Asked Questions: How do I make use of a vensim.ini file?

Prepare the vensim.ini file. Save this to the model directory of the project. When Sable loads, it will look here for a vensim.ini file, and if it exists, will load it.


FAQ12

Sable Developer Help

Frequently Asked Questions: How do I change the startup screen for a project?

Click View on the menu, then click "Workspace". This can also be accessed by pressing the [image] button or hitting Ctrl-W on the keyboard.

You will now see the project workspace. Click the "properties" tab, and one of the options you can set is "Initial Screen".


FAQ13

Sable Developer Help

Frequently Asked Questions: How do I insert a graphic into a screen?

Graphics are easily inserted into frame controls. Click here for details on frame controls.


FAQ14

Sable Developer Help

Frequently Asked Questions: How do I make use of a Vensim Toolset?

Save the toolset to the MODEL sub-directory of the Sable Project.

Now go to the project workspace, select the properties tab and click the button next to "model".

You will see a drop down box that can be used to select the toolset.


FAQ15

Sable Developer Help

Frequently Asked Questions: Can I plot one variable against another in TChart?

Go to the properties dialog for the graph and select "Advanced1" tab.

Next, click on the browse button next to the "Time Base" field, this will give access to all variables in the model.

Now, select the variable to display on the x-axis of the chart.


Error Pen
Use this parameter to change Pen characteristics for the drawn Error.


Error Style
The Error Style parameter sets direction to which to align the Error value.


Font
Text font for Legend Text. Text font for text placed in a ChartShape Series' Shape. The Marks Font property determines the font used to draw the Series Marks. The Circle Labels Font characteristics for the Circle Labels. Text font for Axis titles. Text font for the Chart title text.


Frame
Enables diables the chart reectangle surrounding frame. Enables/disables the rectangle surrounding the Legend.

The Marks Frame property determines the kind of pen used to draw a rectangle around a Series Marks.


Elevation
Elevation describes front plane rotation by rotation degrees (0 - 360º). Increasing the value positively will bring the top of the Chart towards the viewer and the bottom of the Chart away.


Draw3D
The Draw3D property controls if Series Pointers will be drawn in a 3D way or not. Currently only rectangle points have 3D capability.


ExplodeBiggest
Use this property to explode out from the chart the largest slice.


First/Last
Use the 'First' and 'Last' buttons to show the first or last Chart page on a multipage Chart.


GridPen
Pen used to draw Chart Grid Lines.


EndColor
The EndColor property is one of the two colors used to create the gradient fill. The gradient fill is composed of two colors: StartColor and EndColor.


End
End of Axis as percentage of width (horizontal Axis) and height (vertical Axis) of the Chart rectangle. The original Axis scale will be fitted to new Axis height/width. Left Top is 0,0


ExchangeSeries
Interchanges the Series index between 2 Series. Their index position will determine there position from front to back on the Chart.


Down Close Colour
Sets the colour for those Close values that are less than their respective Open values.


GridCentered
Places Axis Grid lines between (not at) label positions.


RotationAngle
The RotationAngle can be a valid integer number between 0 and 359. This will the angle each Pie sector will be rotated counter-clockwise.


Introduction
The Chart Editor is designed to help you quickly create and modify Charts.

To get help on any Topic in the Chart Editor, select the [image] button at the top right and side of the Editor window and drag it onto the Topic in question. TeeChart Pro help will show you the runtime property or method associated with the feature.


Editor design
There are 2 principal sections to the Chart editor, Chart parameters and the Series parameters, which are separated as 2 tabs of the Chart Editor.


Series page
You may add a mixture of different Series types to the Chart to define the specific Chart of your choice. Note here that you are not limited to predefined Chart types. Most Series types are compatible with other Series types on the same Chart, those Series types not available are greyed out. To add a new Series to a Chart select the Add button on this page which will display the Chart Gallery. Select the Series type of choice from the gallery and it will display on the Series page of the Chart Editor.


Chart pages
You may define overall Chart display parameters at any time before, during or after adding Series to the Chart. Chart parameters are divided into the following sections:

Further Information


General Page
Margins, Zoom and Scroll, Print Preview and Export.


Axis Page
All Axes definition. Some parameters depend upon the Series associated with the axis, for example, Datetime depends on whether the Series data has datetime definition, this can be configured on the Series 'General' page of the Series concerned.


Titles Page
Teechart Header and Footer.


Paging Page
Definition of number of points per chart page. May be used to browse at design time, too, if your data is sourced from an ODBC datasource.


Legend Page
Legend display. Formatted displays work in conjunction with the Chart Series. See also the 'General' page of the Series.


Panel Page
Chart Panel display properties. Colours, Bevels, Backimages, Colour Gradient and Border.


Marks Arrow
This button sets the kind of pen used to draw a line connecting the Point Mark to the corresponding Series point.

Further Information


ArrowHeight
The ArrowHeight property determines the vertical arrow head size in pixels for an ArrowSeries.


ArrowLength
The ArrowLength property determines the number of pixels used to display a line connecting the Series Marks to their corresponding points.


ArrowWidth
The ArrowWidth property determines the horizontal arrow head size in pixels for an ArrowSeries.


Automatic
When disabled, Maximum and Minimum Axis values may be manually set. When enabled, TeeChart 'best fits' the Axis scale to the data. Note that if the Chart is (optionally) defined to use Paging, not all Series points will be shown at one time.

Further Information


AutoMarkPosition
The AutoMarkPosition property controls if Marks on TBarSeries will be repositioned if there’s the possibility of Mark overlapping. Marks are displaced to the top of the Bars to minimize the overlapping effect of Marks with long text or big font sizes.


AutomaticMaximum
If Axis.Automatic is disabled checking AutomaticMaximum will automatically determine the Axis Maximum only. Minimum will require to be manually set.


AutomaticMinimum
If Axis.Automatic is disabled checking AutomaticMinimum will automatically determine the Axis Minimum only. Maximum will require to be manually set.


AxisPen
The Axis property determines the kind of pen used to draw the Axis major lines. These are the lines which go from Axis Minimum to Axis Maximum screen positions.

Further Information

  • AxisVisible


AreaPen
Pen used to draw Lines in Area Series.


BackImageLoad
Back Chart Panel image. May be .bmp, .wmf, .emf or .ico.

Further Information


AxisVisible
Enables/disables Axis visible for all Axes at once. Individual Axes may be hidden/displayed by clicking the 'Visible' checkbox when the related Axis is selected.


Marks Back Colour
The BackColor property defines the color used to fill the Marks background rectangle.


BackImageInside
Restrict Backimage display to inside Chart Rectangle only.


BackImageMode
The BackImageMode property determines how will the background bitmap be displayed. Eg. Stretched, Tiled or Centered.


BarBrush
Brush used to Fill Bars of a BarSeries.

Further Information


Clipped
The Clip boolean property toggles if Marks outside Chart limits will overwrite any other Chart region.


ConnectingPen
Pen properties for the Line that connects Gantt Bars.


Series Cursor
The Cursor property is the image used when the mouse passes into the region covered by a Series point. Each Series determines the intersection of points with mouse coordinates each time the mouse moves.


Dark3D
Dark shades the sides of 3D Series Points.


Datasource
The "point provider" (or DataSource) can be:

1) Another Chart Series.

2) Any ODBC Table or Query

Eg. Select an ODBC DSN's Table after connecting to a 'New' DSN or 'Edit' an existing DSN and its fields will become available for Labels, X and Y values.


DateTime
The DateTime property tells TeeChart what type the numbers are. The horizontal (x axis) and vertical (y axis) value defaults are number format (DateTime False).


Depth size
Increases/decreases the depth of the 3D point.


Direction
The Direction property specifies the direction the gradient fill will be applied.


DividingLines
The DividingLines property specifies the Pen attributes used to draw lines separating Legend’s items. Lines are drawn horizontally for Left or Right aligned Legend and vertically for Top or Bottom Legend alignments.


LineBrush
The LineBrush property defines the brush style used to fill LineSeries contents. It has effect only when Chart1.View3D is True. The Legend reflects automatically the selected brush style.

Further Information

  • LinePen


Logarithmic
This property scales the Axis Logarithmically when enabled. Axis Minimum and Maximum values should be greater than 0, and Axis cannot be of DateTime type.


LinePen
The LinePen property determines what kind of pen will be used for drawing the line connecting all points.


Margins
Each Chart component has four margin properties: LeftMargin, RightMargin, TopMargin, BottomMargin.

These properties are expressed in screen pixels. Default values are 8 for top and bottom margins and 12 for left and right margins.


MaxPointsPerPage
The MaxPointsPerPage property controls "TeeChart AutoPaging". Setting it to a number greater than zero makes TeeChart to internally divide Series points in Pages.


Minimum
Axis Minimum is the lowest value an Axis will use to scale its dependent Series point values. It can be any number or DateTime value and it must be lower than the Axis.Maximum value. Axis 'Automatic' must be set to OFF.


MinorTickCount
The MinorTickCount property determines the number of Axis minor ticks. Axis minor ticks are the Axis sub-ticks between major ticks.

Further Information


RoundFirstLabel
The RoundFirstLabel property controls if Axis labels will be automatically "rounded" to the nearest magnitude. This applies both to DateTime and non-DateTime axis values. When False, Axis labels will start at Maximum Axis value.


Export Chart
This method will save the current chart as a TeeChart 'tee' template to the specified File Name. Tee templates are an efficient way to save runtime Chart appearance and may be loaded at runtime using the LoadChartFromFile.


ScaleLastPage
In a pageable Chart, when enabled, the last Chart page will have the same horizontal scaling than the other pages. When disabled, the last Chart page scaling will be adjusted based on the number of visible points on that last page.


Color
Overall Colour of Series. This may be overidden by defining colours of individual Series points.


ShadowSize
The ShadowSize property controls the amount of pixels used to draw the Legend shadow effect.


Set Function source
Use the 'Available' and 'Selected' windows to select Series to be used as source data for the function. For multiple Series input (eg. Subtract Function) the Top Series in the List will subtract the 2nd and so on..


ShadowColor
The ShadowColor property specifies the color to fill the Legend shadow effect.


Show Close Tick
Show/hide ticks to represent the Close value. This parameter is only available when candle Style is set to Bar.


Show in Legend
Controls whether or not the series title should display in Chart.Legend. It is only meaningful when LegendStyle is 'Series' or 'LastValues'.


Rotation
Rotation describes front plane rotation by rotation degrees (0 - 360º). Increasing the value positively will bring the right of the Chart towards the viewer and the left of the Chart away.


Tilt
Tilt will rotate the Chart Rectangle within the Chart Panel. Positive values (from 0 to 360º) rotate the Chart anti-clockwise, negative values, clockwise.

*Important. Orthogonal should be set to False for Rotation to act on the Chart.


TopPos
Default Value: 10

This option sets the Top position of the Legend. The TopPos property specifies the Legend's top position in percent of total chart height. It's used when TChartLegend.Alignment is Left or Right only.


Depth size of grid
Defines how big the Z axis (the depth axis) will be respect to a Surface or Contour's width and height. By default, the Surface depth will be 3 times the LineSeries depth.


Title
Every TChartSeries has a Title property of type String. The Title property is used in TChart.Legend to draw the series descriptions. If Title is empty, then the Series component Name will be used in the Chart Legend.

The Title property defines the Text and formatting properties to be drawn at Top Chart side. Axis Title for the currently selected Axis.

The TitleSize property is 0 by default. Therefore the space between the Axis Title and the Chart will be automatically calculated based on the Axis Title Width and Height.


Transparent
The Transparent property controls if Series Marks background will be filled or not. Sets the Chart Shape's background to transparent.

Further Information

  • Transparent Wall


Transparent Wall
Defines whether the Wall will be filled with the Wall colour or be transparent.


Up Close Colour
Sets the colour for those Close values that are greater than their respective Open values.


TicksInner
The TicksInner property determines the kind of Pen used to draw Axis marks along the Axis line. This is the same Ticks property does but lines are drawn inside Chart boundaries instead.


Set Series to a colour range
When selected, the UseColorRange property indicates that Surface polygons will be filled with a gradient color palette. The Palette is defined with two colors: StartColor and EndColor.


Use palette
The UsePalette parameter indicates that Surface polygons will be filled with a multi-color palette. The PaletteSteps property determines the number of entries in the palette.

Further Information


UsePatterns
The UsePatterns property indicates, when True, that Pie Sectors will be filled using different Brush pattern styles. There are 6 different pattern styles.


UseOrigin
The UseYOrigin property defines if Bars will be bottom aligned to the YOrigin property value. When False, the minimum of all Bar values is used as the Bar origins value.


Value
Threshold value below which to include data point (or slice) in grouped 'Otherslice'.

Further Information

  • ValueFormat


ValueFormat
ValueFormat sets the way to display values. Eg. ###0.0###

Example

Return Table
Format string Example Values
1234 -1234 0.5 0
1234 -1234 0.5 0
0
1234 -1234 1 0
0.00
1234.00 -1234.00 0.50 0.00
#.##
1234 -1234 .5
#,##0.00
1,234.00 -1,234.00 0.50 0.00
#,##0.00;(#,##0.00)
1,234.00 (1,234.00) 0.50 0.00
#,##0.00;;Zero
1,234.00 -1,234.00 0.50 Zero
0.000E+00
1.234E+03 -1.234E+03 5.000E-01 0.000E+00
#.###E-0
1.234E3 -1.234E3 5E-1 0E0


Vertical Axis
Defines the Vertical Axis ( Left or Right axis ) to which the Series will be vertically scaled.

Further Information


VertOffset
VertOffset will move the Chart Rectangle vertically across the Chart Panel. Positive values move the Chart downwards, negative values upwards.


Zoom
The Zoom slidebar will zoom the whole Chart. Expressed as a percentage, Increasing the value positively will bring the Chart towards the viewer.

This Zoom parameter should not be confused with Chart Zooming and Scrolling whose functionality is available simultaneously to allow zoom and scroll by mouse dragging within the Chart rectangle.

Further Information

  • ZoomText


ZoomText
ZoomText enables/disables the zooming of text when zooming the overall Chart.


Error T width units
When setting the width of the "T" on the Error Bar with The Error Width option, use this option to set whether the Bar width will be based on Pixels or percentages.

Further Information

  • Error T width


Error T width
Sets the width of the "T" on the Error Bar. This may be expressed as a percentage of the Bar or as Pixels depending on the setting of the "Error Width Units" option.


YRadius
The YRadius property returns the exact ellipse's radius vertical size in pixels.


Horizontal Axis
Defines the Horizontal Axis ( Top or Bottom axis ) to which the Series will be horizontally scaled.


General Page
Series value format, Axis association


Marks Page
Series Mark format, text, frame and back colour and positioning.


Walls Page
Left, Bottom and Backwall size and Colour definitions.


Alignment
The Alignment property defines the Legend position. Legend can be currently placed at Top, Left, Right and Bottom side of Chart.

The Alignment property decides the alignment of the text of a Chart Shape. The Alignment property controls how Chart Title and Foot text will be aligned within Chart rectangle.

A TeeChart Title can optionally be surrounded by a Frame.


AreaBrush
Fill Brush characteristics of the Area of an Area Series

Further Information

  • AreaPen


BarStyle
Choose the Type of Bar for the Bar Series. Eg. Rectangle, Pyramid or Ellipse.


BarWidthPercent
The BarWidthPercent property determines the percent of total Bar width used. Setting BarWidthPercent := 100 makes joined Bars.


Bevel offset
The offset between the Bevel and the Panel border.

Further Information

  • Bevel width


Candle style
Set Candle point style.

Further Information

  • Candle width


Candle width
Set width of candle points.


Caption
The Caption property defines the string of text used to draw, as a Title, near to each Chart Axis. When empty, no Title is displayed.


Chart3DPercent
The Chart3DPercent property indicates the size ratio between Chart dimensions and Chart depth when Chart.View3D is True. You can specify a percent number from 1 to 100.


ShowPreview
Shows a customisable PrintPreview of Chart.


CircleBackColor
The CircleBackColor determines the color to fill the ellipse.


ClipPoints
The ClipPoints property toggles the drawing of Series points within Chart boundaries, preventing other Chart regions from being overwritten.


ColorEachPoint
When enabled, assigns a different, TeeChart selected colour, to each Series point.


ColorWidth
The width of the Colour box representing the Series (or Series point) in the Legend.


Minimum
The MinValue property returns the lowest of all values inside the TChartValuelist.


MultiArea
The MultiArea property determines the kind of displayed Area when there's more than one AreaSeries with the same ParentChart.


MultiBar
If you have more than one TBarSeries in the same Chart, then you can choose if they will be drawn side-by-side, back-to-front or Stacked. Side-by-side means the Bar width will be divided by the number of Bar Series.


Current
The Page property determines the current visible points of Series in a Chart with MaxPointsPerPage property greater than zero.


Candle Pen
Changes the characteristics of the Candle Pen.


Number of Z Values
This parameter cannot be modified at runtime.


CirclePen
Determines Pen used to draw the Lines of a Circled (eg. Pie) Series.


Circle Labels Rotated
Enable/disable font rotation for the Circle Labels.


Start
Start of Axis as percentage of width (horizontal Axis) and height (vertical Axis) of the Chart rectangle. The original Axis scale will be fitted to new Axis height/width. Left Top is 0,0


Style
The Style property determines the style in which the pen draw lines on the canvas.

The style determines the Shape plot. It may be one of the following options:
  • Rectangle
  • Circle
  • VertLine
  • HorizLine
  • Triangle
  • InvertTriangle
  • Line
  • Diamond
  • Cube
  • Cross
  • DiagCross
  • Star
  • Pyramid
  • InvertPyramid


Style
The Style property defines the shape used to display the Series Points. The style defines whether to use value or percentage to group the 'other' Pie slice.(eg. None, BelowPercent, BelowValue);


Axes
TChart has 5 default Axes:

Left Axis, Right Axis, Top Axis, Bottom Axis and Depth Axis.

Select an Axis with the radio button to activate that Axis for editing.


Gradient
The TChartGradient component contains all properties used to draw a nice Chart background. The gradient effect is made of two colors and many middle transition colors between them. This enables/disables a background Gradient on the Chart panel set according the Start and End colours.


Walls
The TChartWall component controls how to display the Chart left, back and bottom walls.


Wall Border
Determines the kind of pen used to draw the Chart Walls frame. The Chart 'Visible' checkbox should be True to make walls visible.


Size
The Size property determines the thickness of the selected Chart wall.


TickInnerLength
The TickInnerLength property defines the length in pixels of Axis ticks drawn inside Chart boundaries.

Further Information

TickLength TickOnLabelsOnly Ticks
TicksInner


TickLength
The TickLength property defines the length of Axis Ticks in logical pixels. Use the Ticks Pen property to change pen attributes.


TickOnLabelsOnly
This property sets the Axis Ticks and Axis Grid to be drawn only to coincide at Labels. Otherwise they will be drawn at all axis increment positions.


Visible Legend
Enables/disables display of Legend.


Visible
Enables/disables display of Lines. The Visible property controls if Series Marks will be displayed or not.


Width
Width of Pen. For Width greater than 1 style is disabled, the Line will be drawn as a solid Line.


X
These properties define the Top - Left and Bottom - Right coordinates of the englobing TChartShape rectangle.

Further Information

  • XRadius


Axis Increment
Axis Increment is the minimum step between axis labels. It must be a positive number or DateTime value. TChart will use this value as the starting axis labels step. If there is not enough space for all labels, TChart will calculate a bigger one. If that should be the case you may optionally change the Label Angle (see the Labels tab) or label separation parameter to fit more Labels to the Axis.


InflateMargins
The InflateMargins parameter controls if Chart dimensions will be rescaled to accomodate the complete Series Points near to the Chart Axis limits. When disabled, Chart Axis scales will be preserved and Points close to the Axis limits will be cut (partially displayed).


Inverted
When Inverted is True, Axis Minimum and Maximum scales will be swapped. Axis labels and Series points will be displayed accordingly. This applies both to vertical and horizontal axis.

Further Information

  • InvertedStairs


LabelsFont
Text font for Axis Labels.


Multiline Labels
When True, spaces in Point's Labels or in an Axis Label's DateTimeFormat (or ValueFormat) are used to break the label into more than one line of text.


LabelsOnAxis
The LabelsOnAxis property controls if Labels just at Axis Minimum and Maximum positions will be shown or NOT.


3D Page
Enable/disable and modify 3D display parameters.


Animated
The AnimatedZoom property determines if Zoom will be performed directly or it will be displayed as an animated sequence of zooms. The AnimatedZoomSteps property controls the number of zoom steps. AnimatedZoom can be useful when there are a lot of points.

Further Information

  • AnimatedSteps


AnimatedSteps
The AnimatedZoomSteps property determines the number of steps of the animated zooming sequence. A large number of steps can delay zooming. The AnimatedZoom property should be True.


Border style
Style for the Border of the Chart Panel.


Scroll
TeeChart allows, by default, runtime Scrolling. To scroll the Chart, drag the mouse while holding the right mouse button depressed.


PanelColor
Background colour of the entire TeeChart Panel.


Color
Background colour of the Legend box. Colour of the Chart Pen used for drawing lines. Colour of the Selected Chart Wall.


Legend Style
The LegendStyle property defines which items will be displayed in Chart Legend.


Number of X Values
This parameter cannot be modified at runtime.


Orthogonal
Disabling Orthogonal (setting to False) disables the 2D Canvas (used for 2D Charts and 3D Orthogonal Charts). This, in combination with the '3D' Checkbox, enables the 'Full' 3D Canvas permitting Elevation and Rotation displacement of the Chart.


Period
Period refers to the point range over which the function is applied. Eg. A Period of 3 for the Average function will calculate and plot the average for every 3 points. A Period of 0 sets TeeChart to add it's default Period.


Position
Position of Axis as percentage of Chart Height (horizontal Axis) or Chart Width (vertical Axis). Top Left is 0,0.


ResizeChart
The ResizeChart property indicates if Legend will automatically reduce the Chart rectangle to prevent overlap between Legend and Chart rectangles. This enables placing of the Legend inside the Chart Rectangle.


Show Open Tick
Show/hide ticks to represent the Open value. This parameter is only available when candle Style is set to Bar.


StartColor
The StartColor property is one of the two colors used to create the gradient fill. The gradient fill is composed of two colors: StartColor and EndColor.


Titles
The TChartTitle component is used to display Chart Title and Foot text strings at top and bottom Chart sides respectively. The Text property contains the text to be displayed.


Wall Brush
The Brush property determines the kind of brush used to fill the Chart Walls background. The Chart 'Visible' checkbox should be True to make walls visible.

Further Information


Legend Text Style
LegendTextStyle defines the possible values of the TChartLegend.TextStyle property.


Ticks
The Ticks property determines the kind of Pen used to draw Axis marks along the Axis line.

The 3 kinds of ticks are: Ticks, MinorTicks and TicksInner.


Visible Walls
When checked, this option will draw Left, Back and Bottom Chart "walls". The Wall properties may be modified by selecting the tab relating to the Wall concerned to access its characteristics.

Further Information


Visible Circle Labels
Enable/disable labelling around the circle circumference.


XRadius
The XRadius property returns the exact ellipse's radius horizontal size in pixels.


Use Y Positioning
Enable/disable Y positioning of the Contour Series layers.


HorizOffset
HorizOffset will move the Chart Rectangle horizontally across the Chart Panel.


HorizontalSize
The HorizSize property specifies the Series Pointer width in logical pixels. Series that derive from TPointSeries usually override the HorizSize and VertSize properties.


Axis Maximum
Axis Maximum is the highest Axis value. Axis will use it to scale its dependent Series point values. It may be any number or DateTime value and must be greater than the Axis.Minimum value.

VERY IMPORTANT:

The Axis.Automatic parameter must be FALSE.

Further Information


LabelsSeparation
The LabelsSeparation property specifies the percent amount of minimum distance between Axis Labels.

Setting it to "0" zero makes TeeChart Axis skip calculation of overlapping labels. (No clipping is performed).


Series Pages
Series pages will contain parameters dependant on the series type concerned. The Combobox at the top of the Series tab page shows which series you are editing.

Further Information

Format Page General Page Marks Page
Data Source Page


Format Page
Contains Series type specific parameters.


Data Source Page
Access to Function definition and ODBC data sourcing


Add Series
Add a new Series to the Chart.


AdjustFrame
The AdjustFrame property controls if Chart Title and Foot frames will be resized to full Chart dimensions or to the title text width.


Enable Zoom
Enable/Disable Zoom on mouse drag.


Angle
The Angle property determines the Axis Title rotation in degree units.

Valid values are 0, 90, 180, 270 and 360 degrees.


Bevel width
Width of Chart Panel Bevel.


Brush
Brush used to fill a Series Pointer. Brush used to fill a Shape. The Polar Brush style used to paint the inner circle of the Chart. Brush used to fill a Surface


BarPen
Pen used to Draw Lines of a Bar Series.


ChangeSeriesType
Changes the Series Type to an available Type offered by the TeeChart Gallery.


Circled
The Circled property defines if a CircledSeries such as TPieSeries will be drawn elliptically or with same X and Y radius (circle).


Clone Series
Makes a new, duplicate Series of selected Series.


Chart Title Color
The Colour used to fill the Chart background.


MinorTickLength
The MinorTickLength property indicates the length in pixels of Axis Minor ticks.


MinorTicks
The MinorTicks property is the Pen used to draw the Axis Minor ticks. Minor ticks will only be displayed if MinorTicks.Visible is True.


Next Page
Advances a pageable Chart by one Page.


Number of Levels
This property sets how many Contour levels are to be used in the Series. More levels will appear more densely onscreen.

Further Information


OffsetPercent
The OffsetPercent property indicates the Bar displacement in percent of Bar size. Displacement is horizontal for TBarSeries and vertical for THorizBarSeries. This property can be used to create "overlayed" Bar charts. Values may be +ve or -ve.


OtherSlice
Use this property to define the grouping size for the 'Other' slice of the Pie. Grouping may be expressed as a percentage or value.


Pen
Determines Pen used to draw Lines of a Shape. Determines Pen used to draw the Lines of a Series Point.


PercentFormat
Chart Series components have a PercentFormat property. It is used to draw the Series Marks Percent Style figures.


Perspective
Increasing the value of perspective on a non-orthogonal 3D Chart will increase the differential factor between near and far objects relative to distance from the viewer.


Previous Page
Moves back one page on a pageable Chart.


RemoveSeries
Removes the currently selected Series.


SideMargins
Description

The SideMargins property controls if first and last displayed Bar will be separated from the Chart rectangle. By default, margins are set to half the sum of all Bar Series bar widths.


Stairs
In most situations, a Series draws a line between each Line point. This makes the Line appear as a "mountain" shape. However, enabling 'Stairs' will make the Series to draw 2 Lines between each pair of points, thus giving a "stairs" appearance.


Titles' Brush
The Brush property determines the kind of brush used to fill the rectangle behind Chart.Title and Chart.Foot text.


Marks Style
Define how you wish the contents of the Mark to be displayed. Eg. Label, percentage, value of point, etc.


Text
The Text property is used by TChartShape component to display customized text content inside Shapes. The text applying to a Chart Header or Footer depending on which is currently selected. Label for 'Otherslice'


VerticalSize
Vertical size of the Series' Point


View3D
Enables viewing of the Chart as 2D or 3D. Use the 'Orthogonal' Checkbox to define whether the Chart is true 'rotateable' 3D or an Orthogonal (vectored lines) representation of 3D.


Visible Axis
Enables/disables display of currently selected Axis.


Visible Title
Enables/disables display of the Chart Title.


Visible Pointer
Enables/disables display of Series' Points.


Origin
The YOrigin property determines the axis value used as a common bottom for all Bar points. The UseYOrigin property must be True (the default) to use the YOrigin property.


Y Position
Set the overall Y position for the Series when Y level positioning is disabled.

Further Information


HorizMargin
The HorizMargin property speficies the number of screen pixels between Legend and Chart rectangles. By default its 0, meaning Legend will calculate a predefined margin based on total Legend width.


InvertedStairs
When Stairs is set to True you may set InvertedStairs to True to alter the direction of the step.


Labels Visible
The Labels 'Visible' property shows or hides Axis Labels. Set it to False to draw the Axis Ticks and / or Grid lines only.

Further Information


LabelsSize
The LabelsSize property is 0 by default which means the space between the Axis and the Chart will be automatically calculated based on the Axis Labels Width and Height. Any other value will set the space in pixels.


LabelStyle
Possible values:

Auto - Chooses the Style automatically.

None - No label.

Value - Axis labelling is based on Axis Minimum and Maximum properties.

Mark - Label using Series' Marks style.

Text - Label uses Series'.XLabels strings.


SableScript

Sable Developer Help

Windows Script Control Sable Extensions: CurrentYear

CurrentYear returns the year.

VBScript

Sub ExampleSub
year = Sable.GetCurrentYear()

End Sub

JScript

function ExampleSub()
{

year = GetCurrentYear();

}

SableScript

Sub ExampleSub
 year = GetCurrentYear()

End Sub


SableScript

Sable Developer Help

Windows Script Control Sable Extensions: DayOfMonth

DayOfMonth returns the current day of the month.

VBScript

Sub ExampleSub
year = Sable.DayOfMonth()

End Sub

JScript

function ExampleSub()
{

year = DayOfMonth();

}

SableScript

Sub ExampleSub
year = DayOfMonth()

End Sub


SableScript

Sable Developer Help

Windows Script Control Sable Extensions: EditModelini

EditModelini will open the file model.ini located in the model directory in the standard windows text editor.

VBScript

Sub ExampleSub
Sable.EditModelIni()

End Sub

JScript

function ExampleSub()
{

EditModelIni();

}

SableScript

Sub ExampleSub
Call EditModelIni()

End Sub


SableScript

Sable Developer Help

Windows Script Control Sable Extensions: FileOpenDialog

FileOpenDialog displays the standard windows file dialog so you can prompt users for a file to be opened.

VBScript

Sub ExampleSub

dim tempstring

tempstring = Sable.FileOpenDlg("Please select a file name to open","vdf","*.vdf","VDF Files(*.vdf)|*.vdf|All Files (*.*)|*.*||")

if ( tempstring = "" )

exit sub

end if

End Sub

JScript

function ExampleSub()
{

var tempstring;

tempstring = FileOpenDlg("Please select a file name to open","vdf","*.vdf","VDF Files(*.vdf)|*.vdf|All Files (*.*)|*.*||")

if ( tempstring = "" )

{

return;

}

}

SableScript

Sub ExampleSub

dim tempstring as string

tempstring = FileOpenDlg("Please select a file name to open","vdf","*.vdf","VDF Files(*.vdf)|*.vdf|All Files (*.*)|*.*||")

if ( tempstring = "" )

exit sub

end if

End Sub


SableScript

Sable Developer Help

Windows Script Control Sable Extensions: FileSaveDlg

SetModelVar is used to set model variables.

VBScript

Sub ExampleSub

Dim tempstring1
tempstring1 = Sable.FileSaveDlg("Please enter filename to save as","vdf","*.vdf","VDF Files (*.vdf)|*.vdf|All Files (*.*)|*.*||")
if ( tempstring1 = "" )
exit sub
end if

End Sub

JScript

function ExampleSub()
{

var tempstring1
tempstring1 = FileSaveDlg("Please enter filename to save
as","vdf","*.vdf","VDF Files (*.vdf)|*.vdf|All Files (*.*)|*.*||");
if ( tempstring1 = "" )

{
return;

}
}

SableScript

Sub ExampleSub

    Dim tempstring1
as string
tempstring1 = FileSaveDlg("Please enter filename to save
as","vdf","*.vdf","VDF Files (*.vdf)|*.vdf|All Files (*.*)|*.*||")
if ( tempstring1 = "" )
exit sub
end if

End Sub


SableScript

Sable Developer Help

Windows Script Control Sable Extensions: GetModelVar

GetModelVar is used to get model variables.

VBScript

Sub ExampleSub
dim tempvar

tempvar = Sable.GetModelVar("time to work[job 1]")

End Sub

JScript

function ExampleSub()
{

var tempvar

tempvar = GetModelVar("time to work[job 1]");

}

SableScript

Sub ExampleSub
 dim tempvar as string

tempvar = GetModelVar("time to work[job 1]")

End Sub


SableScript

Sable Developer Help

Windows Script Control Sable Extensions: GetNumberOfConstants

GetNumberOfConstants is used to get the number of constants in the model.

VBScript

Sub ExampleSub()
dim x

x = Sable.GetNumberOfConstants()

End Sub

JScript

function ExampleSub()
{

var x

x = GetNumberOfConstants();

}

SableScript

Sub ExampleSub()
dim x as integer

x = GetNumberOfConstants()

End Sub


SableScript

Sable Developer Help

Windows Script Control Sable Extensions: GetNumberOfParameters

GetNumberOfParameters is used to get the number of model parameters.

VBScript

Sub ExampleSub()
dim x

x = Sable.GetNumberOfParameters()

End Sub

JScript

function ExampleSub()
{

var x

x = GetNumberOfParameters();

}

SableScript

Sub ExampleSub()
dim x as integer

x = GetNumberOfParameters()

End Sub


SableScript

Sable Developer Help

Windows Script Control Sable Extensions: GetNumberOfSubscriptElements

GetNumberOfSubscriptElements is used to get the number of subscript elements in a model.

VBScript

Sub SetMultipleVariables
dim x

x = Sable.GetNumberOfSubscriptElements("subscript range 2")
End Sub

JScript

function SetMultipleVariable()
{

var x

x = GetNumberOfSubscriptElements("subscript
range 2");
}

SableScript

Sub SetMultipleVariables
 dim x as integer

x = GetNumberOfSubscriptElements("subscript range 2")
End Sub


SableScript

Sable Developer Help

Windows Script Control Sable Extensions:GetNumberOfSubscriptRanges

GetNumberOfSubscriptRanges returns the number of subscript ranges in the model.

VBScript

Sub ExampleSub()
dim noRanges as integer

noRanges = Sable.GetNumberOfSubscriptRanges()

End Sub

JScript

function ExampleSub()
{

var noRanges

noRanges = GetNumberOfSubscriptRanges();

}

SableScript

Sub ExampleSub()

dim noRanges as integer

noRanges = GetNumberOfSubscriptRanges()

End Sub


SableScript

Sable Developer Help

Windows Script Control Sable Extensions: GetNumRuns

GetNumRuns is used to get the number of currently loaded runs.

VBScript

Sub ExampleSub()

Dim numruns

numruns = Sable.GetNumRuns()

End Sub

JScript

function ExampleSub()
{

var numruns

numruns = GetNumRuns();

}

SableScript

Sub ExampleSub()
 Dim numruns as integer

numruns = GetNumRuns()

End Sub


SableScript

Sable Developer Help

Windows Script Control Sable Extensions: GetRunName

GetRunName is used to get a run name.

VBScript

Sub ExampleSub()

dim tempstring
tempstring = Sable.GetRunName(1)

End Sub

JScript

function ExampleSub()
{

var tempstring
tempstring = GetRunName(1);

}

SableScript

Sub
ExampleSub()
dim tempstring as string
tempstring = GetRunName(1)

End Sub


SableScript

Sable Developer Help

Windows Script Control Sable Extensions: GetSubscriptElement

GetSubscriptElement is used to get the string representing a subscript element. variables.

VBScript

Sub ExampleSub()
dim tempstring

tempstring = Sable.GetSubscriptElement("subscript range 2",3)
End Sub

JScript

function ExampleSub()
{

var tempstring

tempstring = GetSubscriptElement("subscript range 2",3);
}

SableScript

Sub ExampleSub()
dim tempstring

tempstring = GetSubscriptElement("subscript range 2",3);
End Sub


SableScript

Sable Developer Help

Windows Script Control Sable Extensions: GetSubscriptRangeName

GetSubscriptRangeName is used to get a subscript range.

VBScript

Sub ExampleSub()
dim tempstring

tempstring = Sable.GetSubscriptRangeName(1)

End Sub

JScript

function ExampleSub()
{

var tempstring;

tempstring = GetSubscriptRangeName(1);

}

SableScript

Sub ExampleSub()
dim tempstring as string

tempstring = GetSubscriptRangeName(1)

End Sub


SableScript

Sable Developer Help

Windows Script Control Sable Extensions: HidePleaseWaitDlg

HidePleaseWaitDlg is used to hide dialog that has previously been displayed using ShowPleaseWaitDialog.

VBScript

Sub ExampleSub()
Sable.ShowPleaseWaitDlg("Please wait, simulation in progress")

// processing

Sable.HidePleaseWaitDlg()

End Sub

JScript

function ExampleSub()
{

ShowPleaseWaitDlg("Please wait, simulation in progress");

// processing

HidePleaseWaitDlg();

}

SableScript

Sub ExampleSub()
Call ShowPleaseWaitDlg("Please wait, simulation in progress");

// processing

Call HidePleaseWaitDlg();

End Sub


SableScript

Sable Developer Help

Windows Script Control Sable Extensions: MonthOfYear

MonthOfYear can be used to get the number of the month of the year.

VBScript

Sub ExampleSub()
dim month

month = MonthOfYear()

End Sub

JScript

function ExampleSub()
{

var month

month = MonthOfYear();

}

SableScript

Sub ExampleSub
dim month as integer

month = MonthOfYear()

End Sub


SableScript

Sable Developer Help

Windows Script Control Sable Extensions: MoveToMainScreen

MoveToMainScreen is used to move to main screens within Sable.

VBScript

Sub MoveToScreen
Sable.MoveToMainScreen("initial.vnn")

End Sub

JScript

function SetMultipleVariable()
{

MoveToMainScreen("initial.vnn");

}

SableScript

Sub SetMultipleVariables
 Call MoveToMainScreen("initial.vnn")

End Sub


SableScript

Sable Developer Help

Windows Script Control Sable Extensions: MoveToMiniScreen

MoveToMiniScreen is used to open mini screens within Sable.

VBScript

Sub MoveToScreen
Sable.MoveToMiniScreen("initial.vnn")

End Sub

JScript

function SetMultipleVariable()
{

MoveToMiniScreen("initial.vnn");

}

SableScript

Sub SetMultipleVariables
Call MoveToMiniScreen("initial.vnn")

End Sub


SableScript

Sable Developer Help

Windows Script Control Sable Extensions: MoveToPreviousScreen

MoveToPreviousScreen is used to move Sable to the previously viewed screen.

VBScript

Sub SetMultipleVariables
Sable.MoveToPreviousScreen()

End Sub

JScript

function SetMultipleVariable()
{

MoveToPreviousScreen();

}

SableScript

Sub SetMultipleVariables
Call MoveToPreviousScreen()

End Sub


SableScript

Sable Developer Help

Windows Script Control Sable Extensions: RunVenappCommand

RunVenappCommand is used to run any available Venapp command.

VBScript

Sub SetMultipleVariables
Sable.RunVenappCommand("SIMULATE>SETVAL|time to work[job 1] = 11")

Sable.RunVenappCommand("SIMULATE>SETVAL|time to work[job 2] = 12")

Sable.RunVenappCommand("SIMULATE>SETVAL|time to work[job 3] = 13")

End Sub

JScript

function SetMultipleVariable()
{

RunVenappCommand("SIMULATE>SETVAL|time to work[job 1] = 11");

RunVenappCommand("SIMULATE>SETVAL|time to work[job 2] = 12");

RunVenappCommand("SIMULATE>SETVAL|time to work[job 3] = 13");

}

SableScript

Sub SetMultipleVariables
 Call RunVenappCommand("SIMULATE>SETVAL|time to work[job 1] = 11")

Call RunVenappCommand("SIMULATE>SETVAL|time to work[job 2] = 12")

Call RunVenappCommand("SIMULATE>SETVAL|time to work[job 3] = 13")

End Sub


SableScript

Sable Developer Help

Windows Script Control Sable Extensions: SableClearRuns

SableClearRuns is used to unload all datasets.

VBScript

Sub UnloadRuns
Sable.SableClearRuns()

End Sub

JScript

function SetMultipleVariable()
{

SableClearRuns();

}

SableScript

Sub SetMultipleVariables
Call SableClearRuns()

End Sub


SableScript

Sable Developer Help

Windows Script Control Sable Extensions: SableLoadRun

SableLoadRun is used to load runs into Sable.

VBScript

Sub LoadRun
Sable.SableLoadRun("current.vdf")

End Sub

JScript

function SetMultipleVariable()
{

SableLoadRun("current.vdf");

}

SableScript

Sub SetMultipleVariables
Call SableLoadRun("current.vdf")

End Sub


SableScript

Sable Developer Help

Windows Script Control Sable Extensions: SetModelVar

SetModelVar is used to set model variables.

VBScript

Sub SetMultipleVariables
Sable.SetModelVar("time to work[job 1]",12)

Sable.SetModelVar("time to work[job 2]",13)

Sable.SetModelVar("time to work[job 3]",14)

End Sub

JScript

function SetMultipleVariable()
{

SetModelVar("time to work[job 1]",12);

SetModelVar("time to work[job 2]",13);

SetModelVar("time to work[job 3]",14);

}

SableScript

Sub SetMultipleVariables
Call SetModelVar("time to work[job 1]",12)

Call SetModelVar("time to work[job 2]",13)

Call SetModelVar("time to work[job 3]",14)

End Sub


SableScript

Sable Developer Help

Windows Script Control Sable Extensions: ShowPleaseWaitDlg

ShowPleaseWaitDlg is used to show a dialog that can be used to indicate processing it going on in the background.

The following dialog shows an example.

PLEASE NOTE. You must use HidePleaseWaitDlg to close this window.

VBScript

Sub ExampleSub()
Sable.ShowPleaseWaitDlg("Please wait, simulation in progress")

// processing

Sable.HidePleaseWaitDlg()

End Sub

JScript

function ExampleSub()
{

ShowPleaseWaitDlg("Please wait, simulation in progress");

// processing

HidePleaseWaitDlg();

}

SableScript

Sub ExampleSub()
Call ShowPleaseWaitDlg("Please wait, simulation in progress");

// processing

Call HidePleaseWaitDlg();

End Sub


SableScript

Sable Developer Help

Windows Script Control Sable Extensions: SimulationContinue

SimulationContinue is used to continue a simulation one interval.

VBScript

Sub ExampleSub()
Sable.SimulationContinue()

End Sub

JScript

function ExampleSub()
{

SimulationContinue();

}

SableScript

Sub ExampleSub()
Call SimulationContinue()

End Sub


SableScript

Sable Developer Help

Windows Script Control Sable Extensions: SimulationRun

SimulationRun is used to run a simulation.

VBScript

Sub ExampleSub()
Sable.SimulationRun()

End Sub

JScript

function ExampleSub()
{

SimulationRun();

}

SableScript

Sub ExampleSub()
Call SimulationRun()

End Sub


SableScript

Sable Developer Help

Windows Script Control Sable Extensions: SimulationStart

SimulationStart is used to start a simulation.

VBScript

Sub ExampleSub
Sable.SimulationStart()

End Sub

JScript

function ExampleSub()
{

SimulationStart();

}

SableScript

Sub ExampleSub
Call SimulationStart()

End Sub


SableScript

Sable Developer Help

Windows Script Control Sable Extensions: SimulationStop

SimulationStop is used to stop a simulation.

VBScript

Sub ExampleSub
Sable.SimulationStop()

End Sub

JScript

function ExampleSub()
{

SimulationStop()

}

SableScript

Sub ExampleSub
Call SimulationStop()

End Sub