在ASP 脚本的编制过程中,可采用VBScript 和JavaScript 两种脚本语言。这两种脚本提供了丰富的功能和函数,但有时候它们提供的功能是不够的,碰到这种情况,一种行之有效的方法是使用ActiveX 组件来封装用高级语言编制的复杂计算,或者将高级语言的函数导出到ASP 应用程序中。下面以一个简单的例子说明这种功能:
Visual Basic中的Format()函数对数据格式、日期、时间的转换功能是很强的,但是在ASP中不能直接使用Format()函数,为了解决这种冲突,使用ActiveX 控件可以实现比较方便的封装和导出。
Visual Basic中的Format()函数的语法结构如下所示:
其中,该函数的返回值的数据类型是Variant 型,它是根据格式化串形成的一个表达式。
Format()函数的参数包括:
● Expression:该参数是必选参数,代表任何有效的原始表达式;
● Format:该参数是可选参数,代表有效的命名表达式或用户自定义格式表达式,Format函数根据该参数对Expression参数进行格式化操作;
● Firstdayofweek:该参数是可选参数,它是一个Visual Basic 常数,用于指定一个星期中的第一天;
● Firstweekofyear:该参数是可选参数,它是一个Visual Basic 常数,用于指定一年中的第一周。
该格式化函数可以对数字、日期、时间和字符串等类型数据进行如下操作:
数字类型:用预先定义的命名数值格式或用户自定义数值格式对输入表达式格式化;
日期和时间类型:使用预先定义的命名日期/时间格式或用户自定义日期/时间格式对输入表达式进行格式化;
字符串类型:根据自定义的字符串格式对输入表达式进行格式化。
下面创建一个ActiveX组件来封装Visual Basic中的Format()函数的部分功能,并且向ASP应用中导出,创建的步骤前面已经介绍,属性如下设置:
ActiveX组件的项目名称为:prjExportFun;
类的名称为:Format.cls;
生成的DLL的名称为:dllActiveXExpFun.dll。
向ASP导出高级语言函数的ActiveX组件,代码如下所示(format.cls):
在ASP 脚本中调用ActiveX 组件导出高级语言函数的脚本代码如下所示(ActiveXExpFun.asp):
(www.xing528.com)
上面这段程序的运行结果如图9-9所示。
图9-9 调用ActiveX Server 组件导出高级语言函数的页面
在该页面中,输入下面的一些测试数据:
转化数值:123456.78
转化格式:##,##0.0000
转化字符串:ActiveX
转化格式:>
转化日期:06/18/2001
转化格式:yyyy_mm_dd
单击“转化”按钮,ActiveX 控件将执行Format 函数的功能,转化后的数据结果如下:
转化后数值:123,456.7800
转化后字符串:ACTIVEX
转化后日期:2001_06_18
在页面中得到的结果如图9-10所示。
图9-10 调用ActiveX Server 组件转化后的结果
这样,在ASP 页面中,就可以如同在一般的高级语言中一样使用各种函数了。惟一需要做的事情就是,在使用这些高级语言的函数之前用ASP的内建对象Server 创建导出这些函数的ActiveX 控件的对象。
除直接将高级语言的函数通过ActiveX 控件导出外,也可以将复杂的技术,尤其ASP 脚本难以解决的复杂控制或计算封装成函数,由ActiveX 控件导出,这也是使用ASP ActiveX控件的一个重要方向。
免责声明:以上内容源自网络,版权归原作者所有,如有侵犯您的原创版权请告知,我们将尽快删除相关内容。