前面介绍的Syntax和OLE是基于SPSS进行定制和开发的基础。SPSS提供的脚本语言和扩展编程接口都需要使用Syntax和OLE。
SPSS提供给用户使用Saxbasic编程的脚本编辑器,它类似一个集成开发环境,方便用户开发自己的应用。Saxbasic像VBA寄生于VB应用程序一样,它也必须依赖于SPSS应用程序,其语言结构和语法也与VB基本一致。运用Saxbasic语言编程不仅可以直接嵌入使用Syntax,而且可以设计出窗口应用。依照本人的使用经验,Saxbasic的优势在于帮助开发者有效率的整合SPSS提供的现有功能和资源,开发出简单、可交互、完成专门分析任务的应用程序。缺点在于严重依赖SPSS应用程序,而且交互界面过于简单,而且调用SPSS的功能界面会影响程序执行的连贯性,所以完成复杂综合的分析任务难度较大。
脚本程序的结构:
1. 申明OLE对象。
如
Dim objSpssApp As Object
Dim objdatadoc As ISpssDataDoc
Dim objsyntaxdoc As ISpssSyntaxDoc
Dim objDocuments As ISpssDocuments
Dim objoutputdoc As ISpssOutputDoc
Dim objoutputitems As ISpssItems
Dim objoutputitem As ISpssItem
Dim objWord As Object
2. 申明变量
如 Public firstacth As String, ct1 As Integer,fn$ ----$表示数组
3. 一个程序主入口
Sub Main
Set bjSpssApp=GetObject(,"spss.application") ----此方式为11版本的方法,具体结合版本看文档
Set bjDocuments = objSpssApp.Documents
path=objSpssApp.GetSPSSPath
Set bjsyntaxdoc=objSpssApp.NewSyntaxDoc
objsyntaxdoc.Visible =False
openfiles ---子函数
……
End Sub
4. 子程序块
Sub openfiles ---openfiles 为子函数名
End Sub
5. 调用SPSS功能
如
Sub fileopen_Syntax()
Set bjDocuments = objSpssApp.Documents
Set bjdatadoc = objDocuments.GetDataDoc (0)
strPath = "file>open>data"
objdatadoc.InvokeDialogAndExecuteSyntax (strPath, SpssWindowParent, True)
End Sub
6. 自定义窗口
如
Sub traffcom
Dim Listtran4$(8)
Listtran4$(1) = "排序"
Listtran4$(2)= "分组处理"
Listtran4$(3)= "选择记录"
Listtran4$(4)= "变量赋值"
Listtran4$(5)= "生成时间数列"
Listtran4$(6)= "分布图"
Listtran4$(7)= "p-p图"
Listtran4$(8)= "卡方检验"
Begin Dialog UserDialog 470,154,"分布图与检验",.DialogFuncc1 ' %GRID:10,7,1,1
ListBox 30,35,280,105,Listtran4(),.Listtran4
Text 30,14,230,14,"数据预处理、绘图并检验:",.Text1
PushButton 360,35,80,21,"执 行",.PushButton1
PushButton 360,105,80,21,"返 回",.PushButton2
End Dialog
Dim dlg3 As UserDialog
dlg3.Listtran4=0
Dialog dlg3
End Sub
7. 函数
Function DialogFuncc1%(DlgItemc1$, Actionc1%, SuppValuec1%)
Select Case Actionc1%
Case 2
If DlgItemc1$="PushButton1" Then
If DlgValue("Listtran4")=0 Then
Call sort_Syntax()
DialogFuncc1% = True
End If
If DlgValue("Listtran4")=1 Then
Call split_Syntax()
DialogFuncc1% = True
End If
If DlgValue("Listtran4")=2 Then
Call selectc_Syntax()
DialogFuncc1% = True
End If
If DlgValue("Listtran4")=3 Then
Call compute_Syntax()
DialogFuncc1% = True
End If
If DlgValue("Listtran4")=4 Then
Call timeseries_Syntax()
DialogFuncc1% = True
End If
If DlgValue("Listtran4")=5 Then
Call bar_Syntax()
DialogFuncc1% = True
End If
If DlgValue("Listtran4")=6 Then
Call pp_Syntax()
DialogFuncc1% = True
End If
If DlgValue("Listtran4")=7 Then
Call chi_syntax()
DialogFuncc1% = True
End If
End If
End Select
End Function
上述为脚本语言的简介,具体可以参考SPSS脚本编辑器的帮助下的OLE对象文档和苏金明等老师的《统计软件SPSS系列二次开发篇》。
来自 “ ITPUB博客 ” ,链接:http://blog.itpub.net/14264218/viewspace-626483/,如需转载,请注明出处,否则将追究法律责任。
转载于:http://blog.itpub.net/14264218/viewspace-626483/