如何在Add-on插件中实现业务关联

  熟悉Sbo操作的人都知道,在Sbo中,不管是Sbo系统程序,还是自定义的业务报表,只要业务对象的主键显示在屏幕上,往往这个字段只要存在当前值,在它的前面都有一个黄色的右向箭头,点击这个箭头,就可以关联到这个主键关联的业务对象主操作界面上。

  Sbo称呼这个黄色的右向箭头为关联按钮(linkButton),在Sbo UI SDK API中,专门有一种控件类型就是linkButton,就是SAPbouiCOM.LinkedButton。那么在Sbo Add-on开发中,到底如何实现linkButton同实际的业务对象的关联呢--点击这个linkButton,就可以关联到这个主键关联的业务对象主操作界面上?

  如前所述,linkButton需要同一个编辑或者显示控件对象的当前值关联,还要同相关的业务对象关联。而支持编辑或者显示的控件对象分为两类:单控件对象,如下拉列表控件SAPbouiCOM.ComboBox、">文本编辑控件SAPbouiCOM.EditText等;表格控件对象,主要包括Matrix和Grid。在Sbo中,上述两种控件对象都可能同业务对象实现基于linkButton的关联,只不过,表格控件对象的业务关联往往需要Matrix或者Grid的一列关联到指定的业务对象。

  在Sbo UI开发中,上述的两种控件只是在绑定数据源的时候有所区别,单控件对象或者表格控件的列对象同linkButton的绑定的过程都差不多。

  1、单控件对象

  声明单控件对象和linkButton对象

  Dim oCombo As SAPbouiCOM.ComboBox

  Dim oLinked As SAPbouiCOM.LinkedButton

  新增一个下拉列表框

  oItem = oForm.Items.Add("ItemLink",  SAPbouiCOM.BoFormItemTypes.it_COMBO_BOX)

  oItem.Left = 100

  oItem.Top = 110

  oItem.AffectsFormMode = False

  oItem.LinkTo = "Linked"

  新增一个连接按钮,位于上述的下拉列表的前面位置

  oItem = oForm.Items.Add("Linked",  SAPbouiCOM.BoFormItemTypes.it_LINKED_BUTTON)

  oItem.Left = 80

  oItem.Top = 110

  oItem.LinkTo = "ItemLink"

  绑定编辑/显示对象到业务对象:物料主数据,并将关联到物料主数据主操作界面

  oLinked = oItem.Specific

  oLinked.LinkedObject = SAPbouiCOM.BoLinkedObject.lf_Items

  2、表格空间的列对象

  声明一个Matrix控件和一个Matrix空间列对象,以及一个linkButton对象

  Dim oMatrix As SAPbouiCOM.Matrix

  Dim Column As SAPbouiCOM.Column

  Dim oLinked As SAPbouiCOM.LinkedButton

  添加一个Matrix控件

  oItem = oForm.Items.Add("PCMatrix", SAPbouiCOM.BoFormItemTypes.it_MATRIX)

  oItem.Left = 30

  oItem.Width = 360

  oItem.Top = 150

  oItem.Height = 400

  oMatrix = oItem.Specific

  为Matrix添加一个列对象

  oColumns = oMatrix.Columns

  oColumn = oColumns.Add("ItemCode", SAPbouiCOM.BoFormItemTypes.it_EDIT)

  oColumn.TitleObject.Caption = "物料编码"

  oColumn.Width = 30

  oColumn.Editable = True

  绑定列对象到业务对象:物料主数据,并将列链接到物料主数据系统界面

  oLink = oColumn.ExtendedObject

  oLink.LinkedObject = SAPbouiCOM.BoLinkedObject.lf_Items

  上述代码实现了控件对象当前值同相关业务的关联--关联到业务对象的Sbo主处理界面而无法实现从相关业务对象处理界面中回调数据,对于这些控件对象该如何同数据源进行绑定,以及在信息录入操作时如何实现对业务对象选择界面回取信息,不在本文中讨论。

时间: 2024-10-31 02:01:53

如何在Add-on插件中实现业务关联的相关文章

如何在treeview,combox等控件的add,insert方法中插入其它属性?

问题描述 如何在treeview,combox等控件的add,insert方法中插入其它属性?我是新手,请各位大侠帮助.问题:我的数据库表abc为Idint,索引,唯一值strIndexvarchar(20),索引,唯一值strNamevarchar(20)可重复我的treeview里的显示为strName的文本.当我选择treeview的某一项做操作,比如删除,我想使用sql语气:deleteabcwhereId=?或者deleteabcwherestrIndex=?但我如何在treeview

如何在IBM Workload Deployer中为虚拟应用程序模式开发插件(下)

