Edit

Window Extensions

You can add additional fields and controls to existing MoneyWorks windows by using “overlays”—these are small windows that can be tacked onto the right hand side of many of the built in MoneyWorks windows. For example, the Quote entry screen shown below has had a followup call log section added:

This was done by designing the window below:

To extend a standard window, you first need to design a window that contains the elements you want. This is the same as designing any other window, except that:

  • You should make sure that your objects have IDs that are not the same as any built-in objects on the window that you might also wish to access from your script.

  • Items on the window should have an H Sizing of Fixed Right, so that they stick to the right hand side of the window as it is resized.

  • The window should be as compact as practicable

MoneyWorks will widen the standard window to accommodate the extension. If your extension is unnecessarily wide, the window may no longer fit on the screen.

MoneyWorks will not increase the height of the standard window. If your extension is too high it will be chopped off, with possible unexpected consequences.

Keep in mind that the user may have other scripts which also have extensions. Each extension will be added under the previous one, so there is limited vertical space.

To add an extension to an entry window, you simple set a value to one the of the special overlay properties.

Entry screenProperty
Transaction: F_trans_overlay
Name:F_nameform_overlay
Product:F_prodform_overlay
Account:F_acct_overlay
Job:F_jobform_overlay
Jobsheet:F_jobShtEEnt_overlay

For example:

    property F_trans_overlay = "my_window"

will make “my_window” an extension to the transaction window.

MoneyWorks looks at the current value of the property at the time the window is instantiated, so you can change the value prior to instantiating a window. e.g.:

    let F_TRANS_overlay = ""

will stop the extension being added to new transaction windows.

Note: 

  • You will need to write scripts to load and save data from your overlay.
  • Messages are sent to the main window, not the overlay, so use for example:
  •         on itemhit:f_trans:ob_myButton(w, i)
    

not

        on itemhit:my_window:ob_myButton(w, i)

For more information on building windows and scripts, refer to the MoneyWorks Developers webpage.