SPSS二次开发
在以前关于SPSS二次开发文章中留下过自己联系方式,差不多一年的时间,零零散散的和我取得联系的人也有几十位,看来对于SPSS二次开发的需求不少。
Web SPSS系统是利用SPSS二次开发技术,使用户可以在B/S系统中调用SPSS软件来完成数据分析与处理操作,系统正在完善中。目前在.NET平台下主要有以下两个方案的Web SPSS系统:
实时处理方案
用户在客户端提交SPSS语法命令后,Web SPSS系统立即调用服务器上的SPSS软件,将SPSS语法命令传递给SPSS软件,调用SPSS软件进行数据分析,待完成后立即将分析结果反馈给用户。在本方案中,客户端通过 TCP 通道发送请求至服务器端的Windows服务,由服务器端的Windows服务承载远程SPSS对象,客户端获得SPSS对象后,将SPSS分析命令直接传递给SPSS软件完成数据分析并生成分析结果,最终将分析结果文件的地址返回给客户端。

批处理方案
与实时处理方案不同,批处理方案在客户端用户在提交SPSS分析命令后,服务器并不立即调用SPSS软件,而是将SPSS分析命令上传至数据库中,等待服务器去处理。服务器每隔一段时间,查询数据库中是否存在新提交的SPSS分析任务,如果存在,系统才调用服务器上的SPSS软件进行数据分析,将生成的结果文件路径存储在数据库中,客户端查询数据库获得生成结果文件的路径,将生成结果反馈给用户;如果不存在新提交任务,则不作任何操作。
在本方案中,客户端通过Web页面提交SPSS语法命令至服务器端的数据库中。服务器端的Window服务每隔一段时间查询数据库,当发现新提交的SPSS分析命令时,获得本地SPSS对象,一次处理所有新提交的SPSS分析命令,并将处理生成的结果文件路径提交至数据库中。在服务器端完成SPSS分析任务后,用户通过客户端Web页面,查看产生的分析结果。

系统雏形截图
语法命令输入页面

SPSS分析任务列表页面

SPSS分析任务结果展示页面

