Subscribe Bookmark



Jun 20, 2016

Display Box Construction 101


One of the things you can do with JMP is build an interactive user interface using display boxes. For instance, you might be interested in building a custom add-in, creating an interactive display for your data, or a custom report. If so, you've come to the right place!




I have been working on a project to create a custom add-in builder that allows users to create a custom JMP add-in that accesses R functions. This allows users to define their own R functions packaged in a JMP user interface. Building a wizard that generates a user interface display requires a lot of display box manipulation in JSL (JMP Scripting Language).

Thus, some of my best friends have been these handy JMP scripting help articles, accumulated after weeks of research:



Since friends don't let friends waste time googling very specific UI display functions in JSL using 17 different keyword combinations, I compiled a "Display Box Construction 101" resource kit that can jump-start you on your journey to building complex UIs.

Let's begin!

The Basics of Display Trees

Constructing Display Trees

  • How do I define and use all types of JSL display elements (Boxes)?
  • How do I create a display window?
  • What are some simple functions that act on display boxes (e.g., append, delete)?
  • Where can I find examples that combine multiple interactive display elements in one single window?

Extracting Values from Interactive Display Elements

  • What types of display box elements allow user input?
  • How do I access and store values the user selects through my interactive display?

Display Box Functions

  • Where is a comprehensive list of all the functions that act on display elements in JSL?
  • How do I delete and add components to a display tree?

Display Box Syntax

  • What syntax is used to define common display box elements?
  • What is each type of display box element used for?

Display Box Functions

  • What functions are commonly used for each type of display box?
  • What are the parameters for each type of display box element?

Specific Display Tree Use Cases

Configuring Drop Down Menus

  • How do I create and customize an interactive drop-down menu?

Radio Button Answer Choices

  • How do I create radio button selection options?
  • How do I group radio buttons together? How do I group them after they have been created?

Setting Functions to Display Elements

  • How do I set a function to a display element after it has been created?

Custom Column Lists and Data Table Selectors

  • How do I create a custom column list in my UI?
  • How do I create a data table selector for my UI?

Generating Variable Amounts of Display Elements

  • How do I generate buttons within a loop, depending on the loop number?
  • How do I generate variable amounts of display elements?
  • How do I create a fixed UI without creating a fixed display?

Creating Variable Amounts of Variables (as if there aren't enough variables already)

  • How do I generate variables within a loop, depending on the loop number?
  • How do I use Eval, Parse, and Eval Insert in JMP?
  • How do I create code that is evaluated later on?

JMP and R

Working with R

  • What should I know when working with R through JMP and JSL?
  • What functions does JMP have for interacting with R?

Sending Data to R

  • How do I send data from JMP to R?
  • How do I use R Submit?

General JSL Resources

Scripting Index

  • (JMP > Help > Scripting Index) for syntax and comprehensive list of functions, data structures, etc.

JMP Scripting Guide v. 13

  • How do I do anything in JSL?
  • Hint: There are 720 pages. Use CTRL + F.

Associative Arrays

  • Fun fact: The only data structure in JSL that can store display boxes is the Associative Array. If you're building dynamic UIs (in my case, the elements I display depend on user input), I suggest using them to store display boxes that you append to your display. This allows your display to be adaptive, versatile and conditional.
  • What is an associative array, and what can I use it for?
  • How do I iterate through an associative array?
  • What are the advantages of using an associative array?


  • What are lists, and what can I use them for?
  • How do I iterate through a list?
  • How do I make assignments with lists?

Expression Functions

  • How do I create an expression in JSL?
  • What type of expression function should I use in my code?

Character Functions (Specific Examples)

  • What functions operate on characters and strings in JSL?

JSL Syntax Rules

  • What are the no-nos and yes-yeses of JSL?
  • What are the JSL escape characters?
  • How do I even parentheses?

Happy scripting, and best of luck in your UI building adventures! Let me know what your favorite UI building resources are in the comments below; I'd be happy to hear from you.