脚本语言在“BDS平台”中的应用

本文介绍了脚本语言的特点及其在BDS平台中的应用,包括脚本语言如何支持平台的灵活性和扩展性,以及它如何与平台的运行体系结构自然地结合。同时也讨论了脚本语言的一些局限性。

一、          脚本语言的特点

脚本语言是一种解释性编程语言,其程序结构与其它编译性的程序语言

基本相似,只是缺少一个编译的环节;需要脚本引擎来解释执行。

        脚本程序类似一种命令式语言,用户可以动态的加载指令来执行,这也是其灵活性所在。编译型语言,如c,c++,一旦编译后其程序逻辑也就固化了;而脚本程序则可以文本的形式存在,可实时修改、加载、执行。也因此具有很好的灵活性,动态特点。

        脚本语言可以作为编译语言的一种有效补充,将其嵌入到程序中可很好的支持其它编程语言的扩展、增加其外延。

        也因此,我们看到微软在其很多应用产品,如WORDExcelAccess等嵌入VBA作为功能扩展的基础。Flash也有ActionScript脚本做支持。

        WEB时代,脚本语言更是大行其道,Javascript,ASP,PHP,PERL,python等都是WEB中常用的动态语言。

 

二、          开发平台的扩展性、灵活性的功能需求

BDS平台需要支持用户自定义界面、自定义数据操作、自定义流

程控制等,这决定其功能实现必须是动态的。

   以“数据操作”为例,其以“函数”为基础功能模块,通过逻辑组合可构成更大的功能“方法”。其实现步骤形如下图所示:

 

图1 “函数”就如积木块

1 “函数”就如积木块

 

图2 选择合适的“函数”块

2 选择合适的“函数”块

 

 

图3适当的排列组合“函数”块

3适当的排列组合“函数”块

 

图4 构建成一个“方法”模型

4 构建成一个“方法”模型

                这些“系统函数”其表现的形式是一种类似编程语言的Funtion定义,形如:

InsertData(<新增ID返回值>,<新增数据表名称>,<赋值字段列表>)其参数是由用户在设计时自定义的。许多这种函数串联起来就成为一个有序的逻辑控制,就形成了类似脚本语言的程序,如下列:

 

1.        统计所有行数据 GetSubFormData(dtBatch, [Form$.FormBody43], )

2.        统计列值完整的行数据:GetSubFormData(dtOKBatch, [Form$.FormBody43], [Form$.FormBody43.FloatBox47]>0  AND [Form$.FormBody43.DateBox45] IS NOT NULL ) 

3.        检查是否是管制物品:

ExecuteSQL(Datatable isMainMat, select  1  from cyerp..tblBase_Warehouse_MaterialBill

WHERE MaterialNo= [Form$.MainForm.TextBox14] and ( limitedType='A' or charindex('干膜',materialName)>0 ) )

4.        管控物品批次控制:

IF( Count([dtOKBatch])=0 AND Count([isMainMat])>0 )

AbortOperation(管控物品必须录入完整的批次信息!)

5.        IF(Count([dtBatch])<>Count([dtOKBatch]))

      AbortOperation(“生产批次”行信息不完整或者批次数量小于0,请检查!)

   这些有序函数序列是可以随时进行ERP运行时调整的,因为其最终是通过“数据操作引擎”来解释执行的,也因此使得平台具有很强的动态性。因为这是BDS平台中一种特有的类脚本语言。

除此外,平台中有直接应用VBScript脚本作为“数据操作引擎”的补充以支持基础的运算操作等,比如VBScript脚本中常用的日期函数、字符串处理函数、数学函数等。Javascript自然也在WEB平台下      得以应用,因为很多涉及界面操作控制的函数都需借助Javascript的功能在客户端执行完成。

 

 

三、          脚本程序与平台的自然结合

基于上面的描述,我们可以看到,脚本程序在平台中得以自然的使用。

BDS平台其运行体系结构如下图所示:

        图5 BDS平台运行体系结构

5 BDS平台运行体系结构

        从中我们可以看到“脚本语言”成为.Net Framework基础架构的有益补充。

 

四、          脚本应用的缺点

所谓有所得亦必有所失,脚本语言因其是解释性程序语言;因此

相对编译性程序而言其执行速度自然会有折扣,但通过BDS平台实践应用的检验结果来看,其性能并没有大的损伤,用户体验上与其它应用程序也没有差异。

 

五、          总结

综上所述,“脚本语言”是实现BDS平台动态,易于功能扩展的重要手段,BDS平台不仅应用了已有的如VBScript脚本语言之外,也发展了平台专有的类脚本语言“函数与方法”;从而使得平台具有相当的灵活性。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值