金蝶KIS专业版二次开发技术详解.docx

上传人:b****3 文档编号:5693375 上传时间:2023-05-09 格式:DOCX 页数:22 大小:368.01KB
下载 相关 举报
金蝶KIS专业版二次开发技术详解.docx_第1页
第1页 / 共22页
金蝶KIS专业版二次开发技术详解.docx_第2页
第2页 / 共22页
金蝶KIS专业版二次开发技术详解.docx_第3页
第3页 / 共22页
金蝶KIS专业版二次开发技术详解.docx_第4页
第4页 / 共22页
金蝶KIS专业版二次开发技术详解.docx_第5页
第5页 / 共22页
金蝶KIS专业版二次开发技术详解.docx_第6页
第6页 / 共22页
金蝶KIS专业版二次开发技术详解.docx_第7页
第7页 / 共22页
金蝶KIS专业版二次开发技术详解.docx_第8页
第8页 / 共22页
金蝶KIS专业版二次开发技术详解.docx_第9页
第9页 / 共22页
金蝶KIS专业版二次开发技术详解.docx_第10页
第10页 / 共22页
金蝶KIS专业版二次开发技术详解.docx_第11页
第11页 / 共22页
金蝶KIS专业版二次开发技术详解.docx_第12页
第12页 / 共22页
金蝶KIS专业版二次开发技术详解.docx_第13页
第13页 / 共22页
金蝶KIS专业版二次开发技术详解.docx_第14页
第14页 / 共22页
金蝶KIS专业版二次开发技术详解.docx_第15页
第15页 / 共22页
金蝶KIS专业版二次开发技术详解.docx_第16页
第16页 / 共22页
金蝶KIS专业版二次开发技术详解.docx_第17页
第17页 / 共22页
金蝶KIS专业版二次开发技术详解.docx_第18页
第18页 / 共22页
金蝶KIS专业版二次开发技术详解.docx_第19页
第19页 / 共22页
金蝶KIS专业版二次开发技术详解.docx_第20页
第20页 / 共22页
亲,该文档总共22页,到这儿已超出免费预览范围,如果喜欢就下载吧!
下载资源
资源描述

金蝶KIS专业版二次开发技术详解.docx

《金蝶KIS专业版二次开发技术详解.docx》由会员分享,可在线阅读,更多相关《金蝶KIS专业版二次开发技术详解.docx(22页珍藏版)》请在冰点文库上搜索。

金蝶KIS专业版二次开发技术详解.docx

金蝶KIS专业版二次开发技术详解

 

金蝶KIS专业版二次开发技术详解

 

KIS增值开发组

2008年11月

目录

第一章概述1

第一节个性化介绍1

第二章二次开发类别2

第三章技术详解3

第一节单据嵌入式插件3

第二节主控台外挂报表5

第三节主控台外挂DLL组件9

第四节单据增加自定义菜单12

第五节创建新的表单序时簿14

第六节第三方系统与KIS的集成20

第七节标准Exe执行程序20

第四章附注22

第一节专业版单据相关ID22

第二节专业版数据库常用表介绍23

第一章概述

本文着重介绍如何利用KIS专业版产品自身架构,进行相关功能的二次开发,在产品标准财务、业务一体化流程基础上,实现客户个性化需求,真正做到随需应变。

第一节个性化介绍

KIS个性化ERP,又称第三代国产小企业ERP:

第一代ERP——定制化

定义:

客户需要怎么样,就做成怎么样,完全以客户需求为导向,由于客户的专业性有限,容易导致业务前后不一致,流程中断。

结果:

小部分企业成功,大部分失败。

第二代ERP——标准化

定义:

软件厂商从专业角度出发,按照理论形成稳定的标准流程,做出通用型产品,特点是产品过于通用化,不能与企业自身管理特点或企业所在行业特点很好的吻合。

结果:

小部分企业成功,大部分不满意

第三代ERP——个性化

定义:

基于产品平台接口,确保财务业务一体化流程稳定为基础,通过插件开发,实现客户个性化需求,最终实现客户ERP的个性化。

目标:

帮助顾客成功。

第二章二次开发类别

金蝶KIS专业版的二次开发共分为下面7大类别:

一、单据嵌入式插件(如:

客户品名)

二、主控台外挂报表(如:

采购价格分析表)

三、主控台外挂DLL(如:

客户订单号回写功能插件)

四、单据增加自定义菜单(如:

销售订单的“拆分生成采购入库”菜单)

五、创建新的表单序时簿(如:

预收预付协议单序时簿)

六、第三方系统与KIS的集成(如:

计件工资、税务系统)

