動態編碼問題你好,
尋找有關如何使我的腳本更加動態的提示。
鑑於下面的程式碼片段,我們有一個資料表 << Get as Report,我們將其新增到帶有動態按鈕的 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 <