forループから指定されたページ列項目を集計する皆さんこんにちは
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);
);
問題は、currentItem に Categorize 列の columnValues が含まれていることです。
項目の値だけを指定する場合は、columnValues の 1 つとして「a」を指定します。
Tabulate メソッドにページ列( :Categorize( "a" ) )を追加すると、動作します。
しかし、for ループからすべての値を実行する必要があり、 Page Column( :Categorize( currentItem ) ) にしようとしましたが、機能せず、currentItem で分割するのではなく、値全体を一度に取得しました。
Page Column( :Categorize( currentItem ) )、Page Column( :Categorize( char(currentItem) ) ) を試しましたが、どちらも機能しませんでした。おそらく非常に簡単な解決策があるのでしょうが、見つけられませんでした。
誰か助けてくれませんか?
前もって感謝します
編集 (jthi): jsl フォーマットを追加しました
自動化とスクリプトRe: for ループから指定されたページ列項目を集計する値を評価する必要があるかもしれません。以下は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);
);

レイアウトに問題がなければ、Byも選択肢になるかもしれません
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"))
);

Re: for ループから指定されたページ列項目を集計するBy を使用すると不要な for ループも削除されるので、助かります。