七、独立运行的Exe,可以调用KIS登录窗口获得数据源,支持F7调用。

第三章技术详解

按照KIS专业版二次开发的7大类别,分别进行以实现原理与实际应用案例相结合的详细介绍。

第二节单据嵌入式插件

插件根据单据表头或表体界面操作,获取界面数据,并插件中进行数据加工处理,最后将结果回填到单据界面。

下面以“客户品名”(又名:

一品多名)插件为例。

插件需求

有些行业的物料名称别名很多,同样的物料销售给不同客户时,各客户要求送货单上显示自己规定的名称。

这样情况在化工和医药等行业比较普遍,如:

编码为01.001的盐酸,销售给A客户叫洗涤剂,销售给B客户叫漂白水。

销售出库单第一次输入A客户、输入01.001物料、输入客户产品名称,插件自动保存该客户对应该物料的客户产品名称,销售出库单第二次输入同样客户、同样物料时,插件自动查询并显示对应的客户产品名称。

实现步骤

步骤一:

通过下面脚本,销售出库单表体增加“客户产品名称”字段。

步骤二:

通过下面脚本,在系统的销售出库单嵌入一个VB插件类对象名(KISBillPlugCustItemName.Bill21),并且数据库中新建一张用于存放客户、物料和客户产品名称信息的表(t_custitem)。

 

步骤三:

用VB开发并编译在步骤二中嵌入的插件类对象,插件实现的逻辑是,在销售出库单,表体选择物料后,插件自动根据当前的客户和物料,从数据库中取出对应的客户产品名称,然后填入表体的相应单元格。

客户产品名称有编辑后,需要自动回写到数据库。

具体实现参照下面代码:

实现效果

套打:

 

第三节主控台外挂报表

指开发用户个性化报表,并将报表菜单挂到KIS专业版主控台的相应模块右下方。

具体实现过程如下:

插件需求

以简单的采购明细报表为例。

实现步骤

步骤一:

在KISCom目录下创建KISBOS目录,解压下面报表例子文件包,放到KISBOS目录,如下图:

步骤二:

注册上图显示KISBOSRptSample目录下的KISBOSRptSample.dll组件(DLL组件的注册方法:

双击该文件,选择打开方式为system32目录下的REGSVR32.EXE文件,提示注册成功)。

实现效果

采购模块的账簿报表中出现“采购报表例子”菜单。

点击“采购报表例子”,可以显示下面报表效果:

原理介绍

1.专业版主控台显示时,自动读取KISCom\KISBOS目录下的“xls”文件,每个xls文件中存放一条记录,该记录的相关字段说明,可以打开xls文件,查看该文件的“字段说明”页表中相关解释。

此xls相当于菜单挂接模板,如果要挂接新报表或新的dll组件,可以拷贝此文件,对相应字段进行修改即可,注意:

如果是手工Excel新建的xls文件,专业版主控台会出现不能显示的问题。

2.点击“采购报表例子”菜单后,系统读取“KISBOS\KISBOSRptSample\KISBOSReport.mdb”文件,从T_RepList表中,读取本报表对应的“数据处理插件对象”,从T_RepFilter表中,读取出报表的过滤条件设置,T_RepFilter表中,对于客户、供应商、物料、职员等基础资料的选择,请参照T_Select表,注意:

T_RepList,T_RepFilter表中的FRepKey字段的值需要与xls文件记录“RPT/001”的“001”编码一致。

3.点击报表过滤界面上的【确定】按钮,系统自动创建T_RepList表中设定的“数据处理插件对象”,并将过滤条件传到此对象。

关于“数据处理插件对象”的实现原理,请参阅“KISBOS\KISBOSRptSample\报表插件源代码”目录下的VB源代码。

第四节主控台外挂DLL组件

指开发用户个性化功能插件,并将功能菜单挂到KIS专业版主控台的相应模块右下方,相对嵌入式插件,外挂DLL组件的功能相对比较独立。

具体实现过程如下:

插件需求

销售模块的右下方,挂接一个简单的VBDLL组件程序,该演示程序介绍数据库连接的获取,F7基础资料的选择。

实现步骤

步骤一:

在KISCom目录下创建KISBOS目录,解压下面报表例子文件包,放到KISBOS目录,如下图:

 

步骤二:

注册上图显示KISBOSDllSample目录下的KISBOSDllSample.dll组件(DLL组件的注册方法:

双击该文件,选择打开方式为system32目录下的REGSVR32.EXE文件,提示注册成功)。

实现效果

销售模块的账簿报表中出现“Dll例子”菜单

点击“DLL例子”,可以显示下面窗口:

原理介绍

