我正在为一些自定义图表构建一个工具。 我希望与我共享该工具的用户可以轻松修改该工具。 为了减少进入的障碍,我想使用我在主函数中调用的子函数。 每个子功能将代表整个主功能的一小部分。
我的问题:是否可以将图形构建器中的“调度”参数替换为函数? 或者是否有另一种标准方法来创建我不知道的较小的子功能。
感谢吉姆的彻底回应。 我想我必须将它作为文本传递并以某种方式解析它,但我当然没想到它会如此丑陋! 哦,好吧,我想这就是我为拥有这样一个利基需求而付出的代价。 不过这对我来说是完美的。 只要我可以在主函数中隐藏大部分丑陋的代码,我就很高兴,因为我的目标是让最终用户不去管它。 目前我在社区中非常积极,但我希望我能通过回馈帮助来回报我的帮助,因为我在 JMP 中获得了更多的脚本编写经验。
这里有一些代码可以完成你想要的,但它不是很漂亮。您想要的是能够通过替换进行代码生成,而这在 JMP 中处理得不是很好。
Names Default To Here( 1 );
dt = Open( "$SAMPLE_DATA\semiconductor capability.jmp" );
myfunc = Function( {},
return =
"\[Dispatch(
{},
"2",
ScaleBox,
{Min( 92.9916666666667 ), Max( 127 ), Inc( 5 ), Minor Ticks( 1 ),
Add Ref Line( 118.356215277778, "Solid", "Black", "", 1 )}
)]\"
);
Eval(
Substitute(
Expr(
Bivariate( Y( :NPN1 ), X( :PNP1 ), SendToReport( __dispatch__ ) )
),
Expr( __dispatch__ ), Parse( myfunc )
)
);
JMP 可以处理平台结构内的组件替换,例如传入最小值。
Names Default To Here( 1 );
dt = Open( "$SAMPLE_DATA\semiconductor capability.jmp" );
mymin = 80;
Bivariate(
Y( :NPN1 ),
X( :PNP1 ),
SendToReport(
Dispatch(
{},
"2",
ScaleBox,
{Min( Eval( mymin ) ), Max( 127 ), Inc( 5 ), Minor Ticks( 1 ),
Add Ref Line( 118.356215277778, "Solid", "Black", "", 1 )}
)
)
);
或者我认为是首选方法,即生成默认图,然后在生成后设置参数,其中可以使用对函数的调用来有条件地设置所需的项目;
Names Default To Here( 1 );
dt = Open( "$SAMPLE_DATA\semiconductor capability.jmp" );
myfunc = function({},
Report( biv )[Axis Box( 1 )] << Min( 80 );
);
biv = Bivariate(
Y( :NPN1 ),
X( :PNP1 ),
SendToReport(
Dispatch(
{},
"2",
ScaleBox,
{Min( 92.9916666666667 ), Max( 127 ), Inc( 5 ), Minor Ticks( 1 ),
Add Ref Line( 118.356215277778, "Solid", "Black", "", 1 )}
)
)
);
myfunc;嗨,吉姆,
谢谢回复。 但是,我会尝试使我的问题更清楚一些。
假设在我的 JSL 脚本中的 Graph Builder 中,我有一些代码块,例如:
Dispatch(
{},
"400",
ScaleBox,
{Legend Model(... etc例如,在这个例子中,我正在自定义线条的颜色。
我是否可以在另一个 JSL 脚本中创建一个函数,例如:
myDispatch=Function(
{},
Dispatch(
{},
"400",
ScaleBox,
{Legend Model(.... etc然后在 JSL 脚本中,代替调度函数,我将使用 myDispatch()。
我已经尝试过了,虽然它没有记录任何错误,但它并没有应用我的功能(即图表只使用默认的线条颜色等而忽略了我的功能)。 如果没有在 Graph Builder 本身中显式输入参数,我就无法让它工作。
非常感谢
如果你看:
帮助==>脚本索引==>图形生成器
通过将请求传递给平台,您将看到可以在 Graph Builder 中操作的所有各种组件。所有这些都可以放入用户构建函数中。
