利用Forms 2.0控件提高Authorware课件数据库应用能力的方法

2011-01-25 05:21李红岩张忠华
中国医学教育技术 2011年5期
关键词:数据源控件课件

李红岩,张忠华

哈尔滨医科大学大庆校区医学信息学系,黑龙江大庆163319

在多媒体课件制作领域,Authorware一直占据着重要的统治地位,该软件以其功能强大,扩展性强,编程简单而深受课件制作人员的喜爱[1]。对于高级课件开发人员来说,将Authorware课件与数据库相结合,开发更加复杂的课件也是一种常用技术。但就Authorware而言,其数据库应用能力相当有限,不足以应付各种复杂的数据库应用需求。所以,利用外来ActiveX控件提高Authorware课件的数据库应用能力就成为首选方法。在可以插入的ActiveX控件当中,Forms 2.0是目前较好的一款,利用它,Authorware可以开发出类似于其他高级语言窗体的界面,使Authorware的数据库应用能力上了一个新的台阶。

1 Forms 2.0控件

1.1 Forms 2.0控件简介

Forms 2.0控件是微软开发的一类ActiveX控件,在Authorware环境中可以查得Forms 2.0控件包含用于表单窗体开发用的各种标准控件共14种(如表1所示),是专为各种开发语言设计的用于某一功能的独立组件,将控件嵌入开发语言后,可以扩充某一编程语言的功能与应用范围,间接延伸了编程开发语言的应用领域,实现了高效率的代码重用[2]。Forms威者2.0控件一般在安装Windows XP系统时自动安装,其主文件为FM20.DLL,表明这个文件是一个动态链接库文件,存放于系统Windowssystem32文件夹下。在Authorware 7.0中调用Forms 2.0中的各个控件,需要注册才能使用。如果在播放课件的计算机上指定文件夹下没有FM20.DLL文件,应先安装FM20.DLL(以前系统安装过VS、VB等语言和Office软件,此控件就已安装)。

表1 Microsoft Forms 2.0控件一览表

1.2 在Authorware中对Forms 2.0控件进行注册与注销

ActiveX控件必须在系统中进行注册才能使用,注册的方法主要有以下3种途径:一是用Regsvr 32.exe程序对ActiveX控件进行注册;二是用安装程序进行注册;三是利用Authorware系统函数进行注册[3]。

为方便用户使用,开发人员应在课件中对fm 20.dll控件实现自动注册与注册操作。Authorware提供了以下3条函数可供使用:

1.2.1 ActiveXControlQuery(CLASSID)函数

用于查询ActiveX控件是否注册,每种ActiveX控件均有一个系统内的专用的CLASSID,当参数CLASSID为“{8BD21D30-EC42-11CE-9E0D-00AA006002F3}”时,可查询Froms 2.0控件是否注册,如已注册返回-1,否则返回0。

1.2.2 ActiveXControlRegister(FileName)函数

用于注册ActiveX控件,将参数FileName换成“fm20.dll”,可实现对msForms2.0控件的自动注册。

1.2.3 ActiveXControlUnRegister(FileName)函数用于注销ActiveX控件,将参数FileName换成“fm20.dll”,可对msForms2.0控件进行自动注销。

1.3 在Authorware 7.0中使用Froms 2.0控件的属性与方法

开发人员在Authorware 7.0中可以方便地使用Forms 2.0各控件的属性和方法。设置ActiveX控件属性的函数语法格式为:

