cancel
Showing results for 
Show  only  | Search instead for 
Did you mean: 
The Discovery Summit 2025 Call for Content is open! Submit an abstract today to present at our premier analytics conference.
Get the free JMP Student Edition for qualified students and instructors at degree granting institutions.
Choose Language Hide Translation Bar
View Original Published Thread

Application Current DataTable

HubP_SDe
Level III

Dear Community,

 

With your help, and many searches and iterations, I'm now close to wrapping-up my first JMP application.

 

I'm still struggling on few points, for which sure someone will suggest easy solutions ;):

  1. A the end of Dialog1 script, I'm opening a Data Table that was selected by the User
    • OnNext1 = Function( {},
      	file_path = FilePath << GetText();
      	If ( file_path != "",
      		//IST Text File
      		dt = Open(
      			file_path,
      			Columns(...)
      			...
      		);
      		...
      		
      		CurrentDataTable( dt );
      		Dialog2 << CreateInstance( dt );
      	)
    • But I'd never get the CurrentDataTable correctly set when reaching Dialog2
    • Can be seen after filling the File Path field and pressing "Next":
      Dialog2 Tiltle = ^APPNAME - ^TABLENAME
      shows no Table Name, or another preloaded DataTable name
    • Dialog2_CurrentDataTable.png
  2. This next issue would supposedly be fixed by the previous one:
    • A the end of Dialog2 script, I'm willing to Append all Columns starting with a given string, to the Dialog2 Col List Box.
    • It currently remains deperately empty, certainly due to issue #1
    • Plus getting following errors:
      • Send Expects Scriptable Object 22 times in access or evaluation of 'Send' , ColList1 << /*###*/Background Color( 2147483647 ) /*###*/
        Send Expects Scriptable Object 3 times in access or evaluation of 'Send' , ColList1 << /*###*/Set Data Type( "numeric" ) /*###*/
        Send Expects Scriptable Object in access or evaluation of 'Send' , ColList1 << /*###*/Get Items/*###*/
  3. Whatever happens on Dialog2, if I now press "OK", I'm getting the following error, related to calculated Custom Quantile variables used in Module "Report1":
    • Invalid matrix token.
      Line 69 Column 41: ...les( ( Percent1 /100 ), [►( Percent1 /100 ), ( Perc...
Stéphane DELACROIX
Senior Simulation & Planning Engineer
2 REPLIES 2
Craige_Hales
Super User


Re: Application Current DataTable

Keep the data table reference in a variable (dt in your example) and always use dt:col (etc) to reference a column. Don't depend on the current data table; the current data table changes when the user clicks any table, and possibly when any new window opens.

The error "Send Expects Scriptable Object" could explain itself better. @Audrey_Shull . The << operator is the send operator. The left hand side should be an object and the right hand side a message for the object to process.

myobject << message( ... );

The error means the left hand side is not an object that accepts messages (a scriptable object). "myobject" isn't what you expect. Try

show(myobject);
or
show(type(myobject));

to get some idea what is going on.

 

 

Craige
HubP_SDe
Level III


Re: Application Current DataTable

Thanks Mark,

 

  1. If you take a closer look at the end of "Dialog1" script, you'll see that I'm passing the "dt" reference to "Dialog2", which I'm then using in the code explicitly.
    • Neither this, not the CurrentDataTable command, seem to populate the "^TABLENAME" global reference in the "Dialog2" Title field.
    • I tried "^APPNAME - ^dt", but "^dt" is then displayed as a raw string
      Dialog2_TableName.PNG
    • I also tried to add "TABLENAME = dt;" in "Dialog2" "OnModuleLoad", but nothing changes in Dialog2 windows title: TABLENAME remains empty
  2. Dealing with the "scripting object" error, I suspect it is related to the ColList object of "Dialog2" apparently being null a the Table is not yet open at app launch.
    • I suppose I'll have to create the Col List Box dynamically in script to work this around.

Cheers!

Stéphane DELACROIX
Senior Simulation & Planning Engineer