Hacking the JMP® Data Filter Philip D. Brown

Slides:



Advertisements
Similar presentations
Automating Tasks With Macros
Advertisements

Automating Tasks With Macros. 2 Design a switchboard and dialog box for a graphical user interface Database developers interact directly with Access.
XP New Perspectives on Microsoft Access 2002 Tutorial 71 Microsoft Access 2002 Tutorial 7 – Integrating Access With the Web and With Other Programs.
TIBCO Designer TIBCO BusinessWorks is a scalable, extensible, and easy to use integration platform that allows you to develop, deploy, and run integration.
Chapter 9 Macros, Navigation Forms, PivotTables, and PivotCharts
Introduction of Geoprocessing Topic 7a 4/10/2007.
Introduction to Enterprise Guide Jennifer Schmidt Rhonda Ellis Cassandra Hall.
1/62 Introduction to and Using MS Access Database Management and Analysis Yunho Song.
1 1 Chapter 3: Graphical Data Exploration 3.1 Exploring Relationships with a Continuous Y Variable 3.2 Exploring Relationships with a Categorical Y Variable.
© Copyright by Deitel & Associates, Inc. and Pearson Education Inc. All Rights Reserved. 1 Outline 25.1 Test-Driving the ATM Application 25.2.
XP New Perspectives on Microsoft Office Access 2003 Tutorial 10 1 Microsoft Office Access 2003 Tutorial 10 – Automating Tasks With Macros.
Today’s Goals Answer questions about homework and lecture 2 Understand what a query is Understand how to create simple queries using Microsoft Access 2007.
T7-1 LEARNING OUTCOMES – ACCESS PROBLEM SOLVING 1.Describe the process of using the Simple Query Wizard using Access 2.Describe the process of using the.
Data Design and Implementation. Definitions Atomic or primitive type A data type whose elements are single, non-decomposable data items Composite type.
Introduction of Geoprocessing Lecture 9 3/24/2008.
Presentation on Database management Submitted To: Prof: Rutvi Sarang Submitted By: Dharmishtha A. Baria Roll:No:1(sem-3)
Mail Merge Introduction to Word Processing ITSW 1401 Instructor: Glenda H. Easter Introduction to Word Processing ITSW 1401 Instructor: Glenda H. Easter.
Emdeon Office Batch Management Services This document provides detailed information on Batch Import Services and other Batch features.
Building Dashboards with JMP 13 Dan Schikore SAS, JMP
Product Training Program
Dive Into® Visual Basic 2010 Express
Chapter 3: Getting Started with Tasks
INTRODUCTION TO DATABASES (MICROSOFT ACCESS)
Business rules.
Visual Basic 2010 How to Program
Chapter 2: The Visual Studio .NET Development Environment
Creating Oracle Business Intelligence Interactive Dashboards
MS Access Forms, Queries, Reports Matt Martin
Working in the Forms Developer Environment
Exploring Microsoft Office Access 2007
Developer 2000 CSE 4504/6504 Lab.
Microsoft Office Access 2010 Lab 2
Mastering Autodesk Revit MEP 2016
Practical Office 2007 Chapter 10
Data Visualizer.
Objectives Query for top values Create a parameter query
Chapter 2 – Introduction to the Visual Studio .NET IDE
JSL File manager Brady Brady and Don Mccormack, JMP.
RAD-IT Architecture Software Training
Chap 7. Building Java Graphical User Interfaces
Exploring Microsoft Office Access 2007
Graphical User Interfaces -- Introduction
 DATAABSTRACTION  INSTANCES& SCHEMAS  DATA MODELS.