C#使用SPSS.NET操作SPSS数据文件
C#使用COM组件操作SPSS文件
需要注意的是,创建SPSS对象之前,需要将SPSS软件提供的四个库引用到程序中,这四个库分别是:
SPSS type library (spsswin.tlb):包括对Application对象、 Options对象、文件信息对象、 Documents集合、 Items集合、Chart对象、 Maps对象等的操作。
PivotTable type library (spsspvt.tlb):包括转轴表Pivot Table对象及其里面所包含的所有对象。
Graphics Editor OLE control (spssgctl.tlb): 包括交互式Graphs对象及其所包含的所有对象。
RTF type library (spssrtf.tlb):包含RTF文本对象。
这四个库都是在安装SPSS软件后自动注册到系统注册表中的,使用时只需要通过以COM对象的形式加载到开发环境中即可。关于这方面的资料可以参考一下几 个文档:SPSS 14.0 for Windows Developer's Guide.pdf,SPSS Programming and Data Management.pdf等。
SPSS二次开发的更多相关文章
- spss C# 二次开发 学习笔记(六)——Spss统计结果的输出
Spss的二次开发可以很简单,实例化一个对象,然后启用服务,接着提交命令,最后停止服务. 其中重点为提交命令,针对各种统计功能需求,以及被统计分析的数据内容等,命令的内容可以很复杂,但也可以简单的为一 ...
- spss C# 二次开发 学习笔记(五)——Spss系统集成模式
Spss官方不支持Server2008R2等Server系列,但做Spss的二次开发,调用Spss的Web系统,一般部署在Server系列上,例如Server2008R2. 起初,在Server上安装 ...
- spss C# 二次开发 学习笔记(四)——Spss授权
Spss的授权方式有两种,单机版和网络版. Spss的激活,在联网的情况下,通过20位的激活码激活,在未联网的情况下,Spss根据机器获取一个类似4-XXXX的锁定码,然后由激活码和锁定码算出一个授权 ...
- spss C# 二次开发 学习笔记(三)——Spss .Net 开发
Spss .Net 二次开发的学习过程暂停了一段时间,今天开始重启. 之前脑残的不得了,本想从网上下载一个Spss的安装包,然后安装学习.于是百度搜索Spss,在百度搜索框的列表中看到Spss17.S ...
- spss C# 二次开发 学习笔记(一)——配置数据源
由于项目的需要,使用Spss进行数据统计分析. Spss对于数据统计分析的功能有多强主要是客户关注的事情,我所主要关注的是,Spss的二次开发有多复杂. 学习的基本思路是: (1)首先了解统计基本知识 ...
- Navisworks API 简单二次开发 (自定义工具条)
在Navisworks软件运行的时候界面右侧有个工具条.比较方便.但是在二次开发的时候我不知道在Api那里调用.如果有网友知道请告诉我.谢谢. 我用就自己设置一个工具.界面比较丑!没有美工. 代码: ...
- [连载]《C#通讯(串口和网络)框架的设计与实现》- 12.二次开发及应用
目 录 第十二章 二次开发及应用... 2 12.1 项目配制... 3 12.2 引用相关组件... 4 12.3 构建主程序... 5 ...
- OBS-Studio二次开发记录
OBS-Studio 是一款跨平台的,开源的视频直播客户端软件. 公司需要对他进行二次开发,开发的目的是使用它的录屏功能. 开发的要求是:定制全新的界面,所见即所得,window系统兼容要好. 开发步 ...
- 小猪cms微信二次开发之怎样分页
$db=D('Classify'); $zid=$db->where(array('id'=>$this->_GET('fid'),'token'=>$this->tok ...
随机推荐
- mysql里group by按照分组里的内容的排序
得到一张表里按u_id分组,按count(id)排序,每个分组的pub_time最大的哪些记录,只取count(id)最大的4条 select a.u_id,a.name,a.u_name,a.id, ...
- PHP实现站点pv,uv统计(一)
具体步骤分为数据采集脚本,数据收取服务,数据分析脚本,数据存储服务 采集脚本一般有两种形式,一种是简单的页面插入一个图片进行请求,一种是复杂的动态生成js标签,引入一段js(这时采集服务器会网往客户端 ...
- HDU 5038 Grade
解题思路:这题最关键的是要读懂题意,If not all the value are the same but the frequencies of them are the same, there ...
- yii 打印sql
$query = TableModel::find()->where([‘xxx’=>xxx]); var_dump($query->prepare(\Yii::$app->d ...
- Java中sychronized方法与sychronized块区别
一.举几个栗子
- 【转】Bootloader之uBoot简介(转)
原文网址:http://blog.csdn.net/sadamoo/article/details/8139946 来自http://blog.ednchina.com/hhuwxf/1915416/ ...
- Xcode各版本官方下载及百度云盘下载, Mac和IOS及Xcode版本历史.
官方下载, 用开发者账户登录,建议用Safari浏览器下载. 官方下载地址: https://developer.apple.com/xcode/downloads/ 百度云盘下载地址: http:/ ...
- 在SQL语言中,join什么时候用,什么时候不用啊?请高手举例解释一下。谢谢
JOIN 在内连接时,可以不使用,其它类型连接必须使用.如SELECT * FROM TABLEA INNER JOIN TABLEB ON A.ID=B.ID可以这样写:SELECT * FROM ...
- EhCache 分布式缓存/缓存集群
开发环境: System:Windows JavaEE Server:tomcat5.0.2.8.tomcat6 JavaSDK: jdk6+ IDE:eclipse.MyEclipse 6.6 开发 ...
- 解决Asp.net Mvc返回JsonResult中DateTime类型数据格式的问题
问题背景: 在使用asp.net mvc 结合jquery esayui做一个系统,但是在使用使用this.json方法直接返回一个json对象,在列表中显示时发现datetime类型的数据在转为字符 ...