1 / 15

插件开发(四)

插件开发(四). 叶玫 计算机工程技术学院. 插件开发案例. 课堂练习:为单据新建菜单命令“查看语言” (mnuLang) ,位于”数据”菜单下,单击该命令,根据安装的 K3 版本弹出提示。分别为“简体中文”、“繁体中文”、“英文” 分析: (1) 在向导中创建新的菜单命令,设置名称和位置 (2) 获取语言类型,需要使用辅助对象 K3Lib 的 GetK3Language 方法 (3)K3Lib 是辅助对象,通过单据或序时簿对象的属性获取 m_BillInterface.K3Lib. 插件开发案例. 关于 K3Lib 对象

Download Presentation

插件开发(四)

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. 插件开发(四) 叶玫 计算机工程技术学院

  2. 插件开发案例 • 课堂练习:为单据新建菜单命令“查看语言”(mnuLang),位于”数据”菜单下,单击该命令,根据安装的K3版本弹出提示。分别为“简体中文”、“繁体中文”、“英文” • 分析: (1)在向导中创建新的菜单命令,设置名称和位置 (2)获取语言类型,需要使用辅助对象K3Lib的GetK3Language方法 (3)K3Lib是辅助对象,通过单据或序时簿对象的属性获取 m_BillInterface.K3Lib

  3. 插件开发案例 • 关于K3Lib对象 K3Lib是金蝶k3 BOS的辅助对象之一,提供插件与金蝶K3交互,K3Lib有三个属性,分别代表三种对象,包括Net、User、Account • K3Lib实例.Net:返回网络对象,提供插件使用金蝶K/3的网络控制功能 • K3Lib实例.User:返回用户对象 • K3Lib实例.Account:返回帐套对象

  4. 插件开发案例 • K3Lib的GetK3Language方法 • 该方法没有参数,返回值类型为字符串(string) • 返回值为下面三个值之一:

  5. Private Sub m_BillInterface_MenuBarClick(ByVal BOSTool As K3ClassEvents.BOSTool, Cancel As Boolean) Select Case BOSTool.ToolName Case "mnuLang" '此处添加处理mnuLang 菜单对象的 Click 事件 Dim language As String Dim language2 As String language = m_BillInterface.K3Lib.GetK3Language Select Case language Case "CHS" language2 = "简体中文" Case "CHT" language2 = "繁体中文" Case "EN" language2 = "英语" End Select MsgBoxlanguage2, vbOKOnly, “语言版本” Case Else End Select End Sub MenuBarClick事件,单击菜单命令时触发 判断单击的是否为mnuLang命令 获得当前语言版本 根据不同的语种设置提示信息文本

  6. 插件开发案例-单据状态栏 • 准备案例:为单据状态栏加图标、设置状态栏的背景颜色 • 观察单据状态栏 单据状态栏被切割成若干个段,每段可以设置不同的图标;但只能设置状态栏整体的背景颜色

  7. 插件开发案例-单据状态栏 • 为单据状态栏添加图标和背景颜色,通过BillEvent对象的SetStatusBarInfo方法 • 该方法包含三个参数 参数一:整数;显示哪种图标。0为提示信息图标,1为警告图标 参数二:整数;图标显示在状态栏哪一栏,从1开始 参数三:状态栏的背景颜色 ,RGB值。例如vbRed

  8. 插件开发案例-单据状态栏 m_BillInterface.SetStatusBarInfo 0, 1, vbWhite m_BillInterface.SetStatusBarInfo 1, 2, vbRed

  9. 插件开发案例-单据状态栏 • 案例七:客户希望在单据信息栏上显示当前获得焦点的字段的值 • (1) 提示是单据头信息还是单据体信息 • (2)焦点在单据头时状态栏为白色;在单据体状态栏为黄色 • (3)如果焦点在单据体,状态栏上还要显示该列字段的中文标题

  10. 插件开发案例-单据状态栏 • 分析: • (1)使用字段获取焦点事件:GotFocus • (2)需要判断焦点在单据头还是单据体上 • (3)使用单据对象的SetStatusBarInfo根据情况设置状态栏颜色 • (4)使用单据对象的SetStatus方法,设置状态栏的文本 • (5)使用BosField对象的Caption属性,返回字段的中文标题

  11. 插件开发案例-单据状态栏 • GotFocus是单据对象(BillEvent)的事件。当单据上的任意字段获得焦点,都触发该事件 • GotFocus事件的参数列表包含6个参数,其中有3个参数在当前案例中需要使用 m_BillEvent_GotFocus(ByVal sKey As String, ByVal dctData As KFO.Dictionary, ByVal curDspValue As Variant, ByVal Col As Long, ByVal Row As Long, ByRef Cancel As Boolean) sKey:当前字段的关键名称 curDspValue:获得焦点的字段的值 Col:如果是单据体字段,则表示光标所在的列序号

  12. 插件开发案例-单据状态栏 • GotFocus事件的Col参数说明 • 当单据头字段获得焦点,Col返回-1 • 当单据体字段获得焦点,Col返回字段所在的列序号,该序号大于0 利用Col值来判断焦点所在的位置

  13. 插件开发案例-单据状态栏 Dim title As String Dim title2 As String If Col >= 0 Then title = "单据体信息——" title2 = m_BillInterface.BillEntrys(1).BOSFields(sKey).Caption m_BillInterface.SetStatusBarInfo 0, 2, vbYellow Else title = "单据头信息——" m_BillInterface.SetStatusBarInfo 0, 2, vbWhite End If m_BillInterface.SetStatus 2, title & title2 & curDspValue 通过Col值判断焦点在单据头还是单据体 获取当前单据体字段的中文标题 设置状态栏的图标和颜色 设置状态栏的图标和颜色 设置状态栏文本

More Related