Using Reports © 2016 Cengage Learning®. May not be scanned, copied or duplicated, or posted to a publicly accessible website, in whole or in part.
Microsoft Office Access 2003
Microsoft Office Access 2003
VISUAL BASIC.
Creating and Modifying Queries
Microsoft Office Access 2003
Chapter 2 – Introduction to the Visual Studio .NET IDE
Tutorial 3 – Querying a Database
Welcome to E-Prime E-Prime refers to the Experimenter’s Prime (best) development studio for the creation of computerized behavioral research. E-Prime is.
CIS16 Application Programming with Visual Basic
Exploring Microsoft Access 2003
Tutorial 6 Creating Dynamic Pages
Microsoft Office Access 2003
DB Implementation: MS Access Forms
Comparative Reporting & Analysis (CR&A)
JMP® Meets SQL: Using Query Builder for JMP Data Tables
Introduction to Access
Exploring Microsoft Office Access 2010
Tutorial 7 – Integrating Access With the Web and With Other Programs
Lessons Vocabulary Access 2016.
Topic 11 Lesson 1 - Analyzing Data in Access
Welcome 1 This is a document to explains the chosen concept to the animator. This will take you through a 5 section process to provide the necessary details.
Topic 9 – Exploring Scenarios Lesson 1 - Computational Forms
Exploring Microsoft® Office 2016 Series Editor Mary Anne Poatsy
Unit J: Creating a Database
Lesson 13 Working with Tables
Tutorial 7 Creating Custom Reports
Presentation transcript:

Hacking the JMP® Data Filter Philip D. Brown Douglas Data Consulting, LLC Abstract Introduction Whether used interactively or via JSL, JMP's data filter is a powerful tool.  There are a host of built-in features and options that provide variety of ways to filter and create subsets of data. In this poster we demonstrate a method of creating a reusable Data Filter object that can be fully customized. For instance, options not relevant to a particular application can be hidden and new user-defined options added, including custom titles. Several of these Data Filter Objects can used to compose novel user interfaces for data query and extraction. The Data Filter can be invoked once there is a JMP data table open. Once invoked, the default filter window appears and presents a listing of all the columns in the data table. One can add as many columns to the filter as desired, ultimately ending up with hierarchy of variables by which the data table can be filtered.

Hacking the JMP® Data Filter Philip D. Brown Douglas Data Consulting, LLC Anatomy of the JMP Data Filter Object Data Filter XML Document We first examine the anatomy of the JMP Data Filter Object to answer such questions as: What are the key components? How are they arranged? What components can/cannot be changed? This is done by expressing the Data Filter object as an XML document so that the XPath language can be used to access and manipulate the object’s underlying components. In general, all JMP generated display output can be converted into an XML document. The Data Filter is not a display object by default. In order to access and manipulate its XML document, the Data Filter Object must be first wrapped in a formal display box container such as H List Box, V List Box, etc. Only then can the XPath commands be issued.

Hacking the JMP® Data Filter Philip D. Brown Douglas Data Consulting, LLC Anatomy of the JMP Data Filter Object Key Data Filter Display Elements The XML representation of the Data Filter includes every display element used in the object, though some may not be visible. We are only interested in the key display components that are visible by default, so they can be modified. Here are the XPath commands that address every visible component of the default JMP Data Filter. dfObj = H ListBox( Data Filter[] ) dfObj << xpath("//OutlineBox") dfObj << xpath("//ButtonBox[ text()=‘Clear’]”); dfObj << xpath("//ButtonBox[ text()=‘Favorites’]”); dfObj << xpath("//ButtonBox[ text()=‘Help’]”); dfObj <<xpath("//CheckBoxBoxItem[text()=‘Select’]”); dfObj <<xpath("//CheckBoxBoxItem[text()=‘Show’]”); dfObj <<xpath("//CheckBoxBoxItem[text()=‘Include’]”); dfObj <<xpath("//CheckBoxBoxItem[text()=‘Inverse’]”); dfObj << xpath("//ListBoxBox") dfObj << xpath("//ButtonBox[ text()=‘AND’]”); dfObj << xpath("//ButtonBox[ text()=‘OR’]”);

Hacking the JMP® Data Filter Philip D. Brown Douglas Data Consulting, LLC Hacking the Data Filter Object 1. Modifying Display Tree 2. New Display Assembly It is now possible to “hack” the object. This is done in two parts: 1. The default Data Filter Object is modified by adding and/or removing elements of its display tree. 2. The modified Data Filter Object is assembled with other elements to create a new display object that can be used just like any of the Display Box objects native to JMP. In order to actually use the “hack”, the procedures described are packaged into a re-usable JSL function. e.g. These commands remove all checkboxes and buttons from the display. e.g. A Window with a white background panel and grey bevel serves as the “container”. A title for the panel may be set if desired. Since the Data Filter Object was converted to a Display Box, it can be added easily: dfObj << xpath("//OutlineBox/descendant::CheckBoxBox")) << visibility("collapse") dfObj << xpath("//OutlineBox/descendant::ButtonBox")) << visibility("collapse") newfilterContainer << append(dfObj );

