动态编码问题你好,
寻找如何使我的脚本更具活力的提示。
鉴于下面的代码片段,我们有一个数据表<<获取为报告,我们将其添加到带有动态按钮的 Col Box() 上。
现在,问题就在这里。我需要将 X 个数据表放入我的窗口中,但我不确定该怎么做,因为我还需要向每个表添加动态按钮。
数据表的确切数量可能会有所不同。
谢谢你的帮助
data_window = New Window("Down Time Exceeding 5mins",
<< Size Window( 1000, 600 ),
H List Box(
OutLine Box ("foo",
dt_Rpt = dt_dt << Get as Report();
)
)
);
tb = dt_Rpt[Table Box( 1 )];
tb << append(
bb = col box("Pull Alarms")
);
bblist = {};
for (i = 1, i<=N Rows(dt_dt), i++,
bb_expr = evalinsert("\[bblist[i] = buttonbox("Pull Alarms",
tb << Set Selected Rows(Matrix({^i^}));
dt = Get Data Table( "foo Alarms for rows " || char(^i^));
dt << ShowWindow( 1 );
dt << Bring Window To Front;
)]\");
eval(parse(bb_expr));
bb << append(bblist[i]);
);自动化和脚本回复:动态编码问题创建一个函数来生成带有按钮的数据表:
Define Function( Create_Data_Table_With_Buttons( dt_name, window_title ),
dt_Rpt = dt_name << Get as Report();
tb = dt_Rpt[Table Box( 1 )];
tb << append(
bb = col box("Pull Alarms")
);
bblist = {};
for (i = 1, i <= N Rows(dt_name), i++,
bb_expr = evalinsert("\[bblist[i] = buttonbox("Pull Alarms",
tb << Set Selected Rows(Matrix({^i^}));
dt = Get Data Table( "^window_title^ Alarms for rows " || char(^i^));
dt << ShowWindow( 1 );
dt << Bring Window To Front;
)]\");
eval(parse(bb_expr));
bb << append(bblist[i]);
);
return dt_Rpt;
);
创建数据表名称及其对应窗口标题的列表:
data_table_info = {
{"dt_1", "Down Time Exceeding 5mins"},
{"dt_2", "Another Data Table1"},
{"dt_3", "Another Data Table2"}
};
使用循环创建多个带有数据表和按钮的 OutLine 框:
data_window = New Window("Multiple Data Tables",
<< Size Window( 1000, 600 ),
H List Box(
V List Box(
for(i = 1, i <= N Items(data_table_info), i++,
OutLine Box(data_table_info[i][2],
Create_Data_Table_With_Buttons(
Eval(data_table_info[i][1]),
data_table_info[i][2]
)
)
)
)
)
);
希望有所帮助。
回复:动态编码问题你可能在寻找类似这样的东西吗?
Names Default To Here(1);
dt = Open("$SAMPLE_DATA/Big Class.jmp");
data_window = New Window("Down Time Exceeding 5mins",
<<SIZE window=""></SIZE>回复:动态编码问题谢谢!!我甚至没有想过使用几个函数。我以为我可能必须创建一些巨大的令人头痛的字符串来解析,但这完全有效。
我有一个函数,它为查询列表中的每个字符串创建数据表。然后我将 dt 传递给另一个函数,该函数
附加 Lbox,在我的窗口中创建报告
window = expr(
nw = New Window("Down Time Exceeding 5mins",
<< Size Window( 1500, 800 ),
Lbox = Line Up Box(Spacing(5),
N Col(3),
)
);
);
eval(window);
nw <