与 16.0 之前版本的兼容性

废弃方法与属性

一些自动化方法与属性已被版本 16.0 及以上版本废弃。 就常规功能而言,它包括了所有与互动图像相关的对象、“草稿文档”对象及与地图相关的方法与属性。 有关其他信息,请参阅随 IBM® SPSS® Statistics 基本脚本编辑器提供的帮助系统中的 "V 16.0发行说明"。 在脚本编辑器中,可从 "帮助>IBM SPSS Statistics 对象帮助" 中访问特定于 IBM SPSS Statistics的帮助。

全局过程

16.0 之前的版本中,脚本编写工具包含全局过程文件。 即使 16.0 之前的 Global.sbs (更名为 Global.wwd)版本中安装了向后兼容性,16.0 及以上版本中,脚本编写工具并未使用全局过程文件。

要迁移在全局过程文件中调用函数的 pre-16.0 版本的脚本,请将语句 '#Uses "<install dir>\Samples\Global.wwd" 添加到脚本的声明部分,其中 <install dir>IBM SPSS Statistics 的安装目录。 '#Uses 是基本脚本处理器可识别的特殊注释。 若不确定脚本是否使用了全局过程文件,则应添加 '#Uses 语句。 您也可以使用 '$Include: 来代替 '#Uses

Legacy 自动脚本

16.0 之前的版本中,脚本编写工具包括包含了所有自动脚本的单一自动脚本文件。 16.0 及以上版本则无单一自动脚本文件。 现在每个自动脚本均被保存在单独文件中并可应用于一个或多个输出项中,相反在 16.0 之前版本中每个自动脚本均特定于一个个别输出项。

随 pre-16.0 版本一起安装的某些自动脚本可作为一组独立的脚本文件提供,这些文件位于 IBM SPSS Statistics 安装所在目录的 Samples 子目录中。 它们由以 Autoscript 结尾的文件名和 wwd 的文件类型标识。 缺省情况下,它们与任何输出项均无关联。 从“选项”对话框的“脚本”选项卡中进行关联。 有关更多信息,请参阅 脚本选项 主题。

任何用于 16.0 之前版本的自定义自动脚本必须手动转换并从“选项”对话框的“脚本”选项卡中关联至一个或多个输出项。 转换过程包括以下步骤:

  1. 从 legacy Autoscript.sbs 文件中提取特定自动脚本的子例程并以扩展名 wwdsbs 将其存为新建文件。 文件名随意。
  2. 将子例集名称改为 Main 并删除参数规范,保持对脚本所需参数,如触发自动脚本的透视表的追踪。
  3. 使用 scriptContext 对象(总是可用)获取自动脚本所需值,如触发自动脚本的输出项。
  4. 从“选项”对话框的“脚本”选项卡中,将脚本文件与输出对象相关联。

为说明转换代码,请考虑来自 legacy Autoscript.sbs 文件的自动脚本 Descriptives_Table_DescriptiveStatistics_Create


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

以下为已转换脚本:

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.Deactivate
End Sub
  • 注意,已转换脚本中并未指明该脚本会应用哪个对象。 输出项与自动脚本间的关联从“选项”对话框的“脚本”选项卡中设置并在会话之间保持不变。
  • scriptContext.GetOutputItem 获得触发自动脚本的输出项(一个 ISpssItem 对象)。
  • scriptContext.GetOutputItem 返回的对象未被激活。 若您的脚本需要激活对象,则需要将其激活,如本示例中所示的 ActivateTable 方法。 完成任何表操作后,请调用 Deactivate 方法。

对于版本 16.0,在作为自动脚本运行的脚本与未作为自动脚本运行的脚本间并无差别。 任何进行过相应编码的脚本均可用于所有上下文中。 请参阅主题 scriptContext 对象 以获取更多信息。

: 要从应用程序创建事件触发脚本,请参阅 启动脚本

脚本编辑器

对于 16.0 及以上版本,用于 Basic 语言的脚本编辑器不再支持以下 16.0 之前功能:

  • 脚本、分析、图形、实用程序、插件菜单。
  • 将命令语法粘贴至脚本窗口的能力。

IBM SPSS Statistics Basic Script Editor 是通过 File> New> Script , File> Open> Script 或 Utilities> Create/Edit AutoScript (从 "查看器" 窗口) 从 IBM SPSS Statistics 中启动的独立应用程序。 它允许您对从中启动脚本的 IBM SPSS Statistics 实例运行脚本。 打开后,在退出 IBM SPSS Statistics后,编辑器将保持打开状态,但使用 IBM SPSS Statistics 对象的脚本将不再运行。

文件类型

对于 16.0 及以上版本,脚本编写工具将继续支持 sbs 文件类型的脚本运行与编辑。 缺省情况下,使用 IBM SPSS Statistics 基本脚本编辑器创建的新基本脚本的文件类型为 wwd

使用“外部 COM 客户端”

对于 V 16.0 和更高版本,用于从外部 COM 客户机实例化 IBM SPSS Statistics 的程序标识为 SPSS.Application16。 应用程序对象应声明为 spsswinLib.Application16。 例如:

Dim objSpssApp As spsswinLib.Application16
Set objSpssApp=CreateObject("SPSS.Application16")

要从外部 COM 客户机连接到正在运行的 IBM SPSS Statistics 客户机实例,请使用:

Dim objSpssApp As spsswinLib.Application16
Set objSpssApp=GetObject("","SPSS.Application16")

如果多个客户端正在运行,GetObject 将连接到最近启动的客户端。

:对于 16.0 之后的版本,标识仍然是 Application16