




版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、标注ActiveX IXEActiveX DLLActiveX 控件5取用程序 向导ActiveX 文档 标注ActiveX IXEActiveX DLLActiveX 控件5取用程序 向导ActiveX 文档 TillActiveX 工档ExeDHTML应用程序IIS应用程序K/3 Wise插件开发和配置 919 7发表于2016-12-20 10:57:17 BOS开发复制链接只看楼主查看全部开发环境:K/3 Wise 13.0、K/3 Bos 开发平台、Visual Basic 6.0目录二次开发插件编程 二、代码演示 四、测试插件 五、插件事件(附录打开 Visual Basic 6.
2、0,新建工程 ActiveX DLL:新建工程新速I觊存最新I帮助国)命名为 FirstPlugin.class:IJ _ vbNcnt:0 vENoneIs - MultiUs0 - fTutArJATSLIbjectFl - )Jri +Fi=.r i =!f IJ _ vbNcnt:0 vENoneIs - MultiUs0 - fTutArJATSLIbjectFl - )Jri +Fi=.r i =!f aKT a 1引用 - BOSPl-uInsWai GonE-uKu. vbp可用的引用CAD:Visual Bazic F or Applic aticnEViiii:il B:i
3、3lc rijntime objects :rid pruizediJi-e:jVi Eu:al B :el c obj e ctz :mil proc elwe eOLE Autumati on1SC1 as eE vent eKi ng de e F ouiLdst i oil Obj sets 1. Ul;3E!illTi-:xrLsfei-icpoECit + ActiveX D:kt a Ob i2. 8 Litr:=d工?iS Helper COM Comp。工 Lint 1. U Type Li bi ary 工用 EAII UE Pro t ci c ol 1. 0 Tvp e
4、 Ll hr ary K3B03 FactTazkAcccHjiLtLili4 匚匚 tE*lVi 电NLibrm Tillr+iw TIE TTR R* +ATirm Till优先缴Mlcrcstif + Am咋工 D:+4 Objtjct s 2. 8 Lihrary优先缴定位: C: iFru i_:=uti Fil mzCommcirL FilesVsystem Vado ms:do 15. dll 语言:标淮已安装K/3 Wise,在VB 6.0菜单栏上会多出一个金蝶开发插件:查询S 国表 工具外接程序 窗口以 帮助其金螺郎於BUS,嘱曾日智法屈回行,列1与J函数说明工具Aeti Q
5、Ti开发向导出):.海红附开发文档电)一.打开金蝶开发向导,创建工业单据客户端插件(工业单据俗称“老单):幻雷H业单据中间层插件完成请点击“不一步金鲤V3-B0S优性开号向导招帮助您创建一个标淮的金蝶E/3-E0S插件 导支持卸建适用于金蝶时上的 VII.。丑不以上版本的耨伴.点击“下一步”,这里我们自定义一个菜单项“插件工具谙选择一种您想创建的金蝶K/3-B0S描件;金蝶E/3-B0S客户端插件金晚幻雷H业单据中间层插件完成请点击“不一步金鲤V3-B0S优性开号向导招帮助您创建一个标淮的金蝶E/3-E0S插件 导支持卸建适用于金蝶时上的 VII.。丑不以上版本的耨伴.点击“下一步”,这里我们
6、自定义一个菜单项“插件工具谙选择一种您想创建的金蝶K/3-B0S描件;金蝶E/3-B0S客户端插件金晚K73-B0S中间层插件C金叫K/3-B0S殳展服务/嚏粤V3工业单据零户端插件取消点击“确定”,选择类“FirstPlugin:指定一个全局的对象谙选择一个类,或者输入一个新的类名称口向导需要您提供一个全局的对象口请选择一个类,或者输入一个新的类名称,向导将使用这个类 作为全局对象口谙点击下一步”继续.欢迎使用金蝶K/3-B0S插件开发向导类文件名:取消 IV3-B0S舞件开发向导iratPlu3金蝶引3f空翻胖开意向导壮金蝶V3-B0S插件开发向导信菜单您可以增加新的菜单,并指定菜单名称向
7、壮金蝶V3-B0S插件开发向导信菜单您可以增加新的菜单,并指定菜单名称向更改自定义菜单名称*噌加索单项1r噌加菜单项2厂噌加案单项3厂噌加案单项4厂噌加菜单项5请点击“下一步”鬟斌. .王下一步理) | 完成1点击下一步,选择事件UserMenuClick ”J3金蝶/3 fos括件开裳向导选择事件- I单招请选择您希望在插件中处理的单据插件事件O事件BillIrLitPilizeBi 11 Term iruat eUs erMemiClickLeveCellHe aiCh:rLgeBillIrLitPilizeBi 11 Term iruat eUs erMemiClickLeveCellH
8、e aiCh:rLgeGr i ilChiiiLgeEe t i:ir(Tri i3L u u Id J pEndGri dLookUpEe f urHeailLuu kljpErLidKe :tdL 0口 kljpBeforeSivePublic Event UserMenuClick(ByVal Inde A Long, ByVdl Caption As String)当点击用户自定义的菜单时谢发这个事件.参数:Index:表示第几个菜单、由添加菜单的先后顺序决定,CEiptium菜单项的标题,如何雅加自定义菜单请参见 法口 ddlJs日同日riulteeLoalBillEnd诘点击“下一
9、步”继续口取消| 上一步回 |下一步地)| 完成Q完成向导。二、代码演示代码编写如下:配置路径:供应链-外购入库单函数功能:插件工具-根据长、宽、厚自动计算批号定义 插件对象接口.必须具有的声明,以此来获得事件Private WithEvents m_BillTransfer AsK3BillTransfer.BillDim F55 As Long, F55Text As String 长 Dim F56 As Long, F56Text As String 宽 Dim F57 As Long, F57Text As String 高 Dim FDate As Long, FDateText
10、As String 日期 Dim FBatchNo As String 批号 Dim FItemID As Long, FNumber As String 物料编码 Dim FBatchManager As Boolean 是否采用业务 批号管理 Dim str As StringPublic Sub Show(ByVal oBillTransfer As Object)接口实 现 注意:此方法必须存在,请勿修改 Set m_BillTransfer = oBillTransfer End SubPrivate Sub Class_Terminate()释放接口对象 注意:此方法必须存在,请勿
11、修 改 Set m_BillTransfer = NothingEnd SubPrivate Sub m_BillTransfer_BillInitialize() * 开始设置菜单TODO:请在此处添加* m_BillTransfer.AddUserMenuItem 自动批号,TODO:请在此处添加I* 9击汜害苗的 * 结束设置菜单代码响应事件 BillInitialize F55 = GetCtlIndexByFld(FEntrySelfA0155, True) F56 = GetCtlIndexByFld(FEntrySelfA0156, True) F57 = GetCtlIndex
12、ByFld(FEntrySelfA0157, True) FBatchNo = GetCtlIndexByFld(FBatchNo, True) FDate = GetCtlIndexByFld(FDate, False) FItemID = GetCtlIndexByFld(FItemID, True)End SubPrivate Sub m_BillTransfer_UserMenuClick(ByVal Index As Long, ByVal Caption As String) TODO:请在此处添加代码响应事件 UserMenuClick SelectCase Caption Ca
13、se 自动批号此处添加处理批号生成菜单对象的Click事彳牛With m_BillTransferFor i = 1 To1000If .GetGridText(i, FItemID) = ThenExitForEnd If从物料表检测是否采用业务批次管理DimstrSQL As String 用于执行 SQLDim rs AsADODB.RecordsetFNumber = FNumber = .GetGridText(i,FItemID)strSQL = strSQL = SELECT FBatchManagerFROM t_ICItem WHERE FNumber= & FNumber
14、& Set rs =SQLHelper.ExecuteSQL(strSQL, )If rs.EOF = FalseThenFBatchManager = rs.Fields(FBatchManager)EndIfSet rs = NothingF55Text = .GetGridText(i,F55)F56Text = .GetGridText(i, F56)F57Text=.GetGridText(i, F57)If F55Text = Then F55Text = 0IfF56Text = Then F56Text = 0If F57Text = Then F57Text =0FDateT
15、ext = Replace(.GetHeadText(FDate), -, )If(FBatchManager = True) Then.SetGridText i, FBatchNo, F55Text & -& F56Text & - & F57Text & - & FDateTextEndIfNext End With Case Else End SelectEndSub*获取分录行数FunctionFunctionGetEntryMax() As LongDim k As LongDim iFItemID As LongDim oEntryCtl AsVariantDim maxrow
16、As Long 最大行For k = LBound(m_BillTransfer.EntryCtl) ToUBound(m_BillTransfer.EntryCtl) IfUCase(m_BillTransfer.EntryCtl(k).FieldName) = UCase(FItemID) Then 物料代码所在歹 UiFItemID = k Exit For End IfNext koEntryCtl = m_BillTransfer.EntryCtlmaxrow = UBound(oEntryCtl(iFItemID).DInterID)获取表体最大行 GetEntryMax = ma
17、xrowEndFunction*返回单据字段顺序(isEntry True是表体)*Public FunctionGetCtlIndexByFld(ByVal fldName As String, Optional ByVal isEntry As Boolean = False) As LongDim ctlIdx As LongDim i As IntegerDim isFind As BooleanDim vValue As VariantfldName = UCase(fldName)isFind = FalseWith m_BillTransferIf isEntry Then Fo
18、r i = LBound(.EntryCtl) To UBound(.EntryCtl) If UCase(.EntryCtl(i).FieldName) = fldName Then ctlIdx=.EntryCtl(i).FCtlOrder isFind = True Exit For End If Next iElse For i = LBound(.HeadCtl) To UBound(.HeadCtl) If UCase(.HeadCtl(i).FieldName)= fldName Then ctlIdx = .HeadCtl(i).FCtlIndex isFind = True
19、Exit For End If Next iEnd IfEnd WithIf isFind = True ThenGetCtlIndexByFld = ctlIdxElseGetCtlIndexByFld = 0End IfEnd Function url = -/url 三、配置插件在 Visual Basic 6.0 生成 DLL :2文件 编辑1)视图。工程笔格式百 新建工程也)Ctrl+N室 打开工程一.Ctrl十口生版加工程卜移除工程优保存工程也)工程另存为电)保存 FirstTlugin. cis 嵯fCtrl+S FirstFlugzin. cis 另存为(A.录保存选择9保存更
20、改的脚本(H)Ctrl+F二昌打印9一.Ctrl+F今 打印设置如一._生成F irstFlugin. dll .r生成工程组启动K/3 Wise BOS开发平台,打开外购入库单,并进行插件配置:至此,插件开发和配置完成!五、插件配置后未生效1.在插件配置管理提示没有找到文件,或文件没有正确注册” 解决方法:插件dll名称命名要和工程名称一致。比如工程名称忆己己己”,其中有一个类“bbb”,dll命名为“aaa”,配置插件后,显示完整名称“aaa.bbb”,提示aaaa 没有找到文件,或 文件没有正确注册”。修改dll名称“aaa”为“aaaa”,重新配置插件,即可修复问题。六、插件事件附录附
21、上K/3 Wise工业单据开发事件说明:序 号事件函数描述1BillTerminatePublic Event BillTerminate()单据卸载完成时激 发该事件2UserMenuClickPublic EventUserMenuClick(ByVal Index As Long, ByVal Caption As String)当点击用户自定义 的菜单时激发这个 事件。参数:Index:表示第几个 菜单、由添加菜单 的先后顺序决定, Caption:菜单项的 标题3LeveCellPublic Event LeveCell(ByVal Col As Long, ByVal Row As
22、 Long, ByVal NewCol As Long, ByVal NewRow As Long, Cancel As Boolean)当离开分录的个 单元格的时候激发 这个事件 参数Col分录的要离开 列Row分录的要离 开行NewCol新的列 NewRow新的行 Cancel是否取消4HeadChangePublic Event HeadChange(ByVal CtlIndex As Long, ByVal Value As Variant,当表头的一个项目 改变时激发这个事 件ByVal bNewBill As Boolean, Cancel As Boolean)参数IctlInd
23、ex表头字段 索引Value当前值 bNewBill是否是 新增单据 Cancel是否取消5GridChangePublic 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是否取消6BeforGridLookUpPublic EventBeforGrid
24、LookUp(ByVal Row As Long, ByVal Col As Long, ByVal nLookUpClsID As Long, Cancel As Boolean)在分录执行查找功 能之前激发这个事 件 参数Col分录的当前列 Row分录的当前 行 nLookUpClsID 当 前查询的资料类 型,Cancel是否取消7EndGridLookUpPublic EventEndGridLookUp(ByVal Row As Long, ByVal Col As Long, ByVal nLookUpClsID As Long)在分录完成查找功 能之后激发这个事 件参数Col分录
25、的当前列 Row分录的当前 行nLookUpClsID 当 前查询的资料类型8BeforHeadLookUpPublic Event BeforHeadLookUp(ByVal CtlIndex As Long, ByVal nLookUpClsID As Long, Cancel As Boolean)在表头的一个项目 执行查找功能之前 激发这个事件 参数ctlIndex表头字段 索引nLookUpClsID 当 前查询的资料类型 Cancel是否取消9EndHeadLookUpPublic EventEndHeadLookUp(ByVal CtlIndex As Long, ByVal n
26、LookUpClsID As Long)在表头的一个项目 完成查找功能之后 激发这个事件, 参数ctlIndex表头字段 索引nLookUpClsID 当 前查询的资料类型10BeforeSavePublic Event BeforeSave(ByVal bNew As Boolean, ByRef ReturnCode As Long)在单据执行保存功 能的时候激发这个 事件 参数bNew表示是否是 新增单据ReturnCode 返回 参数-1:失败,结 束单据保存; 0:成功,继续单 据保存 1:成功返回,结 束单据保存11EndSavePublic Event EndSave(ByVal
27、BillNo As String)在单据执行完成保 存功能的时候激发 这个事件参数|8口山。表示单据的 编号12LoadBillEndPublic Event LoadBillEnd(ByValShowType As Long)在单据装载完成的 时候激发这个事件 参数ShowType 单据 显示状态0.新增1.修改2.查看3.审 核13NewBillEndPublic Event NewBillEnd()在单据新增完成的 时候激发这个事件14SetMenuBarCtlPropEndPublic EventSetMenuBarCtlPropEnd(ByVal ShowType As Long,
28、ByVal BillChecked As Boolean)在单据设置菜单、 工具条各属性完成 的时候激发这个事 件参数ShowType 单据 显示状态0.新增1.修改2.查看3席 核BillChecked 单据 是否已被审核15BeforeFillBillDataPublic EventBeforeFillBillData(ByVal BillTransType As Long, ByVal BillInterID As Long)在装载某张单据之 前激发这个事件 参数 BillTransType 单 据事务类型 BillInterID 单据内 码16EndBillFormActivePublic EventEndBillFormActive()在显示单据之后激 发这个事件17GridFormatPublic Event GridFormat(ByVal Dest As Long, ByVal Col As Long, ByVal Row As Long)在设置单据体格式 后激发这个事件 参数:DestCol要设置格式的 目标歹URow要设置格式 的目标行18RefreshControlPublic Event RefreshControl()Public EventRefreshControl()19BeforeEntrySplitPublic Even
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2025年低空经济生态补偿机制构建与飞行活动监管协同策略报告
- 低空经济2025行业趋势报告:无人机与传统交通融合的协同创新路径与展望
- 2025北京市育英学校科学城学校招聘考试模拟试题及答案解析
- 2025年低空经济无人机配送产业政策与市场潜力分析报告
- 2025年跨境贸易保证合同
- 2025年港口船舶垃圾回收处理合同协议
- 2025年风电项目环境影响后评价报告与绿色旅游发展报告
- 2025年低空无人机电力巡检技术升级与市场规模报告
- 2025年新能源汽车充电桩行业市场前景与市场机遇研究报告
- 2025版低空经济「航空服务」市场潜力报告
- DL-T5588-2021电力系统视频监控系统设计规程
- 医学伦理与医生护士职业道德的边界探讨
- 母婴护理中心(月子会所)项目实施方案
- 作业指导书管理规范规章制度
- 篮球空白战术板
- 医保工作各小组和医保相关制度
- 2023年江苏泰州现代农业发展集团有限公司招聘笔试题库含答案解析
- 第五章 亲核取代反应
- 医院医疗设备购置申请表(采购单)
- 2022年中交营口液化天然气有限公司招聘笔试题库及答案解析
- 《消防安全技术实务》课本完整版
评论
0/150
提交评论