1.专业版主控台显示时,自动读取KISCom\KISBOS目录下的“xls”文件,每个xls文件中存放一条记录,该记录的相关字段说明,可以打开xls文件,查看该文件的“字段说明”页表中相关解释。

此xls相当于菜单挂接模板,如果要挂接新报表或新的dll组件,可以拷贝此文件,对相应字段进行修改即可,注意:

如果是手工Excel新建的xls文件,专业版主控台会出现不能显示的问题。

2.点击“DLL例子”菜单后,根据xls文件记录中设置的“DLL/KISBOSDllSample.Application”,创建KISBOSDllSample.Application对象,并自动调用该对象的指定方法,如下:

PublicFunctionShow(strAsString)AsBoolean

PropString=str

frmMain.Show1

EndFunction

具体代码实现,请参阅“KISBOS\KISBOSDllSample”目录下的VB源代码。

第五节单据增加自定义菜单

插件需求

贸易型企业,在接到销售订单后,直接按照订单商品进行采购,这样,订单上有很多商品,但是需要从多家供应商处进行采购,也就是需要一张销售订单,能自动生成多张采购订单。

实现步骤

步骤一:

通过下面脚本,销售订单表体增加“供应商”字段,并在销售订单顶部菜单中增加“拆分生成采购订单”的菜单,并对应此菜单,嵌入一个DLL插件到销售订单,这样通过点击此菜单,系统自动调用嵌入的DLL插件,并在插件中自动按照订单上的供应商,生成多张采购订单。

步骤二:

关于步骤一中的DLL插件,单据自定义菜单所触发的插件事件如下:

PrivateSubm_BillTransfer_UserMenuClick(ByValIndexAsLong,ByValCaptionAsString)

DimsBillNoPlaceAsInteger

DimsBillNoAsString

DimoPropAsKFO.Dictionary

DimoSvrAsObject

DimRtnCodeAsLong

DimRtnDescAsString

sBillNoPlace=GetCtlOrderByFieldName("FBillNo",0)

IfsBillNoPlace<>0Then

sBillNo=m_BillTransfer.GetHeadText(sBillNoPlace)

Else

ExitSub

EndIf

SetoProp=NewKFO.Dictionary

oProp("FBillNo")=sBillNo

SetoSvr=CreateProxy("KISMenuDllCreMulPOM.clsUpdate")

CalloSvr.CreatePO(MMTS.PropsString,oProp,RtnCode,RtnDesc)

IfRtnCode=0Then

RtnDesc="完成!

"

EndIf

MsgBoxRtnDesc,,"信息提示"

EndSub

实现效果

第六节创建新的表单序时簿

指用户根据个性化特点,需要在专业版系统上增加新的表单,对该表单数据进行增、删、改、查、套打等功能,并且希望能将新表单数据下推到系统现有的单据上。

插件需求

企业在预收款时,要记录下预收多少钱,预售什么产品、多少数量、什么价位、在做销售出库时,自动从预收款协议单下推携带、并单价自动带出来。

同时预付也实现类似功能。

实现步骤

步骤一:

通过下面脚本,在专业版系统中增加预收款协议单和预付款协议单共两套单据模板脚本,并且AddMenu.sql文件脚本将两个单据分别增加扩展菜单,用于下推到销售出库单或采购入库单。

步骤二:

将下面文件包中文件放置到对应的Advance和KISCom目录,并对dll文件进行Regsvr32.exe注册。

KISBOS目录如下图显示:

KISBOSLstPrePay.xls:

该文件用于在主控台显示“预付协议单序时簿”菜单

KISBOSLstPreRec.xls:

该文件用于在主控台显示“预收协议单序时簿”菜单

KISBOSRptPrePay.xls:

与KISBOSRptPrePay目录对应,形成预付执行情况报表

KISBOSRptPreRec.xls:

与KISBOSRptPreRec目录对应,形成预收执行情况报表

KISCom目录下:

KISMenuDllCreBillM.dll:

中间层组件,用于后台生成销售出库单或采购入库单

Advance目录下:

ERPSwitch.SSS:

该文件用access打开,在GLNoteType、ICTransType表中增加了相应的预收预付协议单记录

KIS预收协议单.NDF、KIS预付协议单.NDF:

这两个为新单据对应套打文件

KISMenuDllCreBill.dll:

该文件为单据自定义菜单调用的嵌入式组件

KISBills.dll:

该文件为专业版系统的单据组件,覆盖原有安装的文件,否则新单据上的单价和金额不能显示出来。

附注:

