cancel
Showing results for 
Show  only  | Search instead for 
Did you mean: 
  • Learn how to build custom Python data connectors and further customize JMP’s Data Connector Framework with the Python Data Connector Demo, available now in the JMP Marketplace!
  • See how to create experiments to support product design and ID useful product features. Register for June 12 webinar, 2pm US Eastern Time.

Discussions

Solve problems, and share tips and tricks with other JMP users.
Choose Language Hide Translation Bar
nathan-clark
Level VI

Turning Private data tables on and off

In keeping many of my scripts clean, I use 'private' quite a lot. However, if I am troubleshooting a script, having tables as private gets in the way and I need to comment out and hopefully remember to uncomment as I make changes to see if the changes work.

Is there a way, or does JMP already have a global way to turn private tables on or off? In my head I could take the time to make duplicates of my code with and without the private and tie it to a test variable, but that doesn't seem like the best answer.

 

Wasn't sure if there were any ideas out there on how to do that. Thanks!

12 REPLIES 12
nathan-clark
Level VI

Re: Turning Private data tables on and off

Yes! That's definitely on my radar. I have a library of functions/utilities I keep a lot of that stuff on hand (and distribute), and shifting to the custom function aspect is one plan long term for many of the more dynamic functions.

vince_faller
Super User (Alumni)

Re: Turning Private data tables on and off

Nathan, is this helpful at all?  

Names default to here( 1 );
dt = open("$SAMPLE_DATA\Big Class.jmp");
privateTable = Function({bool,dt},{default local},
	table_name = dt << Get Name;
	If(!bool & !(dt << HasDataView), // no table but you want one
		print("making "||table_name||" public");
		dt << New Data View;
		Return(dt);
	, // elif
		bool & dt << HasDataView, // you have a table but want it private
		print("making "||table_name||" private");
		dt_sub = dt << Subset( All rows, Selected columns only( 0 ), "private" );
		close(dt, no save);
		dt_sub << Set Name(table_name);
		return(dt_sub);
	, // else just return what's given
		print("passthrough");
		return(dt);
	)
);

dt = privateTable(1, dt); // should make it private
wait(2);
dt = privateTable(1, dt); // should do nothing
wait(2);
dt = privateTable(0, dt); // should do make it visible
wait(2);
dt = privateTable(1, dt); // should do make it private again
Vince Faller - Predictum
nathan-clark
Level VI

Re: Turning Private data tables on and off

That's excellent, Vince! It's similar to what I ended up doing, but it's much more elegant in allowing the dataview to go both ways.

Recommended Articles