Developer ToolsFree referencePDF, Excel, Word exportInfor SyteLineAll Infor SyteLine (CloudSuite Industrial) tools

SyteLine WinStudio Standard Form Events Reference

This reference lists the WinStudio standard form events (Std*) you meet when personalizing or scripting Infor SyteLine 8, 9 and 10 forms. It shows when each fires, its default behaviour, the sequence it belongs to and whether it is a safe place for your own handler.

Download:
EventLevelWhen it firesDefault behaviourSequenceSafe for a custom handler
StdFormPredisplay
Form
On open, after components load from data sources, before collections initialize and values display
None; notification only
Open
Yes: first event of a non-query form; good for hiding or setting components
StdFormInitCompleted
Form
When all form initialization has completed
None; notification only
Open
Yes: last event of initialization, data is ready
StdFormNext
Form
User clicks Next on the Actions menu
Makes the next object current
Next
Use with care: replacing it changes navigation
StdFormGetBoundValues
Form
During most standard operations, before data is read from components
Retrieves current values of all bound components
Several
No in most cases: it fires in many operations
StdFormPerformValidations
Form
User clicks Validate, and during Next, Previous, First, Last, New, Copy, Save and Save Current
Runs component validations and shows errors
Several
Yes: the recommended place for row-level validation
StdFormValidationsCompleted
Form
When StdFormPerformValidations completes successfully
None; notification only
Several
Yes
StdObjectNext
Collection
Before WinStudio moves to the next object in a collection
Moves to next object
Next
Use with care
StdObjectSelectCurrent
Collection
During navigation, Refresh, Filter-in-Place, New, Copy and Delete of a new object
Makes the selected object current
Several
No: fires in many operations
StdObjectSelectCurrentCompleted
Collection
When StdObjectSelectCurrent completes
None; notification only
Several
Yes, keep it light
StdObjectNextCompleted
Collection
When StdObjectNext completes
None; notification only
Next
Yes
StdFormLoadBoundValues
Form
After an object becomes current, before components load values
Bound components retrieve data from their sources
Several
Use with care: cannot cancel the default by returning failure
StdFormLoadDerivedValues
Form
After an object becomes current, during most standard operations
Components with derived values retrieve data
Several
Use with care
StdFormNextCompleted
Form
When StdFormNext completes
None; notification only
Next
Yes
StdFormSave
Form
User clicks Save on the Actions menu
Sends changed data in all collections and subcollections to the IDO
Save
Not for row logic: fires once per save
StdFormPutBoundValues
Form
Within save and exit sequences
Obsolete; kept for backward compatibility
Save
No: do not build on it
StdObjectSave
Collection
Before changed data in a collection or subcollection is sent to the IDO
Saves that collection
Save
Only if you loop through modified rows yourself; fires once per collection
StdObjectSaveCompleted
Collection
When StdObjectSave completes successfully
None; notification only
Save
Yes
StdFormSaveCompleted
Form
When StdFormSave completes successfully
None; notification only
Save
Yes: good for post-save refresh or messages
StdFormSaveCurrent
Form
User clicks Save Current on the Actions menu
Sends changed data in the current object to the IDO
Save Current
Not for row logic in other rows
StdObjectSaveCurrent
Collection
Before changed data in the current object is sent to the IDO
Saves the current object
Save Current
Use with care
StdObjectSaveCurrentCompleted
Collection
When StdObjectSaveCurrent completes
None; notification only
Save Current
Yes
StdFormRefresh
Form
User clicks Refresh on the Actions menu
Reloads the collection from the IDO under the current filter
Refresh
Use with care
StdObjectRefresh
Collection
Before a collection is retrieved from the IDO
Reloads that collection
Refresh
Use with care
StdFormNew
Form
User clicks New on the Actions menu
Creates a new object with default values
New
Use with care
StdObjectNew
Collection
Before a new object is created in the current collection
Creates and defaults the new object
New
Use with care
StdObjectDelete
Collection
Before the current object is deleted
Removes a new object at once; marks a saved object for deletion on next Save
Delete
Use with care; deleting a marked object again unmarks it
StdFormExitOk
Form
User clicks Close and Save Changes on the Form menu
Validates, saves changed data, then closes
Close
Use with care
StdFormClose
Form
Before a form closes
None; notification only
Close
Yes; to close from code generate StdFormExitOk or StdFormExitCancel

