李红岩,张忠华
哈尔滨医科大学大庆校区医学信息学系,黑龙江 大庆 163319
在多媒体课件制作领域,Authorware一直占据着重要的统治地位,该软件以其功能强大、扩展性强、编程简单而深受课件制作人员的喜欢[1]。对于高级课件开发人员来说,课件中的动态统计图实现方法是一种常用技术,然而在各类技术参考文献中却极少涉及。为解决Authorware课件中的动态统计图问题,笔者在实际开发过程中,借鉴其他语言统计图实现思路[2],经过不断实践,总结出了一套比较实用的动态统计图制作方法,基本可以满足课件对统计图的需要。此方法在Autho rware环境中采用msChart控件与数据库相结合,实现了动态统计图效果,特点是方便快捷,制作方法简单,便于技术实现。
ActiveX控件是专为各种开发语言设计的用于某一功能的独立组件[3],嵌入开发语言后,可以扩充某一编程语言的功能与应用范围,间接延伸了编程开发语言的应用领域,实现了高效率的代码重用[4]。Author ware 7.0也可调用大量的ActiveX控件,msChart就是微软的一种ActiveX控件,专门用于形成统计图表,是实现动态统计图的显示主体。其主文件是mschart 20.ocx,存放于系统windowssystem 32文件夹下,在Author ware 7.0中调用msChart控件,需要注册才能使用。如果在播放课件的计算机上的指定文件夹下没有mschart 20.ocx文件,应先安装mschart 20.ocx(若之以前系统安装过VS、VB等语言,则此控件就已被安装)。
为方便用户使用,应在课件中对msChart控件实现自动注册与注册操作。Author ware提供了以下3条函数可供使用:
①ActiveX ControlQuery(CLASS ID)函数:用于查询ActiveX控件是否注册,当参数CLASS ID为“{3A2B370CBA0A-11D1-B137-0000F8753F5D}”时,可查询msChart控件是否注册,如已注册返回-1,否则返回0;
②ActiveXControlRegister(FileName)函数:用于注册ActiveX控件,将参数FileName换成“mscChart 20.ocx”,可实现对msChart控件的自动注册;
③ActiveXControlUnRegister(FileName)函数:用于注销ActiveX控件,将参数FileName换成“msChart20.ocx”,可对msChart控件进行自动注销。
笔者在课件中写了简单的注册程序,用于实现对msChart控件的自动添加与注册操作,考虑到目前多数计算机将系统安装在硬盘C分区,该文暂将系统目录设定为C:W indows,读者可根据各自计算机的实际情况灵活掌握,代码仅供参考。
—检测指定文件夹下是否存在msChart 20.ocx控件文件,如果没有,在出现的对话框中将系统安全设置为中级以下,然后复制文件到指定位置;
—检测msChart控件是否注册,如果没有注册,直接注册。
当需要课件退出时,可在一个计算图标中加入代码:ActiveXContro lUnRegister(“mschart 20.ocx”),将msChart控件注销。
开发人员在Authorware 7.0中可以方便地使用msChart控件的各种属性、事件和方法,msChart控件的主要属性如表1所示[5]。
表1 msChart控件的主要属性
在Authorware 7.0环境中,设置ActiveX控件属性的函数语法格式为:
其中,SpriteIconTitle表示ActiveX控件名称,Property表示ActiveX控件属性,value表示设置的值。
msChart控件显示统计图时,需将所用到的数据先行包含在数据网格中[6],用户需要用ColumnCount和RowCount设置数据网格的列数与行数,然后通过设置Row和Column的值,使用SetSpriteProperty函数,为msChart控件数据网格的相应Data属性赋值。当所有Data设置完成后,即可实现统计图效果。要想实时改变统计图形样式,只需按表1设置相应网格中的chartType属性值。
一般情况下,要实现对数据库的操作,必须用到开放数据库互连(open database connectivity,ODBC)。是微软公司WOSA(开放服务结构)中有关数据库的一部分,它是一组规范;同时,还提供了一组标准API函数,支持SQL语言[7]。目前标准的关系数据库均全面支持ODBC驱动,用户可在不依赖DBMS的情况下,通过ODBC直接使用SQL语句操作数据库,完成数据库的各种应用[8]。这样的话,即使用户没有在当前计算机上安装相关数据库管理系统,仍能使用数据库文件。
在Authorware中,要实现对数据库的操作,同样要用到ODBC,建立数据源。用户可以在W indows下的管理工具中直接进行ODBC配置,但这种方法不够灵活,需要在每台运行课件的机器上手工完成。最好的方法还是通过函数面板选择Autho rware的tM SDSN.u32文件中的 tM sDBRegister函数,进行函数载入,再用一个计算图标,编写代码实现ODBC的自动配置。代码如下所示:
完成ODBC配置以后,还需要使用Author ware的函数面板载入ODBC.u32文件的ODBCOpen、ODBC Execute、ODBCClose三个函数,用于实现ODBC的打开、数据操作与ODBC的关闭[9]等必要的数据库操作,打开ODBC的程序代码为:ODBCHandle:=ODBCOpen(W indowHandle,“ODBC错误”,“Stu1”,,),而关闭ODBC的程序代码是:ODBCClose(ODBCHandle)。
数据库操作依靠SQL语言来实现。标准的SQL语言共有9条语句,涵盖了数据库的所有操作。如果要用到查询或统计功能,Select命令是最常用的,它不仅能够实现选择和投影操作,还可以通过聚类函数[10](Count,sum,avg,max,min)实现统计操作,只是Authorware没有那么强大的命令与之配套使用,所以操作起来略显繁琐。笔者的思路是预先根据记录的数量,定义数组并通过RowCount和Column Count属性确定msChart数据网格的行列大小,用循环命令对每条记录的每个字段的数据单独查询,并将结果保存到数组的相应元素中,将数组相关元素的值赋给msChart数据网格中相应位置的Data属性,具体赋值代码保存在disp chart计算图标中,如下所示:
程序流程、程序运行效果分别如图1、图2所示。
图1 程序流程图
图2 程序运行效果图
从表1可以看到,统计图的图形样式受属性chart Type控制,只要在Author ware中使用SetSprite Property()函数改变chartType属性的值,具体值对应的图形样式见表1,图形样式就会随之改变。
到此为止,一个动态的基于数据库的统计图就做出来了,效果很好。能够根据实际需要动态改变统计图的样式,用户可根据自己的实际需要进行界面布置,不需安装ACCESS数据库管理系统。以上方法在W indows7、W indowsXP和Authorware 7.0环境中调试实现。当然在设计思想和技巧方面可能还存在一定的修改余地,有待在今后的工作实践中进行探索提高。
[1]李若瑾,王丽萍.Authorware 7.0实例教程[M].2版.北京:电子工业出版社,2010:1-5
[2]李伟.MSchart图表控件在Visual Studio 2008中的应用[J].电脑知识与技术,2010,6(4):866-868
[3]刘胜.ActiveX控件技术在PDM系统三维图档管理中的应用[J].工程图学学报,2009,30(1):143-147
[4]京辉热点工作室.Author ware 5入门与提高[M].北京:人民邮电出版社,2000:276-280
[5]曾石连.巧用MsChart实现在线作图[J].软件技术,2005,13(2):70-73
[6]张成才,王永信,刘丹丹,等.利用MSChart控件动态生成统计图[J].郑州大学学报:工学版,2007,28(3):73-75
[7]郭新房,倪宝童,王健,等.Authorware 7.0多媒体制作基础教程与案例实践[M].北京:清华大学出版社,2007:265-266
[8]孙志雷.在Authorware中如何实现对数据库的操作[J].电脑知识与技术,2007,4(21):633-634
[9]李红岩.基于数据库的Authorware动态开发技术与应用[J].中国医学教育技术,2008,22(3):294-296
[10]王珊,萨师煊.数据库系统概论[M].北京:高等教育出版社,2006:114