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?
Lists
- 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.