有论坛朋友学习Sbo Add-on开发,在Sbo 2004 SDK中文版上看到了一个例子,主要用于实现通过新增员工薪水计税数据表,完成对单位职工的薪水发放与个人所得税的计算。在学习过程中希望我对此实例调试进行一些帮助
这只是一个Add-on实例,代码并不多,实现的功能也有限。用业余时间帮助朋友完成了这个示例的调测,所有功能调试完成。现在对此予以说明,并上载此实例供Sbo SDK开发初学者在学习中参考。
一、数据结构
为了支持员工薪水计税功能,需要新增两个数据表,分别为:
1、职员薪水表:@CESS
  • docNum  单据号码 文本(20)
  • docDate  过帐日期 日期
  • EmpID  员工帐号 文本(15)
  • docTotal 薪水合计 单位与统计 金额
  • docTax  个人所得税 单位与统计 金额
2、职员薪水行:@CEST
  • docNum  单据号码 文本(20)
  • LineNum  行号  数值
  • Type  类型  文本(10)
  • Amount  金额  单位与统计 金额
  • Reference 备注  文本(250)
二、创建自定义用户表,修改Code字段长度
通过数据库表看似象一个自定义用户单据对象,但是由于实例中没有使用自定义对象来处理,所以就在创建自定义数据表时我们就只使用了无类型的自定义数据表方式。
在Sbo中,自定义无类型数据表建立之后,Sbo自动在此表中增加了两个字段:Code 文本(8)和Name 文本(30),并且将Code作为自定义数据表的主键。
鉴于本例的需要,Code的长度以当前的时间为种子产生,至少应该为10位,所以为了保障程序的正常运行,需要将Code的字段长度更改为 文本(15)。
三、实例代码分析
本例实现的功能很有限,所以结构相应比较简单,主要包括三部分:
1、Sbo同Add-on插件程序的统一认证:这是开发Sbo Add-on插件程序必须的,否则无法实现Sbo主程序同插件程序的集成。实现这一功能主要通过三个函数和过程来实现:
  • SetApplication:获得当前正在运行的Sbo主程序
  • SetConnectionContext:设置发生业务数据的环境
  • ConnectToCompany:建立Add-on插件到Sbo现行主程序公司数据库的连接
2、绘制Add-on插件业务处理界面,新建进入薪水计税功能的菜单入口,并对菜单进行侦听。这一功能主要通过一些函数和过程来实现。
  • AddSalaryFormToMenu:新增业务处理入口菜单
  • CreateForm:绘制业务处理界面
  • SBO_Application_MenuEvent:侦听Sbo主程序通过入口菜单进入到业务处理界面
3、业务信息录入处理,录入信息保存入库。这一功能主要通过一些函数和过程来实现。
  • SBO_Application_ItemEvent:业务信息录入处理事件侦听
  • cboEmpid_Select:单位职工选择
  • CalculateTotal:薪水信息行录入过程中的薪水自动汇总
  • CalculateTax:薪水信息行录入过程中的自动计税
  • ValidToSaveSalary:点击保存按钮之后对录入信息的合法性校验
  • SaveSalary:保存录入信息到数据库
四、结论
  • 本实例基本实现了一个简单Sbo Add-on插件的业务功能,包含了Add-on插件开发的基本框架,是Sbo Add-on插件开发初学者的理想学习材料。
  • 但是实例中没有异常处理,可能对经验不足编程人员的编程习惯造成不利的影响。
五、测试环境
  • VS VB.Net 2005 + MS SQL Server 2000 with SP4 + Win 2003 with SP2