与 16.0 之前版本的兼容性

废弃方法与属性

一些自动化方法与属性已被版本 16.0 及以上版本废弃。就常规功能而言,它包括了所有与互动图像相关的对象、“草稿文档”对象及与地图相关的方法与属性。更多详情,参见“IBM® SPSS® Statistics Basic 语言脚本编辑器”所提供帮助系统中的“16.0 版本的发布注释”。从脚本编辑器中的帮助>IBM SPSS Statistics 对象帮助中进入 IBM SPSS Statistics 特定帮助。

全局过程

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

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

Legacy 自动脚本

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

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

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

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

脚本编辑器

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

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

IBM SPSS Statistics Basic 语言脚本编辑器”是通过文件>新建>脚本、文件>打开>脚本或实用程序>创建/编辑自动脚本(从“查看器”窗口中)从 IBM SPSS Statistics 中启动的独立应用程序。使您能针对从中启动的 IBM SPSS Statistics 实例运行脚本。已经打开,编辑器将一直开启直至退出 IBM SPSS Statistics,但是使用 IBM SPSS Statistics 对象的脚本将不再运行。

文件类型

对于 16.0 及以上版本,脚本编写工具将继续支持 sbs 文件类型的脚本运行与编辑。缺省状态下,通过“IBM SPSS Statistics Basic 语言脚本编辑器”创建的新 Basic 语言脚本的文件类型为 wwd

使用“外部 COM 客户端”

对于 16.0 及以上版本,用于例示“外部 COM 客户端”中 IBM SPSS Statistics 的程序标识为 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 之后的版本,标识仍然是 Application16