2BizBox平台与插件开发概述

软件的平台化,是2BizBox ERP的重要发展方向之一。通过不断的优化2BizBox ERP软件体系架构,并对开发者开放完整的API开发接口,让2BizBox形成一个ERP应用平台和二次开发平台,让更多的合作伙伴和开发者投入到2BizBox ERP发展之中。有了完整的2BizBox开发平台,才能将厂商、合作伙伴、开发者、最终用户紧密的在同一个平台上共同协作,实现各自的价值。


目录


[隐藏]




概述

2BizBox ERP已经开始了平台化之路。之前,2BizBox已经提供了完整的API二次开发接口。通过API,开发者可以将2BizBox ERP后台和其他第三方应用程序进行无缝的系统集成。接下来,2BizBox还会开放整个客户端的二次开发平台,让开发者基于现有2BizBox ERP客户端进行快速开发和定制,创建自己的应用。再结合API,开发者与合作伙伴完全可以基于2BizBox前后台来创建完全属于自己的企业应用,同时充分利用2BizBox软件平台所提供的一切基础设施。

通过API和2BizBox客户端开发平台,开发者可以创建一系列自己的应用,或创建“插件”或“自定义模块”,插入到现有的2BizBox平台上,完善、修改和定制2BizBox ERP固有的软件流程、功能界面等等。通过下图,可以更加清晰的了解整个2BizBox软件开发平台的结构:

zabbix agent 二次开发 2bizbox二次开发教程_平台

功能

那么,2BizBox平台都提供了什么样的功能,通过2BizBox平台又可以做什么呢?以下罗列了一些典型的应用方法:

  • 2BizBox客户端平台
  • 创建一个全新的2BizBox客户端框架;
  • 修改2BizBox客户端功能入口,包括菜单、模块等;
  • 添加自定义模块;
  • 整合第三方功能模块;
  • 修改默认图形界面风格及内容;
  • 2BizBox服务器端平台
  • 创建自定义数据库表;
  • 创建各种自定义数据库查询;
  • 创建自定义数据结构;
  • 添加自定义数据字段;
  • 创建各类自定义数据报表;

有了这些激动人心的功能和接口,我们就可以充分利用2BizBox软件平台,“随心所欲”的创建自己的应用了。

客户端平台二次开发

下面介绍如何基于2BizBox客户端平台进行二次开发。我们不禁要问:既然有了API,它可以做任何事,那么为什么还需要2BizBox客户端平台呢?

大家知道,2BizBox客户端不仅提供整个2BizBox ERP所有的操作图形界面,还处理了大量的基础业务。例如:登录、安全控制、数据的调用与传输、异常的处理、程序界面的组织和显示,等等。如果我们想要开发一个全新的模块应用,如果仅仅基于API对后台进行交互,势必要自己写代码,来重新编写全部刚才提到的基础功能。这将是一个无法想象的艰巨任务,任何开发者都不可能快速、轻易完成。

而2BizBox客户端平台,就是将现有的2BizBox客户端程序进行平台化改造处理,使之成为一个功能完整的2BizBox客户端,同时有为开发者提供了丰富的开发接口,我们不必再重写登录、安全控制、数据交换、程序显示框架等等基础任务,而直接开发自己的图形界面和模块即可。从而,可以达到快速开发“自定义模块”和“插件”的目的。

下面我们就以实际代码来做一个例子。通过这个例子,大家就能够体会到,通过2BizBox客户端平台进行开发是多么容易的事情。

我们首先介绍如何创建和定制一个完全属于自己的2BizBox客户端框架。

在此之间,我们再次熟悉一下2BizBox客户端的结构。打开2BizBox客户端,我们可以看到,整个图形界面只有一个主窗口,我们称之为MainUI。在主窗口内部,有顶部的菜单栏、底部的状态栏、左边的模块栏,以及中间的内容栏。

zabbix agent 二次开发 2bizbox二次开发教程_netbeans_02

对于开发者来说,我们首先想到的,就是想创建一个干净的、纯净的、自定义的主窗口,我们可以定制要显示什么、不要显示什么,并任意添加自己的内容。要做到这一点非常容易:我们可以继承2BizBox客户端平台提供的主窗口类:AppMainUI。AppMainUI是一个干净的、具有完整功能的、没有任何内容的主窗口。它具有完整的登录、通讯、异常处理、显示框架、显示风格等内容,但是界面上却是一个完全空空的主窗口,我们可以在上面添加任何自定义功能。这正是我们想要的。

下面我们就亲自动手,通过简单的代码来尝试如何使用AppMainUI。不要被“写代码”吓到,即使您不是一个程序员,不动写代码,您也完全可以编写和运行本文中提到的例子,因为它非常简单。

创建窗口

启动Netbeans或Eclipse。如对此不熟悉,请先阅读2BizBox_API开发教程。在Netbeans中创建一个工程,并引入2BizBox平台所需的所有运行库文件。所需所有库文件都在这里可以下载:[[1]]。将接口库文件、环境库文件下载后解压,将其中的所有jar文件引入您的IDE工程即可。

然后,创建一个Java类,内容如下:


?


package          test;        


                  


         import          com.serva.bb2.gui.Main;        


         import          free.AppMainUI;        


                  


         public          class         MyMainUI          extends         AppMainUI {        


                  


                  @Override        


                  public         String getTitle() {        


                  return         "Hello 2BizBox"         ;        


                  }        


                  


                  public         static         void          main(String[] args) {        


                  Main.launchBizBox(MyMainUI.         class         .getName());        


                  }        


         }