SetSpriteProperty(@"SpriteIconTitle",#Property,value)

其中SpriteIconTitle表示ActiveX控件名称,Property表示ActiveX控件属性,value表示设置的值。

如果要使用控件的事件,则可使用CallSprite函数,其格式为:

CallSprite(@"SpriteIconTitle",#method[,argument...])

其中的method表示使用的方法,如有参数可用逗号隔开[4]。

2 利用Forms 2.0控件实现数据库应用

2.1 配置ODBC

在Authorware环境中,要实现对数据库的操作,应该用到开放数据库互连(open database connectivity,ODBC)。ODBC是微软公司WOSA(开放服务结构)中有关数据库的一个组成部分,它建立了一组规范,并提供了一组访问数据库的标准API[5]。它使用一种强大而灵活的数据库访问标准,使用分层体系结构实现对数据库的操作,通过驱动程序提供了良好的数据库独立性[6]。目前标准的关系数据库均全面支持ODBC驱动,用户可在不依赖DBMS的情况下,通过ODBC,直接使用SQL语句操作数据库,完成数据库的各种应用。在Authorware中,访问数据库是通过SQL实现的。用SQL语言书写的查询操作可以通过应用程序传送给ODBC系统,再由ODBC系统将查询的结果传送给应用程序[7]。结果是,即使用户没有在当前计算机上安装相关数据库管理系统,仍能正常使用数据库文件,进行各种数据库应用。

使用ODBC的第一步要配置数据源。配置数据源的方法有两种:一种是在系统中直接进入“管理工具”中的“数据源(ODBC)”,在面板中进行数据源的配置。这种方法灵活性不佳,不利于课件的自动使用,需在每台机器上进行人工操作,略显繁琐;第二种方法是通过Authorware的函数面板选择tMSDSN.u32文件中的tMsDBRegister函数,将其载入,再在计算图标中编写代码,实现ODBC的自动配置。代码格式为:

其中,各项参数如表2所示。

表2 tMsDBRegister()函数各参数项配置及使用方法

2.2 ODBC的使用

完成ODBC配置以后,应用数据源时还要经过打开数据源,执行SQL语句和关闭数据源等操作。相关操作需要用到ODBC.u32文件的ODBCOpen、ODBCExecute、ODBCClose三个函数,实现ODBC的打开、数据操作与ODBC的关闭[8]等必要的数据库操作。使用Authorware的函数面板载入ODBC.u32文件的ODBCOpen、ODBCExecute、ODBCClose三个函数。

打开ODBC的程序代码为:ODBCHandle:=ODB COpen(WindowHandle,“ODBC错误”,“Stu1”,,),而关闭ODBC的程序代码是:ODBCClose(ODBCHandle)。

2.3 Forms 2.0控件与数据库相结合

在上述的知识基础之上,就可以在Authorware中对Forms 2.0控件进行应用了。以信息系统分析与设计课件课后练习题为例,在流程线上加入了Label和4个RadioButton控件,Label控件用于显示题干内容,4个RadioButton控件用于显示备选答案,这4个控件在使用时只能多选一。按图1创建流程。

图1 主流程线图标设计图

程序查询设计时应使用SQL语言中的Select语句,SQL是Structured Query Language的英文缩写,其功能包括查询、操纵、定义和控制四个方面,是一个通用的、功能极强的关系数据库语言,成为关系数据库的标准语言[9]。标准的SQL语言共有9条语句,涵盖了数据库的所有操作。Select命令是最常用的查询命令,不仅能够实现选择和投影操作,还可以通过聚集函数[10](Count,sum,avg,max,min)实现统计操作。只是Authorware没有那么强大的命令与之配套使用,所以操作必须使用数组来保存查询结果。程序的设计思路是:为实现逐条记录查询,需预先根据记录的数量,先期定义足够多元素的数组用来保存查询结果,用循环命令对每条记录的每个字段的数据单独查询,并将结果保存到数组的相应元素中,当需要显示下一条或上一条记录时,只需改变数组的下标变量即可,具体代码如下所示:

nn:=ODBCExecute(ODBCHandle,"select count(*)from选择题库")—取得记录个数

data:=Array(,nn,7)

couname:=Array(,7)

couname[1]:="id"

couname[2]:="题干"

couname[3]:="A"

couname[4]:="B"

couname[5]:="C"

couname[6]:="D"

couname[7]:="答案"

repeat with i:=1 to nn

recid:=i

repeat with j:=1 to 7

sqlstring:="select"^couname[j]^"from选择题库where id="^String(recid)

data[i,j]:=ODBCExecute(ODBCHandle,sqlstring)

end repeat

end repeat

—将结果保存到数组元素中

n:=1

SetSpriteProperty(@"题干",#Caption,String(data[n,1])^"."^data[n,2])

SetSpriteProperty(@"A",#Caption,data[n,3])

SetSpriteProperty(@"B",#Caption,data[n,4])

SetSpriteProperty(@"C",#Caption,data[n,5])

SetSpriteProperty(@"D",#Caption,data[n,6])

—显示第一题内容及备选答案

jg:=""

图2 程序运行效果图

以上是一个逐条显示选择题并允许用户操作练习的课件实例,用到的控件比较有限,但有较大的代表性。各控件属性可在选择ActiveX控件图标时,选择属性面板中的“选项”按钮来查看,在选项窗口中会有Property、Method、Events和CallString等页的内容供使用和设置,有些属性可能在Property中没有列出,但可以在CallString中查到并应用,如上例中的ComboBox控件中的ListIndex属性就是如此。该文中涉及到的数据库文件需与课件放在同一文件夹下,一旦有了数据库文件,在播放课件的计算机上不需安装ACCESS数据库管理系统。以上方法在Windows 7、Windows XP和Authorware 7.0环境中调试实现。当然在设计思想和技巧方面可能还存在一定的修改余地,请同仁们批评指正。

[1]李若瑾,王丽萍.Authorware 7.0实例教程[M].2版.北京:电子工业出版社,2010:1-5

[2]京辉热点工作室.Authorware 5入门与提高[M].北京:人民邮电出版社,2000:276-280

[3]苏贵斌,谭巍,马季骕.C/S架构Authorware应用程序中ActiveX控件的实现[J].内蒙古大学学报:自然科学版,2004,35(6):693-696

[4]张淮中.Authorware中的ActiveX控件的使用[J].微电子学与计算机,2000,17(2):28-30

[5]孙志雷.在Authorware中如何实现对数据库的操作[J].电脑知识与技术,2007,4(21):633-634

[6]李志伟.基于ODBC的数据库系统应用程序的移植[J].计算机工程与设计,2009,30(12):2985

[7]邓朝晖,李发英,李景福.Authorware对数据库的操作[J].科学技术与工程,2006,6(2):242-244

[8]郭新房,倪宝童,王健,等.Authorware 7.0多媒体制作基础教程与案例实践[M].北京:清华大学出版社,2007:265-266

[9]王珊,陈红.数据库系统原理教程[M].北京:清华大学出版社,2010:66-67

[10]王珊,萨师煊.数据库系统概论[M].北京:高等教育出版社,2006:250

猜你喜欢
数据源控件课件
基于.net的用户定义验证控件的应用分析
关于.net控件数组的探讨
Web 大数据系统数据源选择*
基于不同网络数据源的期刊评价研究
用Lingo编写Director课件屏幕自适应播放器
从“广用”到“省用”——谈音乐教学中课件使用的“度”
课件综述——《识字三》
基于真值发现的冲突数据源质量评价算法
提高高中数学多媒体课件质量的几点思考
分布式异构数据源标准化查询设计与实现