動的コーディングの問題こんにちは、
スクリプトをよりダイナミックにする方法についてのヒントを探しています。
以下のスニペットでは、動的ボタンを含む Col Box() に追加するデータ テーブル << Get as Report があります。
さて、ここに問題があります。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]);
);自動化とスクリプトRe: 動的コーディングの問題ボタン付きのデータ テーブルを生成する関数を作成します。
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]
)
)
)
)
)
);
お役に立てれば幸いです。
Re: 動的コーディングの問題おそらくこのようなものをお探しですか?
Names Default To Here(1);
dt = Open("$SAMPLE_DATA/Big Class.jmp");
data_window = New Window("Down Time Exceeding 5mins",
<<SIZE window=""></SIZE>Re: 動的コーディングの問題ありがとう!! 複数の関数を使用することは考えてもいませんでした。解析するには非常に面倒な文字列を作成する必要があるかもしれないと思っていましたが、これは完全に機能しました。
クエリリスト内の各文字列のデータテーブルを作成する関数があります。次に、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 <