是否可以通过JSL单击图中的曲线来执行脚本?例如,我制作了下面脚本的图表。
dt = Open( "$SAMPLE_DATA/Students2.JMP" );
dt << Sort( By( 1 ), Order( Ascending ), replacetable( 1 ) );
New Column( "A" );
Column( "A" ) << Formula( If( Row() == 1 | name != Lag( name, 1 ), 1, If( Lag( A, 1 ) < 6, Lag( A, 1 ) + 1 ) ) );
dt << run formulas;
Column( "A" ) << deleteFormula;
dt << Sort( By( "A" ), Order( DEscending ), replacetable( 1 ) );
dt << delete rows( N Rows( Loc( dt[0, "A"] > 0 ) ) + 1 :: N Row( dt ) );
dt << Sort( By( 1, "A" ), Order( Ascending, Ascending ), replacetable( 1 ) );
p1 = Graph Builder(
Size( 528, 454 ),
Show Control Panel( 0 ),
Variables( X( :A ), Y( :height ), Overlay( :name ) ),
Elements( Points( X, Y, Legend( 8 ) ), Smoother( X, Y, Legend( 9 ) ) )
);
单击图中任意条件曲线,自动运行指定的“D:\ A.jsl"

谢谢!
自动化和脚本编写大规模定制回复:是否可以通过 JSL 单击图中的曲线来执行脚本?也许我错过了所需的一些细微差别。 但根据建议@jthi ,你可以做这种事情(一旦你选择了当前行,“doSomething”就可以做任何 JSL 能够做的事情):
NamesDefaultToHere(1);
// Original code . . .
dt = Open( "$SAMPLE_DATA/Students2.JMP" );
dt << Sort( By( 1 ), Order( Ascending ), replacetable( 1 ) );
New Column( "A" );
Column( "A" ) << Formula( If( Row() == 1 | name != Lag( name, 1 ), 1, If( Lag( A, 1 ) < 6, Lag( A, 1 ) + 1 ) ) );
dt << run formulas;
Column( "A" ) << deleteFormula;
dt << Sort( By( "A" ), Order( DEscending ), replacetable( 1 ) );
dt << delete rows( N Rows( Loc( dt[0, "A"] > 0 ) ) + 1 :: N Row( dt ) );
dt << Sort( By( 1, "A" ), Order( Ascending, Ascending ), replacetable( 1 ) );
gb = dt <<
Graph Builder(
Size( 528, 454 ),
Show Control Panel( 0 ),
Variables( X( :A ), Y( :height ), Overlay( :name ) ),
Elements( Points( X, Y, Legend( 8 ) ), Smoother( X, Y, Legend( 9 ) ) )
);
// New code . . .
// Row state handler function to do something
doSomething = Function({x}, {Default Local},
// 'x' is a column vector of row states that have just CHANGED. We just need those that are now selected . . .
selectedRows = [];
For( i = 1, i <= NRow(x), i++, If( Selected( Row State( x[i] ) ), selectedRows = VConcat(selectedRows, x[i]) ));
Print(x);
Print(selectedRows);
);
// Assign the handler to the table
rsh = dt << MakeRowStateHandler(doSomething);
回复:是否可以通过 JSL 单击图中的曲线来执行脚本?在我的实现应用程序中,数据不在同一个文件中。所以我不知道如何使用这种向下钻取功能。谢谢A很多
回复:是否可以通过 JSL 单击图中的曲线来执行脚本?
回复:是否可以通过 JSL 单击图中的曲线来执行脚本?非常感谢! 但我还没有找到办法。

回复:是否可以通过 JSL 单击图中的曲线来执行脚本?也许在原始数据表上使用行状态处理程序可以工作? 或者,如果您可以“跳过”点击部分,那么您可以使用悬停标签。
回复:是否可以通过 JSL 单击图中的曲线来执行脚本?JMP具有类似的模块功能,可以实现以下流程操作:
通过单击选定的曲线,获取“名称”。使用此名称可获取其他表 Students1.jmp 中该名称的年龄。将生成一个新的数据表,其中仅包含所选名称以及表 2 中的“身高”和表 1 中的“年龄”。
d1 = Open( "$SAMPLE_DATA/Students1.JMP" );
感谢专家!
回复:是否可以通过 JSL 单击图中的曲线来执行脚本?这个“D:\A.JSL”、我主要实现了以下功能:
单击所选曲线以获取“名称”。使用此名称可以获取另一个表“Students1.JMP”中名称的“年龄”。创建新表“new.jmp”
画出如上图。
最后,这两个图和每个数据表用于生成仪表板。
