Problème de codage dynamiqueBonjour,
Je recherche des conseils pour rendre mon script plus dynamique.
Étant donné l'extrait ci-dessous, nous avons une table de données << Obtenir sous forme de rapport que nous ajoutons à une Col Box() avec des boutons dynamiques.
Maintenant, voici le problème. Je dois placer X nombre de tables de données dans ma fenêtre et je ne sais pas comment procéder car je dois également ajouter des boutons dynamiques à chaque table.
La quantité exacte de tableaux de données peut varier.
Merci pour l'aide
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]);
);Automatisation et scriptsRé: Problème de codage dynamiqueCréer une fonction pour générer un tableau de données avec des boutons :
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;
);
Créez une liste de noms de tables de données et de leurs titres de fenêtre correspondants :
data_table_info = {
{"dt_1", "Down Time Exceeding 5mins"},
{"dt_2", "Another Data Table1"},
{"dt_3", "Another Data Table2"}
};
Utilisez une boucle pour créer plusieurs boîtes OutLine avec des tables de données et des boutons :
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]
)
)
)
)
)
);
J'espère que cela aide.
Ré: Problème de codage dynamiqueVous recherchez peut-être quelque chose comme ça ?
Names Default To Here(1);
dt = Open("$SAMPLE_DATA/Big Class.jmp");
data_window = New Window("Down Time Exceeding 5mins",
<<SIZE window=""></SIZE>Ré: Problème de codage dynamiqueMerci !! Je n'avais même pas pensé à utiliser plusieurs fonctions. Je pensais que je devrais peut-être créer une chaîne de caractères gigantesque à analyser, mais cela a parfaitement fonctionné.
J'ai une fonction qui crée les tables de données pour chaque chaîne de ma liste de requêtes. Ensuite, je passe le dt à une autre fonction qui
ajoute Lbox qui crée le rapport dans ma fenêtre
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 <