こんにちは、みんな
私は今私のデータテーブル(私はdt2と命名)に基づいているタブを作成する必要があります。タブの名前はここで意味するdt2に基づいています:もしdt2が10個の製品名を持っているなら、私のインターフェースでは私もdt2の製品名に基づいている10個のタブが必要です。
私の要件の1つは、将来的にはdt2の製品名を追加する必要があるかもしれないので、コーディングをハードコーディングできないことです。そうすれば、タブはdt2の製品名と同じになります。
それで、どのようにdt2からデータを引き出して、タブとしてそれを作るか?
実際に私は私が完了する必要がある仕事のためのコードを書く方法を知りません、私は何度も試してみました、しかし、そのkeepはエラーを使い果たします。
ありがとう。
dt2

dt2 = Data Table(
"Data Table........") << Summary(
Group( :F D ),
Freq( "None" ),
Weight( "None" ),
invisible
);
//Create Tabs based on the F D
VariabilityWindow = New Window("Variability Chart",tb = Tab Box() );
For(i =1, i <=nTabs(dt2 << get row names()), i++,
tb << insert(
dt2: F D[i] || Char(i),
V list Box(
Button Box("Variability Chart #" || Char(i)),
)
)
);あなたがまだJSLの非常に基本的な部分に苦しんでいるのは明らかです。 表示しているコードに基づいた、2つのポインタ。
1。 コードを作り上げないでください。 うまくいかないときは、混乱を招くだけです。 コードがうまくいくと推測するとき、あなたはその理由を知りません、そしてあなたは何も学びませんでした。
2。ログを使用してください。 あなたがリストアップしたあなたの多くの議論において、私はログからの結果を見ませんでした。 これらのメッセージは、JSLで何が問題になっているのかについての詳細と洞察を提供します。
3。つかいます Help ==>スクリプトインデックス アイテムがどのように機能するかについての正しい構文と例を提供します。 スクリプトインデックスはJSLに関する最も完全なドキュメントです。
あなたのコードを批評しましょう
dt2 = Data Table(
"Data Table........") << Summary(
Group( :F D ),
Freq( "None" ),
Weight( "None" ),
invisible
);
要約プラットフォームの説明は、次の場所にあります。
ヘルプ==スクリプトインデックス==>データテーブル==>概要

これは必要とされているものとほぼ同一の例です。
Names Default To Here( 1 );
dt = Open( "$SAMPLE_DATA/Big Class.jmp" );
dt << Summary( Group( :Age ), Mean( :Height ) );
しかし、足りないと思われるのは、サマリープラットフォームによって生成されるサマリーテーブルへのポインタを作成する方法です。 しかし、データテーブルを参照する方法を理解していないようです。 この例では、変数 "dt"は開かれたデータテーブルを指しています。 お分かりのように、サマリープラットフォームがそれを参照するときに使用されます。 ただし、Data Table()関数を使用してデータテーブルの物理名を指すこともできます。 これは、Data Table( "Data Table .............")を使って、私があなたがやろうとしていると思うことの一種です。 データテーブルの名前がわかっていればどちらでも動作します。 ただし、提供されているコードに示すように、サマリープラットフォームから作成するデータテーブルを指す変数を必ず指定してください。そうすれば、次のステップでそれを使用できます(つまり、dt =)。
コードの次のセクションでは、構文を推測しているだけのように見えます。
//Create Tabs based on the F D
VariabilityWindow = New Window("Variability Chart",tb = Tab Box() );
For(i =1, i <=nTabs(dt2 << get row names()), i++,
tb << insert(
dt2: F D[i] || Char(i),
V list Box(
Button Box("Variability Chart #" || Char(i)),
)
)
);
あなたがやろうとしているのは、サマリーデータテーブルからFDの各値に対して新しいタブを生成することです。
スクリプティングインデックスを検索すると、nTabの名前やget row names()によるものは何も存在しないことがわかります。 私はあなたがnTabsがあなたにあなたが望むタブの数を与えるだろうと考えていたと思います。 これはできません。プログラムのこの時点ではタブが作成されていないため、サマリー表が作成されたからといって、データ表の行数が必要なタブの数であるということはわかります。製品。 しかし、Scripting Indexを調べて、データテーブル "N Rows()"の行数をどの関数が教えてくれるのかを確認して、N Rows()のコードを変更するだけで解決策がわかります。
次のコードは、元のデータテーブルがそれを指している "dt"というポインタ変数を持っていると仮定しています。
dt2 = dt << Summary( Group( :F D ), Freq( "None" ), Weight( "None" ), invisible );
//Create Tabs based on the F D
VariabilityWindow = New Window( "Variability Chart", tb = Tab Box() );
For( i = 1, i <= nrows( dt2 ), i++,
tb << Insert(
dt2:F D[i] || Char( i ),
V List Box( Button Box( "Variability Chart #" || Char( i ) ), )
)
);
dt2 = Data Table(
"Data Table........") << Summary(
Group( :F D ),
Freq( "None" ),
Weight( "None" ),
invisible
);