Windows 提供了很强的脚本功能,象ASP一样,是文本文件,无需编译,就能实现一个功能完整的组件。本文通过一个脚本组件实例来进行解释和讲解如何在ACCESS中应用。
首先,用记事本新建文件,内容如下:
<SCRIPTLET>
<Registration Description = "ConvertTemp" ProgID = "ConvertTemp.Scriptlet" Version = "1.00"> </Registration> <Public> <Property Name = "Number"> <Get InternalName = "getNumber"/> <Put InternalName = "setNumber"/> </Property>
<Method Name = Celsius> <PARAMETER Name = F/> </Method> <Method Name = Fahrenheit> <PARAMETER Name = C/> </Method> <Event Name="onNumberChange"/> </Public>
<SCRIPT LANGUAGE=VBScript>
Dim num
' Get 属性 Function getNumber() getNumber = num End Function
' Put 属性 Function setNumber(newNumber) ' 验证输入的数据 If Not IsNumeric(newNumber) Then num = 0 ' 当不是数字时,设为 0 Else num = newNumber ' 引发事件 FireEvent ("onNumberChange") End If End Function
' 以下为两个 COM 方法 Function Celsius(F) Celsius = 5 / 9 * (F - 32) End Function
Function Fahrenheit(C) Fahrenheit = (9 / 5 * C) + 32 End Function
</SCRIPT>
</SCRIPTLET> | 保存为 "ConvertScriptlet.sct" 文件,脚本组件的扩展文件名为".sct"。这是一个完整的 Windows 脚本组件文件。
下面进行解释: 脚本是以<SCRIPTLET>.....</SCRIPTLET>括起来的。
<Registration Description = "ConvertTemp" ProgID = "ConvertTemp.Scriptlet" Version = "1.00"> </Registration> | 这一段为脚本组件注册信息。ProgID="ConvertTemp.Scriptlet"定义类的名称。
<Property Name = "Number"> <Get InternalName = "getNumber"/> <Put InternalName = "setNumber"/> </Property> | 这一段为定义类的属性和属性过程。
<Method Name = Celsius> <PARAMETER Name = F/> </Method> <Method Name = Fahrenheit> <PARAMETER Name = C/> </Method> | 这一段为定义类的方法和方法参数。
<Event Name="onNumberChange"/> 这一段为定义类的事件。 |
' Get 属性 Function getNumber() getNumber = num End Function
' Put 属性 Function setNumber(newNumber) ' 验证输入的数据 If Not IsNumeric(newNumber) Then num = 0 ' 当不是数字时,设为 0 Else num = newNumber ' 引发事件 FireEvent ("onNumberChange") End If End Function | 这一段实现类的属性过程, 并引发事件。
Function Celsius(F) Celsius = 5/9 * (F - 32) End Function
Function Fahrenheit(C) Fahrenheit = (9/5 * C) + 32 End Function | 这一段实现类的方法。
组件注册: 在 Windows 资源管理器中,右键单击该文件,选择[注册]。也可以命令行下进行注册:
REGSVR32.EXE /i:Path\ConvertScriptlet.sct SCROBJ.DLL | 注:Path为文件路径。
在 ACCESS 中,使用 CreateObject() 函数创建脚本组件的实例:
Set objConvert = CreateObject("ConvertTemp.Scriptlet") |
这样就可以使用脚本组件所提供的属性、方法和事件了。
使用组件的优势是: 1、实现商业规则,例子中,就是实现了摄氏和华氏温度的转换这个规则。 2、当规则发生变化后,不需要改变应用程序。(这就是我所说的以不变应万变)。 3、使用 VB 或 VC 等高级语言开发组件,还可分布在网络其它主机上,实现分布式计算。 4、... 总之,好处多多!
点击浏览该文件
|