77范文网 - 专业文章范例文档资料分享平台

使用K3BOS自定义控件示例-实现助手视图

来源:网络收集 时间:2020-04-21 下载这篇文档 手机版
说明:文章内容仅供预览,部分内容可能不全,需要完整文档或者需要复制内容,请下载word后使用。下载word有问题请添加微信号:或QQ: 处理(尽可能给您提供完整文档),感谢您的支持与谅解。点击这里给我发消息

使用K3BOS(v12+)实现助手视图

[仅供内部开发研究交流]

K3BOS 从 V12 起提供了自定义控件支持. 下面我们开发一个控件, 加入BOS单据中, 实现的\助手视图\的功能.

第一步, 我们先开发出一个控件.

1. 启动VB, 利用BOS插件向导, 创建一个插件, 命名为 K3TestDll.CBillPlugin.

2. 添加一个\控件\工程, 命名为 K3TestCtrl.CtlHelper

3. 调整控件外观. 我们将把这个控件添加到单据上, 所以你想要在单据上展示什么, 就可以在控件上添加什么. 我添加了一个文本框txtInfo, 准备用于展示物料信息; 添加一张图片, 用于展示物料图片; 此外还添加了一些按钮, 用于调用其他附加的功能.

修改控件的 UserControl_Resize() 方法, 以免大小改变时, 控件界面发生混乱.

4. 为了在控件中响应插件事件, 获取单据信息, 我们需要在控件中添加插件支持: 4.1 引用 k3classevents.dll, kfo10.dll, ms ado 2.8 库

4.2 添加插件接口对象:

Private WithEvents m_BillInterface As K3ClassEvents.BillEvent

4.3 添加一个公开接口, 以便初始化插件接口对象:

Public Function Init(ByVal obj As Object) On Error Resume Next Set m_BillInterface = obj Debug.Assert Err.Number = 0 End Function

4.4 插件本身的初始化:

Private WithEvents m_BillInterface As K3ClassEvents.BillEvent

Public Sub Show(ByVal obj As Object)

If UCase$(TypeName(obj)) = \ Set m_BillInterface = obj Else

MsgBox \ End If

End Sub

这样, 当单据加载时, 会初始化插件; 而插件又将单据接口对象委托给控件,我们可以在控件中处理单据的

种种事件,获取单据信息。

4.5 当单据加载自定义控件时, 在插件事件中初始化控件: '加载自定义控件时, 触发 AfterLoadDynamicCtl 事件 Private Sub m_BillInterface_AfterLoadDynamicCtl( _

ByVal sKey As String, ByVal objDynamicCtl As Object) 'sKey 是单据上自定义控件的FKey 'objDynamicCtl 指向控件实例

If sKey = \

Call objDynamicCtl.Init(m_BillInterface) '调用控件初始化方法, 将插件接口对象传递过去 End If

End Sub

4.6 最后, 我们在控件中处理单据事件, 实现自己的功能. 例如, 当用户在单据体各行之间切换分录时, 在助手视图上显示该物料的信息:

Private Sub m_BillInterface_GotFocus( _ ByVal sKey As String, _ ByVal dctData As KFO.IDictionary, _ ByVal curDspValue As Variant, _ ByVal Col As Long, _ ByVal Row As Long, _ Cancel As Boolean) On Error GoTo label_err With txtInfo

If dctData Is Nothing Then Exit Sub

If sKey = \ '是物料

.Text = \物 料: \ & \当前行: \

& \库 存: \ & \最高价: \ & \最低价: \ End If End With Exit Sub label_err:

MsgBox Err.Number & vbCrLf & Err.Description & vbCrLf & \ End Sub

在这里可以添加其他处理, 比如可以在自己的控件中展示物料的图片, 执行单据上查下推, 执行Action, 等等. 这些是BOS框架内早已包含的功能. 只要你对K/3和BOS及相关数据库足够熟悉, 就可以在这里实现任何其他功能.

4.7 编译插件和控件工程, 生成 .dll & .ocx , 我的是K3TestDll.dll, K3TestCtrl.ocx.

第二步我们把控件注册到单据中:

1. 打开K/3 BOS IDE, 新建单据

2. 在单据体中添加物料、计量单位、单价、数量、金额字段 3. 在单据头添加文本、制单人、日期字段

4. 在单据头添加通用控件下的“自定义控件”,在属性列表窗口中找到“注册”属性,浏览到K3TestCtrl.ocx, 打开,在列表框中出现K3TestCtrl.CtlHelper,打上勾,确定。这个过程跟设置单据插件一样。

5. 设置单据插件为K3TestDll.Dll.

6. 保存单据. 测试单据.

应该可以看到运行效果了:

百度搜索“77cn”或“免费范文网”即可找到本站免费阅读全部范文。收藏本站方便下次阅读,免费范文网,提供经典小说综合文库使用K3BOS自定义控件示例-实现助手视图在线全文阅读。

使用K3BOS自定义控件示例-实现助手视图.doc 将本文的Word文档下载到电脑,方便复制、编辑、收藏和打印 下载失败或者文档不完整,请联系客服人员解决!
本文链接:https://www.77cn.com.cn/wenku/zonghe/1002521.html(转载请注明文章来源)
Copyright © 2008-2022 免费范文网 版权所有
声明 :本网站尊重并保护知识产权,根据《信息网络传播权保护条例》,如果我们转载的作品侵犯了您的权利,请在一个月内通知我们,我们会及时删除。
客服QQ: 邮箱:tiandhx2@hotmail.com
苏ICP备16052595号-18
× 注册会员免费下载(下载后可以自由复制和排版)
注册会员下载
全站内容免费自由复制
注册会员下载
全站内容免费自由复制
注:下载文档有可能“只有目录或者内容不全”等情况,请下载之前注意辨别,如果您已付费且无法下载或内容有问题,请联系我们协助你处理。
微信: QQ: