概述
单据二次开发是针对现目前单据的一些功能无法满足一些客户的特殊要求,同时分公司又有能力进行二次开发而提出的,这样既可以在现有的系统不做变动的情况下面满足用户的需求,同时也增强了系统的稳定性。
注意:本篇所介绍所用到的动态连接库名为:K3BillTransfer.dll
通过该说明文档,你可以了解到
1. 如何通过K3BillTransfer组件在录单过程中对单据上各项目加以控制。
2. 如何通过K3BillTransfer组件实现自定义功能菜单。
3. 如何通过K3BillTransfer组件控制数据的保存。
4. 应用示例。
该文档阅读的适用对象
需要在K/3工业供需链系统单据上进行二次开发的开发者。
●属性
1.Property Cnnstring As String
当前数据库的MMTS.PropsString连接串。
2.Property SystemName As String
当前系统名称。
3.Property LastInfo As String
最后一次系统返回的各种信息
4.Property BillForm As Object
整个单据窗体对象。可通过该对象访问单据上的任何一个对象,包括控件,菜单。
共有的方法有:InrtRow(),在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.tunProperty 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 AddUrMenuItem(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.cvbFunction GetHeadText(ByVal CtlIndex As Long) As String
说明:
获取表头某项的文本
参数:
CtlIndex:表头控件索引
5.Function GetSumGridText(ByVal Row As Long, ByVal Col As Long) As String
说明:
获取合计行某列的值
参数:
Row:行。一般为1
Col:分录列
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
说明:
设置表头某项的值
参数:
葫芦小金刚6
Index:表头控件索引
Value:设置的值。如果该表头项是查找类型的,Value应设置为代码。
InterID:暂未使用
sName:暂未使用numeric
8.Function SetSumGridText(ByVal Row As Long, ByVal Col As Long, ByVal Value) As Boolean
说明:
设置分录合计某列的值
参数:
Row:分录行。一般为1
Col:分录列
Value:设置的值。
●用户可实现自己功能的事件
1.Public Event BillInitialize()
单据初始化完成时激发该事件
2.Public Event BillTerminate()
单据卸载完成时激发该事件
3.Public Event UrMenuClick(ByVal Index As Long, ByVal Caption As String)
当点击用户自定义的菜单时激发这个事件。
参数:
Index:表示第几个菜单、由添加菜单的先后顺序决定,
Caption:菜单项的标题,如何添加自定义菜单请参见方法AddUrMenuItem
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.品tangPublic 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)
polls在分录执行查找功能之前激发这个事件
参数:
Col 分录的当前列
Row分录的当前行
nLookUpClsID 当前查询的资料类型,
Cancel是否取消aftereffect
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)