Bonjour à tous,
J'essaie de tabuler plusieurs cas en fonction d'une valeur de colonne spécifique dans la boucle for.
categorizes = Column(dt, "Categorize");
columnValues = Associative Array(categorizes << Get Values) << Get Keys;
For(i = 1, i <= N Items(columnValues), i++,
currentItem = columnValues[i];
obLoopY = Outline Box("categorize" || Char(currentItem),
dt << Tabulate(
Page Column(:Categorize(Char(currentItem))),
Show Control Panel(0),
Add Table(
Column Table(
Grouping Columns(:Underlayer, :RefEntity),
Analysis Columns(:M3S_Y)
),
Row Table(Grouping Columns(:TargetEntity))
),
SendToReport(Dispatch({}, "", TextBox, {Set Base Font("Heading")}))
)
);
boxY << append(obLoopY);
);
Le problème est que le currentItem contient les columnValues de la colonne Categorize.
Si je spécifie simplement la valeur de l'élément, disons « a » comme l'une des valeurs de colonne.
J'ai ajouté Colonne de page( :Catégoriser( "a" ) ) dans la méthode Tabulate, puis cela fonctionne.
Mais j'avais besoin d'exécuter toutes les valeurs de la boucle for, j'ai essayé d'en faire une colonne de page (: Categorize (currentItem)), mais cela n'a pas fonctionné et m'a juste donné la valeur entière à la fois au lieu de diviser par currentItem.
J'ai essayé Page Column( :Categorize(currentItem) ) et Page Column( :Categorize( char(currentItem) ) ), mais aucune des deux n'a fonctionné. Il existe probablement une solution très simple, mais je ne l'ai pas trouvée.
Quelqu'un peut aider ?
Merci d'avance
Modifier (jthi) : Ajout du formatage JSL
Vous devrez peut-être évaluer les valeurs, ci-dessous un exemple utilisant le tableau d'échantillons de JMP
Names Default To Here(1);
dt = Open("$SAMPLE_DATA/Big Class.jmp");
Summarize(dt, groups = By(:sex));
New Window("test",
collector = H List Box()
);
For Each({group}, groups,
ob = Outline Box("Categorize " || group,
tab = dt << Tabulate(
Show Control Panel(0),
Add Table(
Column Table(Analysis Columns(:height, :weight), Statistics(Mean)),
Row Table(Grouping Columns(:age))
)
);
Eval(EvalExpr(
tab << page column(:sex(Expr(group)));
));
);
collector << Append(ob);
);

Si la mise en page est correcte, By pourrait également être une option
Names Default To Here(1);
dt = Open("$SAMPLE_DATA/Big Class.jmp");
tab = dt << Tabulate(
Show Control Panel(0),
Add Table(
Column Table(Analysis Columns(:height, :weight), Statistics(Mean)),
Row Table(Grouping Columns(:age))
),
By(:sex),
Group Options(Layout("Horizontal List"))
);

Merci d'utiliser By supprime également les boucles for inutiles !