如果用户需要创建类似的新单据,即复制本案例的脚本文件、xls文件、ERPSwitch.SSS文件和套打文件,然后修改下相应的单据名称、并根据需要对模板的表头和表体脚本进行相关修改,即可轻松实现新单据的增删改查和套打功能,再根据前面介绍的嵌入式插件、自定义菜单功能原理,实现新单据与系统单据的下推等功能。

实现效果

主控台:

单据界面:

点击【扩展功能】的【下推采购入库】菜单,弹出下面窗口,选择明细,并输入数量,可以自动生成采购入库单。

相应报表:

第七节第三方系统与KIS的集成

第三方系统Exe程序直接在KIS专业版主控台上调出启动,并且KIS传递登录数据库的连接串,便于第三方系统与KIS在同一数据库中操作。

第三方系统集成,涉及到数据库的整合,同时还有基础资料的同步或重用,所以此类型的插件,一般由总部主导完成。

第八节标准Exe执行程序

指用VB开发可执行的标准EXE程序,程序可以调用专业版登录组件,实现KIS风格登录,获取数据库连接串,并程序中可以直接调用专业版F7基础资料查询功能。

具体实现过程参照下面例子程序:

第四章附注

本文所讲述的插件开发接口技术都是基于金蝶KIS专业版V9.1SP1版本(如需技术交流,可以发送邮件到kaihong_wang@)。

相关资料和金蝶KIS现已发布插件情况说明文档,可以从下面地址获取:

(下载时,建议采用迅雷等下载工具,由于网络原因,该地址有出现第一次下载不成功的情况,这时需要重试。

第一节专业版单据相关ID

单据名称

单据ID

模板Id

序时簿ID

套打ID

采购订单

71

P02

81

50

采购发票(普通)

76

I03

84

45

采购发票(专用)

75

I02

84

44

采购入库

1

A01

58

19

产品入库

2

A02

55

20

成本调整

100

T01

73

58

调拨单

41

D01

75

37

领料单

24

B04

77

29

盘亏毁损

43

C02

51

36

盘盈入库

40

C01

50

35

其他出库单

29

B09

68

34

其他入库

10

A97

57

25

销售报价单

84

G01

60

42

销售出库

21

B01

76

26

销售订单

81

S01

61

53

销售发票(普通)

86

I05

62

47

销售发票(专用)

80

I04

62

46

虚仓出库

26

ZOU

79

62

虚仓调拨

74

P05

85

60

虚仓入库

6

ZIN

54

61

单据、序时簿、套打相关对象类型表直接的关联关系,可以参照下面SQL语句:

selectdistincta.fname,a.fid,a.ftemplateid,b.ftemplateidasflistid,b.fnameasflistname,c.fnotetypeidfromictransactiontypea

innerjoiniclisttemplatebona.fid=b.fbilltemplateid

innerjoinglnotetypecona.ftemplateid=c.ftemplateid

orderbya.fname

第二节专业版数据库常用表介绍

ictransactiontype单据类型表(FTemplateID是关联模板信息表的字段,FID关联ICStockBill中的FTranType字段)

ictemplate,ictemplateentry单据模板信息主子表

icinvbal物料库存余额表(包含FAuxPropID),icbal物料库存余额表

icinventory:

物料即时库存数据存放表

icstockbill除组装拆卸外的库存类单据主表

icstockbillentry除组装拆卸外的库存类单据明细表

icstockbill中调整单类型号100,当FBillTypeID为12542代表调入,FBillTypeID为12541代表调出

ICPurchase采购发票主表

ICPurchaseEntry采购发票明细表

icsale销售发票主表

icsaleentry销售发票明细表

selectFInvoiceAmountFor,FInvoiceAmount,FReceiveAmountFor,FReceiveAmount,FUnReceiveAmountFor,*fromicsalewhereFInterID=1066

上面字段分别为原币发票金额,本币发票金额,原币收款金额,本币收款金额,原币未收款金额

SEOrder销售订单主表

SEOrderEntry销售订单明细表

POOrder采购订单主表

POOrderEntry采购订单明细表

t_ItemClass核算项目类别表,打开此表可以获取核算项目各基础资料存放的表名(FItemID为关联内码)

t_RP_RBill收款单主表,t_RP_RBillEntry收款单子表

t_RP_PBill付款单主表,t_RP_PBillEntry付款单子表

T_RP_CheckInfo核销单主表,T_RP_CheckInfoEntry核销单子表select*fromT_RP_CheckInfo

ICHookRelations暂估处理发票钩稽关系表

展开阅读全文
相关资源
猜你喜欢
相关搜索
资源标签

当前位置:首页 > IT计算机 > 电脑基础知识

copyright@ 2008-2023 冰点文库 网站版权所有

经营许可证编号:鄂ICP备19020893号-2