Problema di codifica dinamicaCiao,
Cerco suggerimenti su come rendere più dinamico il mio script.
Dato il frammento di codice seguente, abbiamo una tabella dati << Ottieni come report che aggiungiamo a una Col Box() con pulsanti dinamici.
Ora, ecco il problema. Devo mettere X quantità di tabelle di dati nella mia finestra e non so come fare, perché devo anche aggiungere pulsanti dinamici a ogni tabella.
La quantità esatta delle tabelle di dati può variare.
Grazie per l'aiuto
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]);
);Automazione e scriptingRe: Problema di codifica dinamicaCrea una funzione per generare una tabella dati con pulsanti:
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;
);
Crea un elenco di nomi di tabelle dati e dei titoli delle finestre corrispondenti:
data_table_info = {
{"dt_1", "Down Time Exceeding 5mins"},
{"dt_2", "Another Data Table1"},
{"dt_3", "Another Data Table2"}
};
Utilizzare un ciclo per creare più caselle OutLine con tabelle dati e pulsanti:
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]
)
)
)
)
)
);
Spero che questo ti sia utile.
Re: Problema di codifica dinamicaStai forse cercando qualcosa del genere?
Names Default To Here(1);
dt = Open("$SAMPLE_DATA/Big Class.jmp");
data_window = New Window("Down Time Exceeding 5mins",
<<SIZE window=""></SIZE>Re: Problema di codifica dinamicaGrazie!! Non avevo nemmeno pensato di usare diverse funzioni. Pensavo di dover creare una gigantesca stringa di mal di testa da analizzare, ma ha funzionato alla grande.
Ho una funzione che crea le tabelle dati per ogni stringa nel mio elenco di query. Poi passo il dt a un'altra funzione che
aggiunge Lbox che crea il report nella mia finestra
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 <