Descriptions and sequences follow the WinStudio standard events help for SyteLine / CSI 9.01. The full standard event list also includes navigation (First, Last, Previous), copy, filter-in-place, notes and component events not shown here.

Get a personalization reviewed

Send us the form name and the handlers you added and we will tell you which events are risky for your upgrade and where the logic would be safer.

Optional. The tool and every export work without this. No spam.

Was this tool useful?

How to use it

In WinStudio Design Mode open the form, then Form, Event Handlers. Each standard event can carry your handlers, which run before, after or instead of the default implementation depending on how you set the handler and its response. Search this table for the operation the user performs (Save, Next, New) and pick the event in that sequence that matches your timing. Notification events, the ones whose default is 'None; notification only', are the safest places for custom code because nothing in WinStudio depends on them doing anything.

The Next sequence and the Save chain

Two sequences cover most personalization work. When the user clicks Next in a form without custom handlers, WinStudio fires 11 events in this order. When the user clicks Save in a basic form without subcollections, the chain is longer, and StdObjectSave runs once per collection and subcollection while StdFormSave runs once per save.

  • Next: StdFormNext, StdFormGetBoundValues, StdFormPerformValidations, StdFormValidationsCompleted, StdObjectNext, StdObjectSelectCurrent, StdObjectSelectCurrentCompleted, StdObjectNextCompleted, StdFormLoadBoundValues, StdFormLoadDerivedValues, StdFormNextCompleted
  • Save: StdFormGetBoundValues, StdFormPerformValidations, StdFormValidationsCompleted, StdFormSave, StdFormPutBoundValues, StdObjectSave, StdObjectSaveCompleted, StdFormSaveCompleted, StdFormLoadBoundValues, StdFormLoadDerivedValues
  • Save Current inserts StdObjectSaveCurrent, StdFormLoadBoundValues and StdObjectSaveCurrentCompleted in place of the StdObjectSave pair

Worked example: validate a line before save

A site wants every customer order line to carry a promise date. Putting a check on StdFormSave is the classic mistake: it fires once per save, not per row. Put the handler on StdFormPerformValidations instead, which fires during Save, Save Current, New, Copy and navigation, and fail it with a message when the value is blank. If the rule must also hold for imports and integrations, it belongs in the application event system on IdoOnItemInsert and IdoOnItemUpdate, since form events never run for API calls.

Version differences and gotchas

In the web client StdFormPredisplay may fire after the form is already visible, although its position in the sequence is unchanged; do not rely on it to hide something before the user sees it. StdFormPutBoundValues is obsolete and only kept for backward compatibility. StdFormGetBoundValues, StdObjectSelectCurrent and the load events fire in many operations, so overriding their defaults has side effects well beyond the case you are fixing. Keep personalization in a site-level customization so upgrades can compare your changes with the new vendor form.

Frequently Asked Questions

What is a SyteLine form script?

A form script is code attached to a WinStudio form, usually run by an event handler of the script type on a standard or custom event. In SyteLine 9 and 10 these scripts are written against the WinStudio API. Many requirements can be met with event handler types that need no script, such as setting values or running a method.

Which event should I use for validation in SyteLine 10 personalization?

StdFormPerformValidations. It fires during Validate, Save, Save Current, New, Copy and navigation, so a rule placed there runs whenever the user leaves or saves a record. StdFormSave fires once per save operation and StdObjectSave once per collection, so neither is suited to per-row validation.

Why does my StdFormPredisplay handler run after the form appears?

That is documented behaviour in the web client: the event may fire after the form is displayed, even though its order relative to other events is unchanged. If you need something hidden from the start, set the component property in the form definition rather than relying on Predisplay.

Do form events fire when data is changed through the API?

No. WinStudio standard events run only in the client form. IDO REST calls, BOD imports and background processes bypass them. Rules that must apply everywhere should use the application event system on IDO events or IDO extension code.

If you want a private assistant on your own servers that answers questions about SyteLine forms, orders and items in plain English, we can set that up alongside your personalizations.

ArchRay builder
Design the on-prem AI stack for Infor SyteLine: model, GPUs, RAG pipeline, guardrails
See memory, speed and cost as you swap parts, then export the diagram. Free, in your browser.
Open the builder

Keep exploring

Free tools

ERP fixes and how-tos

Guides