與 16.0 之前版本相容
舊方法和內容
在 16.0 和更新版本中一自動方法和性質已廢棄不用。就一般功能而言,這包括所有與互動式統計圖相關聯的物件、「草稿文件」物件,以及與地圖相關聯的方法和性質。如需其他資訊,請參閱「IBM® SPSS® Statistics Basic Script 編輯器」提供之說明系統中的「16.0 版版本說明」。IBM SPSS Statistics 特定的說明可從「說明」>IBM SPSS Statistics「物件說明」(在 Script 編輯器中)存取。
整體程序
在 16.0 版之前,編寫程式功能包括整體程序檔案。對於 16.0 和更新版本,編寫程式功能不使用整體程序檔案,雖然已安裝 16.0 版之前的 Global.sbs (重新命名為 Global.wwd),以便舊版本相容。
為了移轉 16.0 版之前可呼叫整體程序檔案中函數的 Script,請將 '#Uses "<install dir>\Samples\Global.wwd" 陳述式新增至 Script 的宣告區段,其中 <install dir> 為安裝 IBM SPSS Statistics 的目錄。'#Uses 是特殊的備註,可由 Basic Script 處理程式辨識。如果您不確定 Script 是否使用整體程序檔,您應新增 '#Uses 陳述式。您也可以使用 '$Include:,而非 '#Uses。
原有自動 Script
在 16.0 版之前,Scripting 功能包括一個包含所有自動 Script 的單一自動 Script 檔。而在 16.0 和更新版本中,沒有單一自動 Script 檔。現在每個自動 Script 會儲存在不同的檔案中,且可套用至一或多個輸出項目,而 16.0 之前的版本則相反,每個自動 Script 都專屬於特定的輸出項目。
某些使用 16.0 之前版本安裝的自動 Script 可作為一組個別 Script,位在安裝 IBM SPSS Statistics 目錄的 Samples 子目錄中。識別此類檔案的方式是其檔名結尾為 Autoscript,檔案類型為 wwd。依預設,這些檔案不與任何輸出項目相關聯。但是,可從「選項」對話框的 Script 標籤建立關聯性。請參閱Script 選項主題,以取得更多資訊。
任何在 16.0 之前版本中使用的自訂自動 Script,必須從「選項」對話框的 Script 標籤手動轉換,並與一或多個輸出項目產生關聯。轉換程序包括以下步驟:
- 從原有 Autoscript.sbs 檔案中擷取指定自動 Script 的子常式,並將它另存為副檔名為 wwd 或 sbs 的新檔案。檔名可任意指定。
- 將子常式的名稱變更為 Main,移除參數規格,並追蹤該 Script 需要哪些參數,例如觸發自動 Script 的樞紐表。
- 使用 scriptContext 物件(永遠可用)取得自動 Script 所需的值,例如觸發自動 Script 的輸出項目。
- 從「選項」對話框的 Script 標籤,將 Script 與輸出物件產生關聯。
為說明已轉換的程式碼,請考慮原有 Autoscript.sbs 檔案的 Descriptives_Table_DescriptiveStatistics_Create 自動 Script。
Sub Descriptives_Table_DescriptiveStatistics_Create _
(objPivotTable As Object,objOutputDoc As Object,lngIndex As Long)
'Autoscript'Trigger Event: DescriptiveStatistics Table Creation after running
' Descriptives procedure.
'Purpose: Swaps the Rows and Columns in the currently active pivot table.
'Assumptions: Selected Pivot Table is already activated.
'Effects: Swaps the Rows and Columns in the output
'Inputs: Pivot Table, OutputDoc, Item Index
Dim objPivotManager As ISpssPivotMgr Set objPivotManager=objPivotTable.PivotManager objPivotManager.TransposeRowsWithColumns
End Sub
以下為已轉換的 Script:
Sub Main
'Purpose: Swaps the Rows and Columns in the currently active pivot table.
'Effects: Swaps the Rows and Columns in the output
Dim objOutputItem As ISpssItem Dim objPivotTable as PivotTable Set objOutputItem = scriptContext.GetOutputItem() Set objPivotTable = objOutputItem.ActivateTable
Dim objPivotManager As ISpssPivotMgr Set objPivotManager = objPivotTable.PivotManager objPivotManager.TransposeRowsWithColumns objOutputItem.DeactivateEnd Sub
- 請注意,轉換的 Script 不會指出要將 Script 套用到哪一個物件上。輸出項目與自動 Script 之間的關聯是在「選項」對話框的 Script 標籤設定,並可在階段作業間維護。
- scriptContext.GetOutputItem 會取得觸發自動 Script 的輸出項目(ISpssItem 物件)。
- 不會啟動 scriptContext.GetOutputItem 傳回的物件。如果您的 Script 需要已啟動的物件,您必須啟動該物件,如本範例中使用 ActivateTable 方法完成。當您完成任何表格處理時,請呼叫 Deactivate 方法。
對於 16.0 版,是否作為自動 Script 執行的程式檔之間並無差異。任何 Script 只要經過適當的編碼,就可以用在這兩種狀況中。請參閱scriptContext 物件主題,以取得更多資訊。
附註:若要從應用程式建立事件觸發 Script,請參閱啟動 Script。
Script 編輯器
對於 16.0 版,上述適用於 Basic 的 Script 編輯器不再支援以下 16.0 之前版本的功能:
- Script、分析、統計圖、公用程式和附加功能表。
- 可將指令語法貼到 Script 視窗的功能。
「IBM SPSS Statistics Basic Script 編輯器」是單機應用程式,可在 IBM SPSS Statistics 中透過「檔案 > 新增 > Script」、「檔案 > 開啟 > Script」,或「公用程式 > 建立/編輯自動 Script」(從「檢視器」視窗)等方式啟動。此編輯器可讓您根據啟動該編輯器所使用的 IBM SPSS Statistics 實例來執行 Script。編輯器開啟後,在結束 IBM SPSS Statistics 後仍會維持開啟,但使用 IBM SPSS Statistics 物件的 Script 將不再執行。
檔案類型
對於 16.0 和更新版本,編寫程式功能將持續以 sbs 檔案類型支援執行與編輯 Script。依預設,新的 Basic Script 會透過「IBM SPSS Statistics Basic Script 編輯器」的檔案類型 wwd 建立。
使用外部 COM 用戶端
對於 16.0 和更新版本,從外部 COM 用戶端實例化 IBM SPSS Statistics 的程式 ID 為 SPSS.Application16。應用程式物件應宣告為 spsswinLib.Application16。例如:
Dim objSpssApp As spsswinLib.Application16Set objSpssApp=CreateObject("SPSS.Application16")
若要從外部 COM 用戶端連線到 IBM SPSS Statistics 用戶端的執行實例,請使用:
Dim objSpssApp As spsswinLib.Application16Set objSpssApp=GetObject("","SPSS.Application16")
如果正在執行多個用戶端,則 GetObject 會連線到最近啟動的用戶端。
附註:對於 16.0 以後的版本,ID 仍然是 Application16。