选择当前数据表你好,
我正在使用一个小的 jmp_addin 将规格限制信息添加到选定的列。无论如何,我遇到的问题是,每当我运行它时,它总是会获取打开的最新数据表,即使我从不同的窗口运行插件......有没有办法突出显示我的 jmp_addin正在尝试从选定的数据表运行脚本?我认为 currentdatatable 会这样做,但它似乎总是适用于最新打开的数据表,有时我需要更改/添加规格到已经打开的表......
提前致谢!
dt = currentdatatable();
table=list("Spec1", "Spec2", "Spec3" );
r = Column Dialog(
Spec = Col List( "Columns to add Spec" ),
v list ("Select Product Spec Table", rb = Combo Box( table()))
);
dtedc = open("C:\myData\ADDIN\Spec Limit\"||table[r["rb"]]||".jmp",invisible);
for ( i=1, i<=N Items(r["Spec"]),i++,
for (j=1, j<= nrows(dtedc), j++,
if(as Name(r["Spec"]) == as Name(dtedc:Parameter),
Eval(
Substitute(
Expr(
Column(dt, r["Spec"]) << set property("spec limits",
{LSL( l), Target( t ), USL( u ), Show Limits(1)}
)
),
Expr( l ), dtedc:LSL,
Expr( t ), dtedc:Target,
Expr( u ), dtedc:USL
)
);
);
);
);
close(dtedc, nosave);
回复:选择当前数据表如果您将 Choose_data_table 函数定义放在代码顶部,它将起作用。
回复:选择当前数据表是的,那行得通。 我只是希望有一种方法可以提示用户选择一张桌子,因为我们经常同时打开许多桌子。 过去,依赖不同用户对其当前数据表的了解效果并不好。只是希望有一种方法来提示用户指定。 但这是必须做的。
回复:选择当前数据表当我看到这条线时
dt = choose_data_table();
我假设您的代码中较早的地方有一个函数,可以让您选择要运行的数据表。但如果您不这样做,那么我建议您将该行更改为:
dt = current data table();
并尝试运行你的代码
回复:选择当前数据表@tx尼尔森
谢谢你的慰问。 我没有考虑过检查日志。 它说:
名称未解析:访问或评估 'choose_data_table' 时的 Choose_data_table,choose_data_table() /*###*/
在以下脚本中,错误标记为 /*###*/
dt = Choose_data_table() /*###*/;
显示(dt);
dt << 选择其中( :Pad Summary == "Overload" );
dt << 颜色( 22 );
dt << 标记( 11 );
dt << Select Where( :Pad Summary == "曲线错误" );
dt << 颜色( 27 );
dt << 标记( 2 );
dt << 选择其中( :Pad Summary == "Detected" );
dt << 颜色( 4 );
dt << 标记( 12 );
dt << Select Where( :Pad Summary == "位置未对齐" );
dt << 颜色( 3 );
dt << 标记( 2 );
dt << Select Where( :Pad Summary == "Negative (w/ Misalign)" );
dt << 颜色( 1 );
dt << 标记( 2 );
dt << 选择其中( :Pad Summary == "Negative" );
dt << 颜色( 1 );
dt << 标记( 0 );
dt << 选择其中( :Pad Summary == "Disconnect" );
dt << 颜色( 0 );
dt << 标记( 9 );
dt << Select Where( :Pad Summary == "高 CP 电流" );
dt << 颜色( 56 );
dt << 标记( 24 );
dt << 选择其中( :运行状态 == "无效" );
dt << 标记( 4 );回复:选择当前数据表您在日志中收到什么错误?
回复:选择当前数据表是的,我会尝试的。 抱歉,我是个新手,没有接受过任何脚本方面的正式培训,这可能是显而易见的。 我将数据表选择器添加到此脚本中,而不是使用:
dt = 当前数据表();
并确保当前数据表是我想要重新格式化的表。 当我第一次实现“选择数据表”功能时,它就像一个魅力,并创建了一个提示,从中选择所需的表。 我也将其发送给同事使用,尽管验证了脚本未更改,但它对他不起作用。 我打开了保存的脚本,它对我来说也不起作用。 因此,我交替使用以前的格式化方法,然后返回到选择数据表方法,它再次起作用。 后来就不再这样了。
对于这种不一致,或者成功和不成功的尝试之间发生了什么变化,我真的没有很好的技术解释。 据我所知,没有什么具体的事情发生。 我将这些东西拼凑在一起,所以我肯定缺乏一些基本原则,例如清除或指定偏好或符号。 也许这个问题超出了简短的论坛帖子的范围?
不管怎样谢谢
回复:选择当前数据表我认为我们需要更多关于“工作不一致”含义的信息。 你能提供更多细节吗?
回复:选择当前数据表你好@杰夫·珀金森,
我试图在一个相当简单的格式化数据标记的模块中使用它。 当我最初设置脚本时,它工作得很好,但此后一直工作不稳定。 有什么想法为什么会这样吗? 列标题和值是可靠的。
dt=choose_data_table();
show(dt);
dt << Select Where( :Pad Summary == "Overload" );
dt << Colors( 22 );
dt << Markers( 11 );
dt << Select Where( :Pad Summary == "Curve Error" );
dt << Colors( 27 );
dt << Markers( 2 );
dt << Select Where( :Pad Summary == "Detected" );
dt << Colors( 4 );
dt << Markers( 12 );
dt << Select Where( :Pad Summary == "Position Misalign" );
dt << Colors( 3 );
dt << Markers( 2 );
dt << Select Where( :Pad Summary == "Negative (w/ Misalign)" );
dt << Colors( 1 );
dt << Markers( 2 );
dt << Select Where( :Pad Summary == "Negative" );
dt << Colors( 1 );
dt << Markers( 0 );
dt << Select Where( :Pad Summary == "Disconnect" );
dt << Colors( 0 );
dt << Markers( 9 );
dt << Select Where( :Pad Summary == "High CP Current" );
dt << Colors( 56 );
dt << Markers( 24 );
谢谢
回复:选择当前数据表我刚刚遇到这个老问题,不幸的是,从未得到答复。
当前数据表()应返回对活动数据表窗口的引用。 我不确定为什么你的情况不是这样。
然而,更可靠的方法是提示用户从打开的数据表中进行选择。
这是一个小函数,它提示数据表列表并返回用户所做的选择。
choose_data_table=function({},
list = {};
For( i = 1, i <= N Table(), i++,
list[i] = Data Table( i ) << get name
);
win = New Window( "Select a data table", << Modal,
hb = H List Box(
Panel Box( "Choose a data table",
dt = List Box(
list,
max selected( 1 ),
chosen = Data Table( (dt << get selected)[1] );
show (chosen);
)
),
)
);
chosen);
像这样使用它:
dt=choose_data_table();
show(dt);