使用部件和节点部件 将一个包与插件捆绑在一起的方式是使用部件 或节点部件.config.json 文件中的 packages 元素用于指定部件.节点部件或二者的一个集合.部件只是一组与一个特定角色或依赖关系有关联的文件,一般为脚本和二进制文件.部件由http://www.aliyun.com/zixun/aggregation/13999.html">工作负载代理安装.节点部件是一组脚本,主要用于在部署部件之前安装和配置操作系统和基础软件.节点部件由激活脚本安装.部件和节点部件的脚本都封装

如何在 ASP.NET MVC 中集成 AngularJS(3)

今天来为大家介绍如何在 ASP.NET MVC 中集成 AngularJS 的最后一部分内容. 调试路由表 - HTML 缓存清除 就在我以为示例应用程序完成之后,我意识到,我必须提供两个版本的路由表:一个运行在调试模式的应用程序下和一个运行在发布模式的应用程序下.在调试模式下,JavaScript 文件在未使用压缩功能的情况下会被下载.如果想要调试并在 JavaScript 控制器中设置断点,这是必须的.事实上,路由表的产生版本也出现了一些挑战,由于产生路由代码使用的是 JavaScript

如何在 ASP.NET MVC 中集成 AngularJS(2)

在如何在 ASP.NET MVC 中集成 AngularJS(1)中,我们介绍了 ASP.NET MVC 捆绑和压缩.应用程序版本自动刷新和工程构建等内容. 下面介绍如何在 ASP.NET MVC 中集成 AngularJS 的第二部分. ASP.NET 捆绑和压缩 CSS 和 JavaScript 的捆绑与压缩功能是 ASP.NET MVC 最流行和有效的特性之一.捆绑和压缩降低了 HTTP 请求和有效载荷的大小,结果是可以更快和更好的执行 ASP.NET MVC 的网站.有许多可以减少 CS

如何在 ASP.NET MVC 中集成 AngularJS(1)

介绍 当涉及到计算机软件的开发时,我想运用所有的最新技术.例如,前端使用最新的 JavaScript 技术,服务器端使用最新的基于 REST 的 Web API 服务.另外,还有最新的数据库技术.最新的设计模式和技术. 当选择最新的软件技术时,有几个因素在起作用,其中包括如何将这些技术整合起来.过去两年中,我最喜欢的一项技术就是设计单页面应用(SPA)的 AngularJS.作为一个微软stack开发者,我也是使用 ASP.NET MVC 平台实现 MVC 设计模式和并进行研究的粉丝,包括它的捆

如何在FOXPRO的REPORT中實現列印條碼功能

如何在FOXPRO的REPORT中實現列印條碼功能 作者﹕CCBZZP       以下是我以前做的一個在FOXPRO的FORM調用REPORT中實現列印條碼功能(主要是39條碼),現在將代碼共享給大家,希望能給各位帶來幫助! 1. 首先將字体文件C39HDW3.TTF拷貝到你的電腦的FONTS目錄下.2. 在窗体FORM中新增加兩個程序BC_CODE39和BC_OCODE393. 程序BC_CODE39的內容是:  Parameters m  rtnp = THISFORM.BC_OCode3

ESFramework使用技巧(2) - 在插件中使用NHibernate

我们来讨论一下这种情景,你采用基于ESFramework的4层架构进行应用开发,你分析用户的需求,并将其分类整理为几大块,考虑每一块使用一个功能插件来完成.在这几个插件中,有个插件需要访问某个数据库,并且只有这个插件需要访问这个数据库,根据插件的"自治"性质,你不想将本插件中的数据访问"上升蔓延"到应用程序(FS),而是让它"仅仅"在本插件中,这样,无论是对FS还是插件都是有好处的--FS自己不需要访问数据库(日志记录除外),插件"自治

如何在MVC应用程序中使用Jquery_jquery

前言:转眼间,已经是11月中旬了,也从今天开始我要继续在研究ASP.NET MVC的细节用法,所以将这些读书笔记和个人心得写成博客,让大家也能学习到东西,我阅读的书籍是:ASP.NET MVC高级编程,下面我就说说MVC中如何使用JavaScript和Jquery.还有我们现在经常使用的Ajax. 1.Ajax初步介绍 (1) 现在我们创建的Web应用程序几乎都要用到Ajax技术,从技术上面讲,Ajax代表异步JavaScript和XML(Asynchronous JavaScript and

如何在Ubuntu 14.04中安装最新版Eclipse

想必很多开发人员都知道,Ubuntu 软件源中提供的并不是最新版本的 Eclipse,本教程就教大家如何在 Ubuntu 14.04 中快速安装 Eclipse 官方发布的最新版本. 到目前为止,Eclipse 的官方最新版本为 Eclipse Kepler (4.3.2),我们可以使用如下步骤在 Ubuntu 14.04 或其它 Ubuntu 版本中进行快速安装. 1.安装OpenJDK Java 7 如果你的系统中没有安装 Java,我们需要按如下步骤事先安装好 OpenJDK Java 7