創建自定義報告在此演示中,我們將使用預先編寫的腳本來了解如何製作自定義報告。 所以在課程日誌中,有一個名為 NOx 數據的腳本,用於氮氧化物數據。 我們有六種不同的準備工作。 然後我們記錄了六種不同製劑的每一次重複的氮氧化物濃度的對數。 所以劇本是預先寫好的。 在課程日誌中,它被稱為自定義 NOx 報告腳本。 我將一塊一塊地運行這個。 但我實際上想運行整個程序,這樣我們就可以在查看腳本的每個部分之前看到最終結果。 所以我會運行整個事情。 該腳本確實創建了一個在 Graph Builder 中使用的匯總表。 我們會經歷這些,所以我們不只是使用原始數據。 但自定義報告是一個選項卡式報告。 在第一個名為 %CV 的選項卡上,我們擁有實時 Graph Builder 平台。 所以這個紅色三角形是我在 Graph Builder 中看到的典型紅色三角形菜單。 然後,我們計算出每個級別的變異係數或 %CV。 在這裡,我們的腳本創建了一個自定義紅色小三角菜單,允許我為報告中的數字列指定所需的小數位數。 在第二個選項卡上,稱為背景信息,我有每個級別的原始數據、用於計算變異係數的平均值和標準差,以及計算值。 如果我在那個紅色三角形菜單中做出選擇——實際上我會這樣做。 在前面的選項卡 %CV 中,我將轉到紅色三角形並選擇兩位小數。 該腳本正在查看此報告中的所有數字列框。 那麼讓我們來看看它是如何構建的。 所以腳本做的第一件事就是將單向消息發送到原始數據表,其中包含氮氧化物的日誌——Y 角色中氮氧化物濃度的日誌和 X 角色中的準備。 而我需要計算變異係數的是均值和標準差報告表。 所以我要求打開。 我會提到,有很多方法可以從 JMP 中獲取變異係數,而無需手動計算。 但是,我們再次說明了將值作為矩陣獲取並使用這些矩陣計算的一些想法。 因此,我將逐行遍歷這是我請求的帶有表格的單向輸出。 現在,我們看到了獲取報表層的其他語法。 使用這種語法的一個好處是,如果我不需要該報告中的所有內容,我可以簡單地請求,在這種情況下,我想要的表格的大綱項目——平均值和標準偏差。 這樣當我訪問顯示框時,我可以稍微簡化我的代碼。 我會將它存儲在變量 ob 中。 在這裡,我們的約定只是使用大綱框的縮寫。 你看到當我懸停時,它已經存儲了一個值,因為我已經運行了整個腳本。 但我要重新分配它。 現在,行和正在檢索級別的列,然後是均值和標準差的列。 對於級別,我根本不需要操作此列中的值。 我只想在我的 Estimates 表的自定義報告和背景信息中 - All Results 表中使用它。 所以我可以用一個我只需要一個副本的顯示框做的一件整潔的事情就是發送消息“克隆框”。 即使在我關閉單向窗口之後,這只是將這個顯示框的副本存儲在 Levels 中。 所以我們用 String Col Box 為變量 ob 下標 現在,再次,我們可以使用列標題,當然,這樣做並沒有什麼壞處。 但是因為我們只存儲了這個顯示框——或者對它的引用存儲在 ob 中,所以很容易將簡單的語法與索引值一起使用。 所以我將運行 line And so Levels 現在存儲了一個顯示框,特別是一個字符串列框,您可以在日誌中看到這裡。 我需要在計算中使用均值和標準差。 所以我不能簡單地擁有這些副本。 我需要將值作為矩陣獲取並將它們存儲在變量 mMeans 或均值矩陣中。 您可以在日誌中看到,或者如果您將鼠標懸停在 mMeans 上,這些值是什麼。 對於標準偏差,同樣的事情。 所以我運行它,然後再一次,你可以--我會讓這個更小一些--你可以在日誌中看到這些值。 Line 創建了一個名為 mCVs 的變量,而這只是該變異係數的計算。 這是可變性的相對度量,我們將標準偏差除以平均值,然後將其乘以所以我將運行直線所以現在我有了變異係數。 在這一點上,我不需要平台上的任何其他東西。 因此,我將向 ow 發送消息——這將被發送到分析層對象引用——以關閉該窗口。 我總是建議,當您的腳本可以關閉窗口時,無論是不再需要的分析或數據表,請繼續讓您的腳本關閉這些窗口。 因為如果我們不再需要它們打開,我們就不需要它們佔用內存。 現在,對於下一步,我想在我的自定義報告中使用 Graph Builder。 並且 Graph Builder 當前不計算變異係數作為其匯總統計數據之一。 因此,解決方法是使用“匯總表”命令中內置的變異係數創建此匯總表,然後將其用作 Graph Builder 的基礎。 因此,在獲得摘要表之前,我想關閉運行整個腳本時出現的表。 當我關閉它時,我收到警告還有另一個窗口打開,所以我要說,繼續關閉所有窗口。 這立即從我的自定義報告中刪除了 Graph Builder。 所以在這一點上,沒有任何理由讓這個示例自定義報告保持打開狀態。 我們將在繼續執行腳本時重新創建它。 所以我也會關閉那個。 所以 line 將“Summary”作為消息發送到原始數據表,我們在其中按準備分組。 統計數據將是變異係數。 所以我將運行 line 現在,我擁有構建自定義報告所需的一切。 所以我們使用新窗口。 我要將由此創建的顯示框存儲在變量 nw 中,以便與它進行通信。 我為我的新窗口自定義報告命名,然後我想為這些選項卡編寫腳本。 所以我們指定標籤框。 然後選項卡的數量僅由您提供給它的選項卡頁框參數的數量決定。 所以我們會在這種情況下。 Tab Page Box 的第一個參數是標題。 所以第一個叫做 %CV。 然後,H 列錶框給了我一個水平列錶框,其中將包含 Graph Builder。 所以我實際上是在現場直播。 這就是我在這個窗口中獲得這個實時平台的方法是讓那個啟動發生在顯示框中。 這是我可能從交互式創建 Graph Builder 並將其發送到 Summarize 表中獲取的語法。 然後,我在 H 列錶框中排列的另一件事是輪廓框,稱為 Estimates,它將包含存儲在 Levels 中的字符串列框的表格框。 我的腳本創建了一個帶有 %CV 值的數字列框。 第二個標籤頁框是背景信息,使用大綱框將其標記為所有結果。 在大綱框內,一個表格框將四個數字列框水平排列。 所以我要把這個做得更高,這樣我就可以確保我抓住我想要的線,這些線是通過的,我會跑那部分。 所以這並不完整。 這是我的自定義報告的起點。 我想我現在可以讓腳本窗口更窄一點,這樣我們就可以並排看到兩者。 因此,默認情況下,Graph Builder 沒有一條線,這是我要添加的內容之一。 我想調整它的大小,因為我不需要圖表這麼大。 我想將該紅色小三角菜單添加到 Estimates 大綱項中。 請注意,在腳本中,當我在自定義報告的第一個選項卡上創建估計的大綱框時,我將該結果存儲在 ob 中。 這是我之前從單向平台獲取均值和標準差時使用的變量名稱。 所以在這裡,我只是簡單地使用了縮寫並覆蓋了那個值,因為我不需要以前的值。 因此,如果我現在向下滾動以查看腳本的其餘部分,我將向存儲在 ob 中的顯示框(即 Estimates 大綱框)發送消息“設置菜單腳本”。 Set Menu Script 將菜單項列表作為其參數,該列表與選擇該菜單項時執行的表達式交替出現。 所以表達式只是簡單地循環通過報告中的數字列框並設置格式。 我們有一個可以顯示的最大字符數的字段寬度——然後是小數位數。 因此,根據我們選擇的紅色三角形菜單選項中的哪一個,決定了將執行這些表達式中的哪一個。 因此,我將逐行遍歷 在自定義報告中,您現在看到我們有紅色小三角菜單。 Line 將從 Graph Builder 中更改框架框的大小。 這就是,如果我去-- 我要右擊Disclosure 按鈕,然後在Edit 下,選擇Show Tree Structure-- 我可以向下滾動。 當您查看整個報告時,這裡有很多我們在編寫自己的腳本時不使用的構造函數。 但我向下滾動。 好的,有 PictureBox,向下滾動一些,還有那個標題,向下滾動一些。 您可以懸停以查看軸框。 最後,我看到了 FrameBox,因此我可以看到我想要調整大小的東西是 當您熟悉平台時,您可能不需要查看樹結構。 因此,我在新窗口下標並發送以像素為單位的消息“Frame Size”,然後我將繼續運行 line,以便調整 Graph Builder 框架框的大小。 現在再次,您可以使用腳本索引查看不同的顯示框可以接收哪些類型的消息。 因此,如果我進入 Help 菜單並選擇 Scripting Index,我可以從 All Categories 更改為 Display Boxes,然後向下滾動以找到 FrameBox 並查看可以發送給它的消息。 我要關閉腳本索引。 我們想做的另一件事是,在 AxisBox 上,我們要添加參考線。 同樣,如果我不熟悉 Graph Builder 的顯示樹結構,我會使用 - 如果我不熟悉 Graph Builder 的顯示樹結構,我會查看那個 Tree Structure 窗口。在某些平台上是垂直軸。 在某些平台上,它是水平的。 在這種情況下,它是水平軸。 我發送消息以添加參考線。 這裡的論點是您希望參考線處於什麼值? 我想要它在什麼風格的線? 我要固體。 顏色? 我會變黑的。 第四個參數是軸上的標籤。 所以只要有一個空字符串,我們就說我們不想要一個標籤。 事實上,只要我有這個逗號告訴 JMP 這是第五個參數,而不是第四個參數,我就可以刪除它。 如果我沒有這個逗號,那麼 JMP 會用 a 標記軸。但是因為我把逗號放在那裡,所以 JMP 知道這是線寬,而不是標籤。 所以我要跑線 這畫出了我的參考線。 然後,該腳本的最後一部分是將“Save Journal”發送到存儲在 nw 中的顯示框,並將其命名為 Custom CV Report.jrn。 現在,您的腳本可能會在此處結束,生成帶有實時 Graph Builder 窗口和供用戶交互的紅色小三角菜單的報告。 事實上,這次我會繼續選擇小數點後一位。 在某些情況下,您可能還希望將該報告保存為日記帳。 當你這樣做時,你會失去那個紅色三角形菜單。 您的 Graph Builder 將不再是實時報告。 但是這裡的最後一個選項顯示瞭如何將自定義報告保存為帶有“保存日誌”消息的日誌。 所以在這個腳本中,我們啟動了分析層。 我們檢索了報表層對象,然後獲取了我們需要的報表層的元素作為副本或矩陣進行操作。 我們為我們想要使用的平台創建了一個單獨的數據表,然後使用新窗口創建了自定義報告,在這種情況下,除了字符串列之外,還有選項卡、水平列錶框和輪廓框作為我們的顯示框存儲在 Levels 和各種數字列框中的框。 然後,我們看到瞭如何向該自定義報告的組件發送消息。