Infor SyteLine

Custom Picklist Configuration and Scripting in SyteLine

Picklists are the standard selection mechanism in SyteLine forms, letting users choose from validated lists of items, customers, warehouses, and other reference data. While standard picklists work out of the box, real-world requirements often demand customization: filtering the picklist based on form context, displaying additional columns for user reference, setting default selections, or cascading one picklist's selection to filter another. SyteLine's scripting and configuration options support all of these patterns.

Dynamic Picklist Filtering Based on Form Context

The most common picklist customization is filtering the available options based on the current form state. For example, showing only active items when entering a sales order, or restricting warehouse options to those the current user has permission to access. SyteLine picklists are backed by IDO LoadCollection calls, and you can modify the filter applied to that call through form scripts or picklist configuration properties. Set the picklist's AdditionalFilter property in your event handler to append a WHERE condition to the standard picklist query.

  • Context filter: picklist.AdditionalFilter = "Stat = N'A'" to show only active records in the item picklist
  • User-based filter: picklist.AdditionalFilter = "Whse IN (" + userWarehouses + ")" for permission-based filtering
  • Record-based filter: set filter in StdObjectLoaded to change picklist options based on the current order type
  • Clear filter: picklist.AdditionalFilter = "" to reset to the default unfiltered picklist
  • Apply filter before picklist opens: handle the picklist's BeforeOpen event to set context-sensitive filters

Multi-Column Picklists and Display Customization

Standard SyteLine picklists typically show a code and description column. Business users often want additional context: showing item prices, stock levels, or customer credit limits alongside the selection code. Configure multi-column picklists by modifying the picklist's PropertyList to include additional IDO properties, then set the DisplayColumns property to control which columns appear and their widths. You can also add a search column that lets users filter the picklist by any visible column, not just the primary code.

  • Add columns: picklist.PropertyList = "Item, Description, QtyOnHand, UnitPrice" for enriched item selection
  • Set column widths: picklist.DisplayColumns = "Item:100, Description:200, QtyOnHand:80, UnitPrice:80"
  • Enable search: picklist.SearchableColumns = "Item, Description" for flexible user filtering
  • Sort control: picklist.OrderBy = "Description ASC" to present options in user-friendly order
  • Custom labels: rename column headers in the picklist display for clarity: "Qty Available" instead of "QtyOnHand"

Cascading Picklists and Default Selection

Cascading picklists create a dependency chain where selecting a value in one picklist filters the options in another. For example, selecting a Country filters the State picklist, or selecting a Product Line filters the Item picklist. Implement cascading by handling the first picklist's SelectionChanged event and updating the second picklist's AdditionalFilter based on the selected value. For default selection, set the picklist's default value in StdObjectNew or StdObjectLoaded based on user preferences, the most recently used value, or business rules.

  • Cascading: on Country change, set statePicklist.AdditionalFilter = "Country = N'" + selectedCountry + "'"
  • Product line cascade: on ProductLine change, filter itemPicklist to items in that product line only
  • Default from user: set whsePicklist.DefaultValue = currentUserDefaultWarehouse in StdObjectNew
  • Default from last used: store last selected value in a session variable and apply on new records
  • Reset cascade: when parent picklist clears, clear child picklist value and remove its filter

Netray AI agents design and implement custom picklist configurations for your SyteLine forms. Get context-aware, user-friendly selection interfaces without manual scripting effort.