Hacking the JMP® Data Filter Philip D. Brown Douglas Data Consulting, LLC Packaging the Hack NewDataFilter Example The procedures are packaged into a function called NewDataFilter that has three inputs. table  Target data table for filter colList  List of columns chosen for filter. title  Title of filter display (optional) Each time NewDataFilter is called, it creates a Namespace with several members. Some key members are: dfObj  Data filter object display  Display assembly dt  Reference to target data table dtCols  Reference to list of columns chosen This namespace represents unique instance of the hacked data filter object. myDataFilter = NewDataFilter( Data Table( "stormdata_2013" ), {:STATE, :EVENT_TYPE}, “Key Parameters“ ); myDataFilter = New Namespace( "#44", { andButton = DisplayBox[ButtonBox], clearButton = DisplayBox[ButtonBox], dfObj = Data Filter[], dfOutline = DisplayBox[OutlineBox], display = DisplayBox[BorderBox], dt = Data Table( "stormdata_2013" ), dtCols = { :STATE, :EVENT_TYPE }, favButton = DisplayBox[ButtonBox], helpButton = DisplayBox[ButtonBox], incChkBox = DisplayBox[CheckBoxBox], invChkBox = DisplayBox[CheckBoxBox], name = "#44", orButton = DisplayBox[ButtonBox], selChkBox = DisplayBox[CheckBoxBox], showChkBox = DisplayBox[CheckBoxBox], titleBox = DisplayBox[TextBox] } )

Hacking the JMP® Data Filter Philip D. Brown Douglas Data Consulting, LLC NewDataFilter Output The members of the output Namespace can now be used as needed. For example, the display member can be included as part of a user interface window: myWindow = New Window( "Severe Weather Data Explorer",   H Splitter Box( myDataFilter:display, Graph Builder( Show Control Panel( 0 ), Variables( Y( :STATE ), Group X( :MONTH_NAME ), Overlay( :EVENT_TYPE ) ), Elements( Bar( Y, Legend( 14 ), Bar Style( "Stacked" ) ) )  ), Distribution( Column( :DAMAGE_PROPERTY ) ) ) ); The Data Filter member can be altered: myDataFilter:dfObj << Match( filterColumns( :STATE, :EVENT_TYPE), Where( :STATE == {"ALABAMA", "FLORIDA", "MISSISSIPPI", "MISSOURI", "NORTH CAROLINA", "OHIO"} ), Where(:EVENT_TYPE == {"Drought","Hail", "Wildfire", "Thunderstorm Wind","Winter Storm","Winter Weather"} ) );

Hacking the JMP® Data Filter Philip D. Brown Douglas Data Consulting, LLC Real-World Example: Database Query Interface The techniques described were used to create a database query interface. The key goal was to provide a clear, and simple tool for extracting data from a Quality Control system. Specified query variables are presented as “hacked” data filter objects, each in their own display panel. They can be arranged in a standalone window or as part of an existing JMP report window. For each field, all the unique terms are shown along with the count. This is useful when there are misspelled or duplicate entries. It is also possible to nest the filters such that a selection in first , controls what appears in the next, and so on.