大家好
我現在需要建立基於我的資料表(我命名為 dt2)的選項卡。 選項卡的名稱是基於 dt2,這裡的意思是:如果 dt2 有 10 個產品名稱,那麼在我的介面中我還需要有 10 個基於 dt2 中的產品名稱的選項卡。
我的要求之一是我不能對編碼進行硬編碼,因為將來,也許我需要在 dt2 中添加產品名稱,因此選項卡將自動與 dt2 中的產品名稱數量相同。
那麼,如何從dt2中提取資料並使其成為選項卡呢?
實際上我不知道如何為我需要完成的任務編寫程式碼,我已經嘗試了很多次,但它一直出現錯誤。
謝謝。
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 的基本部分而苦苦掙扎。 根據您所顯示的代碼,有一些指示。
1.不要編代碼。 當它不起作用時,它只是令人困惑。 當猜測程式碼起作用時,你不知道為什麼,而且你也沒有學到任何東西。
2. 使用日誌。 在您列出的許多討論中,我沒有看到日誌的結果。 這些訊息提供了有關 JSL 問題的詳細資訊和見解。
3. 使用幫助==>腳本索引。它提供了有關這些項目如何運作的正確語法和範例。 腳本索引是有關 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() 函數來指向資料表的實體名稱。 我認為這就是您正在嘗試使用數據表(“數據表............”)做的事情。 如果您知道資料表的名稱,則任何一種都可以。 但正如您在提供的程式碼中所示,請確保指定一個變數來指向將從摘要平台建立的資料表,以便您可以在下一步中使用它(即 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 值產生一個新選項卡。
對腳本索引的搜尋顯示,不存在任何名為 nTabs 或 get row names() 的內容。 我假設您認為 nTabs 會給您所需的表格數量。 它不能,因為在程式中的這一點上,還沒有生成任何表格,並且僅僅因為已經生成了匯總表,它就會知道數據表中的行數就是您想要的選項卡數產品。 但是,您可以查看腳本索引,看看哪些函數會告訴您資料表「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
);