基于Sbo SDK的Add-on插件开发实例

  有论坛朋友学习Sbo Add-on开发,在Sbo 2004 SDK中文版上看到了一个例子,主要用于实现通过新增员工薪水计税6184.html">数据表,完成对单位职工的薪水发放与个人所得税的计算。在学习过程中希望我对此实例调试进行一些帮助

  这只是一个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

  本文出自 “富盛软件” 博客,请务必保留此出处http://foresun.blog.51cto.com/221037/41989

时间: 2024-08-07 14:50:16

基于Sbo SDK的Add-on插件开发实例的相关文章

富盛Sbo Add-on程序开发框架及开发实例

一.问题的提出 Sbo是一套具有非常不错业务架构.并且很好支持了二次开发的企业http://www.aliyun.com/zixun/aggregation/13617.html">信息管理系统--对不起,我还不称之为Erp,因为如果不进行二次开发,Sbo可以支持的业务面还是太窄太小,业务之间约束关系也太简单.是的,我的观点是,如果没有很好的二次开发,Sbo是无法支撑不断发展变化的中国企业的业务需要的. 那么,进行Sbo二次开发是不是很简单? 应该说,不太复杂!不过,对于初学者或者刚涉足这

用C/C++开发基于VLC SDK的视频播放器

在windows系统如果开发万能播放器,一般都是基本DirectShow来开发,开发也很简单,但缺点也很多,一个文件格式是否能够播放完全取决于你 是否安装了正确的解析器和解码器,即使现在有了万能解器安装包也会出现很多问题,不过自从很多开源软件的出现,比如大名鼎鼎的ffmpeg,vlc等,一 切都变得简单起来,基于ffmpeg sdk开发就不多介绍了,本文主要介绍基于 VLC SDK来开发自己的播放器,一切都是那么的简单.   1.先下载VLC player, http://www.videola

c++ directx-求 基于c++的DirectX 11 3D 综合实例 源码

问题描述 求 基于c++的DirectX 11 3D 综合实例 源码 如图,包含天空盒,四种光照,线框模式开关,雾化,镜面,反射,法线映射,着色体,曲面细分. 不是全都有也可以,最起码有五个. 急求,三天内急求,急急急,谢谢了 解决方案 可以尝试和这位博主交流:http://blog.csdn.net/xoyojank/article/category/337624/2 解决方案二: http://download.csdn.net/album/detail/885 解决方案三: [Direct

基于.Net平台应用程序唯一运行实例C#代码实现

程序 概述本文是针对<基于.Net平台应用程序唯一运行实例实现>的补充,文章给出功能实现代码,其中SingleInstance类实现只允许一个实例运行,Program为测试主程序入口.在代码中标识说明文字.完整代码下载. 主要代码SingleInstance.cs文件, using System;using System.IO;using System.Diagnostics;using System.Threading;using System.Reflection;using System

python基于Tkinter库实现简单文本编辑器实例

  这篇文章主要介绍了python基于Tkinter库实现简单文本编辑器,实例分析了Python使用Tkinter库实现简单桌面应用程序的技巧,具有一定参考借鉴价值,需要的朋友可以参考下 本文实例讲述了python基于Tkinter库实现简单文本编辑器的方法.分享给大家供大家参考.具体实现方法如下: ? 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 3

程序-求基于linux内核3.16的netlink实例

问题描述 求基于linux内核3.16的netlink实例 我最近在搞一个基于内核的过滤模块,要用到netlink进行内核于用户程序的交互. 但网上关于netlink的实例基于的内核版本太低了,内核里面关于netlink的函数实现改的我无法下手. 求高手指导!!!感激不尽 解决方案 可以参考一下iproute2(ip和tc命令)和内核的通讯过程.

详解基于Sbo DI API独立程序系统登录的实现

几个朋友在Sbo开发讨论群中都说,因为前段时间咱们的例子演示,基于Sbo UI API的Add-on插件的开发基本熟悉了,也掌握了实现Sbo Add-on插件同Sbo主程序之间单点认证的方法:但是他们在开发基于Sbo DI API的独立http://www.aliyun.com/zixun/aggregation/7298.html">程序开发中,总是出现无法登录到指定的企业数据库,本文用以对此进行说明. 基于DI API的独立程序开发,就是不再将新开发的业务功能作为插件的形式集成到Sbo

基于SBO的仓储维护管理实现

对于生产企业,可能需要有很多不同的仓库--不同的原料仓库以及不同的产品仓库,基于行业特性的需要,可能需要对其仓库内的商品进行维护保养,比如翻箱.杀虫.温度湿度监测等.SBO的标准功能的生成管理很弱,也没有仓储维护的业务管理. 基于此,我们开发了一套基于SBO的仓储维护管理.整个管理包括四个部分: 1.仓储维护项目制定.这个功能属于基础的数据定义,用来指定仓库的仓储维护计划项目及其维护周期,是否需要自动维护等.实现界面如下: 如图所示,仓管项目杀虫,适用于三个仓库,原烟仓.选后原烟仓和成烟仓.其中

基于jQuery实现仿51job城市选择功能实例代码_jquery

前些文章用写过,省市县三级联动,但是感觉选择的时候不够直观,现在改进了下,效果如下图 <%@ Page Language="C#" AutoEventWireup="true" CodeFile="City.aspx.cs" Inherits="System_Select_City" %> <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transition