KISBillTransfer组件使用参考客户化开发工具包参考手册目录目录 (1)概述 (1)属性 (2)方法 (2)事件 (4)中间层事件 (8)应用示例 (9)概述单据二次开发是针对现目前单据的一些功能无法满足一些客户的特殊要求,同时分公司又有能力进行二次开发而提出的,这样既可以在现有的系统不做变动的情况下面满足用户的需求,同时也增强了系统的稳定性。
注意:本篇所介绍所用到的动态连接库名为:KISBillTransfer.dll通过该说明文档,你可以了解到1.如何通过KISBillTransfer组件在录单过程中对单据上各项目加以控制。
2.如何通过KISBillTransfer组件实现自定义功能菜单。
3.如何通过KISBillTransfer组件控制数据的保存。
4.应用示例。
该文档阅读的适用对象需要在KIS专业版进销存和生产委外业务单据上进行二次开发的开发者。
属性1.Property Cnnstring As String当前数据库的MMTS.PropsString连接串。
2.Property SystemName As String当前系统名称。
3.Property LastInfo As String最后一次系统返回的错误信息4.Property BillForm As Object整个单据窗体对象。
可通过该对象访问单据上的任何一个对象,包括控件,菜单。
共有的方法有:InsertRow(),在Grid的当前行追加一行,它没有参数。
5.Property BillFunc as Object代表单据对象。
目前没什么用途。
6.Property Head As Object单据表头控件,是一个KDText控件数组7.Property Grid As Object单据分录控件,为FpSpread控件8.Property SumGrid As Object单据分录合计控件,为FpSpread控件9.Property HeadCtl As Variant对应表头控件数组,记录每个表头项目各属性的数组如果要改变HeadCtl中的某个属性值,需先对HeadCtl做一个备份,然后修改此备份的相应属性值,再将此备份赋值给HeadCtl。
10.Property EntryCtl As Variant对应分录各列,记录每个分录列各属性的数组如果要改变EntryCtl中的某个属性值,需先对EntryCtl做一个备份,然后修改此备份的相应属性值,再将此备份赋值给EntryCtl。
11.Property SaveVect As KFO.Vector二次开发外部数据存取接口。
在录单过程中,用户可将某些数据保存在此Vector中,在单据保存时,再通过二次开发中间层组件,将此Vector中的数据保存到指定位置。
SaveVect.Item(1) 为一个KFO.Dictionary对象该对象包含以下四个系统数据SaveVect.Item(1).Value("FInterID"):单据内码SaveVect.Item(1).Value("FTransType") :单据事务类型SaveVect.Item(1).Value("ISRedBill") :是否红字单据SaveVect.Item(1).Value("BillChecked") :是否审核。
方法1.Function AddUserMenuItem(ByVal Caption As String, [ByVal RootMenuCaption As String = ""])说明:添加一个用户自定义菜单项,系统一共预设了五个菜单项供二次开发使用参数:Caption:菜单名称RootMenuCaption:根菜单名称。
缺省为“自定义菜单”2.Function GetGridText(ByVal Row As Long, ByVal Col As Long) As String 说明:获取分录某单元格的值参数:Row:分录行Col:分录列3.Function GetHeadNumber(ByVal CtlIndex As Long) As String说明:获取表头某项的代码参数:CtlIndex:表头控件索引4.Function GetHeadText(ByVal CtlIndex As Long) As String说明:获取表头某项的文本参数:CtlIndex:表头控件索引5.Function GetSumGridText(ByVal Row As Long, ByVal Col As Long) As String 说明:获取合计行某列的值参数:Row:行。
一般为1Col:分录列6.Function SetGridText(ByVal Row As Long, ByVal Col As Long, ByVal Value, [ByVal InterID As Long = 0], [ByVal sName As String = ""]) As Boolean 说明:设置分录某单元格的值,当分录为查找类型时,会把相应的信息一起携带到相应的位置,如当为物料代码时,它会携带物料的一些基本信息物料名称等。
参数:Row:分录行Col:分录列Value:设置的值。
如果该单元格是查找类型(单元格右边有搜索按钮图标)的,Value应设置为代码。
InterID:暂未使用sName:暂未使用7.Function SetHead(ByVal Index As Long, ByVal Value, [ByVal InterID As Long = 0], [ByVal sName As String = ""]) As Boolean说明:设置表头某项的值参数:Index:表头控件索引Value:设置的值。
如果该表头项是查找类型(录入框右边有搜索按钮图标)的,Value应设置为代码。
InterID:暂未使用sName:暂未使用8.Function SetSumGridText(ByVal Row As Long, ByVal Col As Long, ByVal Value) As Boolean说明:设置分录合计某列的值参数:Row:分录行。
一般为1Col:分录列Value:设置的值。
用户可实现自己功能的事件1.Public Event BillInitialize()单据初始化完成时激发该事件2.Public Event BillTerminate()单据卸载完成时激发该事件3.Public Event UserMenuClick(ByVal Index As Long, ByVal Caption As String) 当点击用户自定义的菜单时激发这个事件。
参数:Index:表示第几个菜单、由添加菜单的先后顺序决定,Caption:菜单项的标题,如何添加自定义菜单请参见方法AddUserMenuItem 4.Public Event LeveCell(ByVal Col As Long, ByVal Row As Long, _ ByVal NewCol As Long, ByVal NewRow As Long, Cancel As Boolean)当离开分录的一个单元格的时候激发这个事件参数:Col 分录的要离开列Row分录的要离开行NewCol 新的列NewRow新的行Cancel是否取消5.Public Event HeadChange(ByVal CtlIndex As Long, ByVal Value As Variant, ByVal bNewBill As Boolean, Cancel As Boolean)当表头的一个项目改变时激发这个事件参数:ctlIndex 表头字段索引Value 当前值bNewBill是否是新增单据Cancel是否取消6.Public Event GridChange(ByVal Col As Long, ByVal Row As Long, ByVal Value As Variant, ByVal bNewBill As Boolean, Cancel As Boolean)当表体的一个项目改变时激发这个事件参数:Col 分录的当前列Row分录的当前行Value 当前值bNewBill是否是新增单据Cancel是否取消7.Public Event BeforGridLookUp(ByVal Row As Long, ByVal Col As Long, ByVal nLookUpClsID As Long, Cancel As Boolean)在分录执行查找功能之前激发这个事件参数:Col 分录的当前列Row分录的当前行nLookUpClsID 当前查询的资料类型,Cancel是否取消8.Public Event EndGridLookUp(ByVal Row As Long, ByVal Col As Long, ByVal nLookUpClsID As Long)在分录完成查找功能之后激发这个事件参数:Col 分录的当前列Row分录的当前行nLookUpClsID 当前查询的资料类型9.Public Event BeforHeadLookUp(ByVal CtlIndex As Long, ByVal nLookUpClsID As Long, Cancel As Boolean)在表头的一个项目执行查找功能之前激发这个事件参数:ctlIndex表头字段索引nLookUpClsID 当前查询的资料类型Cancel是否取消10.Public Event EndHeadLookUp(ByVal CtlIndex As Long, ByVal nLookUpClsID As Long)在表头的一个项目完成查找功能之后激发这个事件,参数:ctlIndex表头字段索引nLookUpClsID 当前查询的资料类型11.Public Event BeforeSave(ByVal bNew As Boolean, ByRef ReturnCode As Long)在单据执行保存功能的时候激发这个事件参数:bNew 表示是否是新增单据ReturnCode 返回参数-1: 失败,结束单据保存;0:成功,继续单据保存1:成功返回,结束单据保存12.Public Event EndSave(ByVal BillNo As String)在单据执行完成保存功能的时候激发这个事件参数:BillNo表示单据的编号13.Public Event LoadBillEnd(ByVal ShowType As Long)在单据装载完成的时候激发这个事件参数:ShowType 单据显示状态0.新增 1.修改 2.查看 3.审核14.Public Event NewBillEnd()在单据新增完成的时候激发这个事件15.Public Event BeforeFillBillData(ByVal BillTransType As Long, ByVal BillInterID As Long)在装载某张单据之前激发这个事件参数:BillTransType 单据事务类型BillInterID单据内码16.Public Event EndBillFormActive()在显示单据之后激发这个事件17. Public Event BeforeSelBills(ByVal Para As KFO.Dictionary)功能:选单二次开发处理触发点:在单据选单获取记录集结束,填充单据之前触发参数说明:该事件返回一个KFO的Dictionary数据包,该数据包包含四个参数1、Para(“bNeedSumEntryData”) 是否要合并分录项。