Dynamisches CodierungsproblemHallo,
Ich suche nach Tipps, wie ich mein Skript dynamischer gestalten kann.
Im folgenden Snippet haben wir eine Datentabelle << Als Bericht abrufen, die wir zu einer Col Box() mit dynamischen Schaltflächen hinzufügen.
Und hier liegt das Problem. Ich muss eine bestimmte Anzahl von Datentabellen in mein Fenster einfügen und bin mir nicht sicher, wie ich das anstellen soll, da ich jeder Tabelle auch dynamische Schaltflächen hinzufügen muss.
Der genaue Umfang der Datentabellen kann variieren.
danke für die Hilfe
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]);
);Automatisierung und SkriptingBetreff: Problem mit dynamischer CodierungErstellen Sie eine Funktion zum Generieren einer Datentabelle mit Schaltflächen:
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;
);
Erstellen Sie eine Liste mit Datentabellennamen und den entsprechenden Fenstertiteln:
data_table_info = {
{"dt_1", "Down Time Exceeding 5mins"},
{"dt_2", "Another Data Table1"},
{"dt_3", "Another Data Table2"}
};
Verwenden Sie eine Schleife, um mehrere OutLine-Boxen mit Datentabellen und Schaltflächen zu erstellen:
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]
)
)
)
)
)
);
Hoffe, das hilft.
Betreff: Problem mit dynamischer CodierungSiehst Du vielleicht so aus?
Names Default To Here(1);
dt = Open("$SAMPLE_DATA/Big Class.jmp");
data_window = New Window("Down Time Exceeding 5mins",
<<SIZE window=""></SIZE>Betreff: Problem mit dynamischer CodierungDanke!! Ich habe nicht einmal daran gedacht, mehrere Funktionen zu verwenden. Ich dachte, ich müsste vielleicht eine riesige, nervtötende Zeichenfolge zum Parsen erstellen, aber das hat absolut funktioniert.
Ich habe eine Funktion, die die Datentabellen für jeden String in meiner Abfrageliste erstellt. Dann übergebe ich das dt an eine andere Funktion, die
hängt Lbox an, wodurch der Bericht in meinem Fenster erstellt wird
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 <