1.接口及参数说明
MainFunction(ByVal sKey As string,oList AsObject,Byref bCancel as Boolean)
sKey : 菜单的Key值,也就是菜单名
oList : K3List控件
bCancel:是否取消后继操作标志
2.使用方法
序时薄的二次开发是通过菜单挂接组件来实现的。对于使用者需要按照以下步骤进行:
1).在t_BandToolMapping中的FcomName填入需要调用组件的名称,注意:不要覆盖原有内容,要在原有内容上用“| ”分割后加入自己的组件,可以加多个组件。第一个插件前一定要加“|”,因为之前的部分是记录了其他信息。
2).二次开发组件必须实现MainFunction(ByVal sKey As string,oList AsObject,Byref bCancel as Boolean)方法。要终止事件,请将bCancel设置为true。
3).oList为一个即是ICList,可以使用其中的任何Public方法。
比方说 GetSelData 为取得选取的对象
3.使用范例
例如外购入库需要对"back"MENU做二次开发,则增加应该为
Update a set a.FComName=a.FComName+Case When Right(a.FComName,1)='|' then 'K3GMSPTransBill.GMSPTransList|' else '|K3GMSPTransBill.GMSPTransList|' end
from t_BandToolMapping a left join t_MenuToolBar b on a.FToolID = b.FToolID
where FName = 'Back' and FComName not like '%K3GMSPTransBill.GMSPTransList%' and a.FID=82
(FID取iclisttemplate.fmenuID)
然后在组件K3GMSPTransBill.GMSPTransList中实现Public的MainFunction方法
下面是序时簿插件的示例
插件示例:
Public Function MainFunction(ByVal sKey As String, oList As Object, ByRef bCancel As Boolean)
Dim vectBill As KFO.Vector
Dim lmul As Long
' Dim rs As ADODB.Recordset
Dim InBatch As Form
Set InBatch = New InBatch
Set OBJ = CreateObject("K3Connection.AppConnection")
'菜单响应
Select Case sKey
Case "FMenuPC" '和你在数据库里插入的FNAME一样
'通过Set vectBill = oList.GetSelected 可以获取当前选中序时薄数据
'返回记录集方式
'Set rs = obj.Execute("select * from t_icitem")
'执行存储过程方式
' obj.Execute3 ("exec KY_PlanQty")
End Select
End Function
联系客服