Zone de programmation Sauter la ligneJ'essaie d'ignorer une ligne de graphiques dans la zone Lineup. Par exemple, au lieu d'une grille 4x4, je veux 4 graphiques sur la première ligne, 3 graphiques sur la 2ème ligne, etc. Existe-t-il un moyen de sauter une ligne ou d'ajouter un saut de ligne dans la zone Lineup ?
dt = current data table();
//where dtLookup is the data table containing a list of X and Y columns to plot from dt
nw = New Window( "Outputs", lub = Lineup Box( N Col( 4 ) ) );
For Each Row(dtLookup,
lub << append(
dt <<
Graph Builder(
Size( 500, 350 ),
Show Control Panel( 0 ),
Show Legend( 0 ),
Variables( X( As Column( dt, col_name_X ) ), Y( As Column( dt, col_name_Y) )),
Elements( Points( X, Y, Legend( 5 ) ) )
));
ScriptRe : ligne de saut de boîte de programmationMerci beaucoup. J'ai fini par utiliser votre ajout vlb pour insérer un "saut de page" basé sur des données analysées à partir du nom de la colonne !
Merci une fois de plus!
col_name_Y = Column(dtLookup, "Y")[i];
col_name_X = Column(dtLookup, "X")[i];
col_name_X_next = Column(dtLookup, "X")[i+1];<BR /> // col_name_X format = XXX YYY_ZZZ. The following word commands extracts YYY.
rail= Word(1,Word(2,col_name_X," "),"_");
rail_next = Word(1,Word(2,col_name_X_next," "),"_");
if(rail!=rail_next,page_break =1,page_break=0);
If(page_break == 0,
lub << append(
dt << Graph Builder(
Size(500, 350),
Show Control Panel(0),
Show Legend(0),
Variables( X( As Column( dt, col_name_X ) ), Y( As Column( dt, col_name_Y) )),
Elements(Points(X, Y, Legend(5)))
)
);
,
lub << append(
dt << Graph Builder(
Size(500, 350),
Show Control Panel(0),
Show Legend(0),
Variables( X( As Column( dt, col_name_X ) ), Y( As Column( dt, col_name_Y) )),
Elements(Points(X, Y, Legend(5)))
)
);
vlb << Append(lub = Lineup Box(N Col(lub_idx)));
)Re : ligne de saut de boîte de programmationSi vous savez comment vous voulez construire les boîtes de ligne avec un nombre de colonnes spécifique, vous pouvez peut-être ajouter la boîte de ligne avant d'ajouter de nouveaux graphiques.
Cela se cassera probablement assez facilement car il veut que vous ayez exactement 10 (1 + 2 + 3 + 4) valeurs dans dtlookup (en utilisant list au lieu de datatable ici).
Names Default To Here(1);
dt = Open("$SAMPLE_DATA/Semiconductor Capability.jmp");
dtlookup = {"NPN1", "PNP1","PNP2","NPN2","PNP3","IVP1","PNP4","NPN3","IVP2","NPN4"};
lub_idx = 4;
ongoing_gb = lub_idx;
nw = New Window("Outputs", vlb = V List Box(lub = Lineup Box(N Col(lub_idx))));
For(i = 1, i <= N items(dtlookup), i++,
If(ongoing_gb > 0,
lub << append(
dt << Graph Builder(
Size(200, 150),
Show Control Panel(0),
Show Legend(0),
Variables(X(As Column(dt, dtlookup[i])), Y(As Column(dt, "lot_id"))),
Elements(Points(X, Y, Legend(5)))
)
);
ongoing_gb--;
,
lub_idx = lub_idx - 1;
ongoing_gb = lub_idx;
vlb << Append(lub = Lineup Box(N Col(lub_idx)));
)
);
Ou éventuellement, vous pouvez utiliser V List Box() et H List Box() et vérifier les index.
Re : ligne de saut de boîte de programmationSalut,
Je ne suis pas au courant d'une fonction "Skip" pour la Lineup Box, mais il existe une solution de contournement qui nécessitera un peu de programmation impliquant l'insertion de Spacer Boxes (de la même taille que votre tracé) pour chaque emplacement que vous souhaitez ignorer.
Cependant, cela devient un peu délicat car vous devez ignorer 0 emplacements pour la première rangée, 1 emplacement pour la deuxième rangée et 2 emplacements pour la troisième rangée ; vous n'avez pas besoin de sauter d'emplacement pour la dernière ligne.
Toutes mes excuses pour la réponse incomplète : je n'ai pas le temps de travailler sur votre script, mais vous pourrez peut-être le comprendre.
Meilleur,
TS