是的,就这么简单,一个简单的2BizBox程序就创建完成了。其中,我们创建了新的Java类MyMainUI ,它继承于2BizBox客户端平台提供的AppMainUI主窗口类。我们重载了getTitle方法, 返回了一个新的窗口标题。最后,编写启动主函数main,其中用Main.launchBizBox方法来启动2BizBox主窗口。

编译,运行这个Java类。怎么样?奇迹发生了。首先,程序会显示一个完整的2BizBox登陆界面。此时,您可以输入连接信息,连接一台正在运行的2BizBox服务器。点击登录按钮后,一个我们自定义的全新主界面呈现在眼前。正如我们预期的那样:它具有完整的登录和显示功能,但内容空空。如下图:

zabbix agent 二次开发 2bizbox二次开发教程_api_03

这是一个干净的主窗体。但是,它具有完整的、基本的2BizBox客户端功能。它已经实现了登录、安全控制;它已经与服务器建立的通讯,并进行心跳连接;它已经获取了服务器和当前数据库的各种信息。只是,它没有显示任何内容而已。

设置logo

细心的读者可能已经注意到,这个空窗口虽然有完整的状态条,但是右上角并没有显示系统logo。下面我们稍微修改代码,加上logo:


?



package          test;        


                  


         import          com.serva.bb2.gui.Main;        


         import          free.AppMainUI;        


         import          free.FreeMenuBar;        


         public          class         MyMainUI          extends         AppMainUI {        


                  


                  public         MyMainUI() {        


                  FreeMenuBar menubar = getFreeMenuBar();        


                  //add logo here.        


                  addMenuBarLogo(menubar);        


                  }        


                  


                  @Override        


                  public         String getTitle() {        


                  return         "Hello 2BizBox"         ;        


                  }        


                  


                  public         static         void          main(String[] args) {        


                  Main.launchBizBox(MyMainUI.         class         .getName());        


                  }        


         }



上面的修改,仅仅是在构造函数中,加入了两句话。第一句话FreeMenuBar menubar = getFreeMenuBar()用来获取当前主窗口的主菜单,第二句话addMenuBarLogo(menubar);用来在主菜单上加入logo。再次运行代码,效果如下图:

zabbix agent 二次开发 2bizbox二次开发教程_netbeans_04

怎么样,右上角熟悉的“现代管理、世界共享”的2BizBox口号logo出现了。

添加主菜单

接下来,我们在主菜单上添加两个我们自己定义的菜单。在创建菜单、添加logo前面,添加以下几句话:


?



FreeMenuBar menubar = getFreeMenuBar();        


         menubar.add(         new         FreeRootMenu(         "文件"         ));        


         menubar.add(         new         FreeRootMenu(         "工具"         ));        


         menubar.add(         new         FreeRootMenu(         "帮助"         ));        


         //add logo here.        


         addMenuBarLogo(menubar);



好了。重新运行程序,我们的主菜单有内容了:

zabbix agent 二次开发 2bizbox二次开发教程_netbeans_05

添加子菜单

熟悉Java Swing编程的朋友,添加一个子菜单是很简单的。下面我们继续写代码:


?



public          MyMainUI() {        


                  FreeMenuBar menubar = getFreeMenuBar();        


                  menubar.add(createMenu(         "文件"         ));        


                  menubar.add(createMenu(         "工具"         ));        


                  menubar.add(createMenu(         "帮助"         ));        


                  //add logo here.        


                  addMenuBarLogo(menubar);        


         }        


                  


         private          FreeRootMenu createMenu(String text) {        


                  FreeRootMenu menu =          new         FreeRootMenu(text);        


                  for         (         int          i =          0         ; i <          10         ; i++) {        


                  JMenuItem item =          new         JMenuItem(         "子菜单"         );        


                  menu.add(item);        


                  }        


                  return         menu;        


         }


以上代码稍作修改。每个主菜单通过一个createMenu函数生成,里面添加了10个子菜单项。重新运行程序,我们的主菜单有子菜单了:

zabbix agent 二次开发 2bizbox二次开发教程_zabbix agent 二次开发_06

创建页面

有了主窗口、菜单,还是远远不够的。实际开发中,我们需要显示更多具体页面,来显示业务数据。下面,我们就在菜单项上面添加动作,来创建和显示一个子页面。

在2BizBox平台中,一个子页面的基类是ClientUI。我们可以继承它,或直接new一个ClientUI,显示在主窗口中。

下面,我们就在前面的菜单项上面添加动作,点击后,在程序中显示一个空白的子页面。修改创建菜单的循环,添加代码如下:


?



for          (         int         i =          0         ; i <          10         ; i++) {        


                  JMenuItem item =          new         JMenuItem(         "子菜单"         );        


                  item.addActionListener(         new         ActionListener() {        


                  


                  @Override        


                  public         void         actionPerformed(ActionEvent e) {        


                  ClientUI ui =          new         ClientUI();        


                  ui.setTitle(         "我的ERP我做主"         );        


                  showTab(ui);        


                  }        


                  });        


                  menu.add(item);        


         }



以上代码,给每一个菜单项添加一个动作,创建一个空白的页面,设置标题,并显示出来。运行,点击菜单,效果如下图:

zabbix agent 二次开发 2bizbox二次开发教程_服务器_07

接下来

接下来,我们可以做什么呢?其实,可以做任何事了。我们可以自己创建ClientUI页面,自己添加按钮、通过API从后台获得数据,并进行显示、编辑、处理、报表、打印....无所不能。难道不是么?接下来,就看您的想象力了。