定制与开发应用之一:脚本语言

前面介绍的SyntaxOLE是基于SPSS进行定制和开发的基础。SPSS提供的脚本语言和扩展编程接口都需要使用SyntaxOLE

SPSS提供给用户使用Saxbasic编程的脚本编辑器,它类似一个集成开发环境,方便用户开发自己的应用。SaxbasicVBA寄生于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/

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值