2BizBox平台与插件开发概述

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

目录

[隐藏]

  • 1 概述
  • 2 功能
  • 3 客户端平台二次开发
    • 3.1 创建窗口
    • 3.2 设置logo
    • 3.3 添加主菜单
    • 3.4 添加子菜单
  • 4 创建页面
  • 5 接下来

概述

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

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

功能

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

  • 2BizBox客户端平台

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

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

客户端平台二次开发

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

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

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

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

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

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

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

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

创建窗口

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

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

?
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
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服务器。点击登录按钮后,一个我们自定义的全新主界面呈现在眼前。正如我们预期的那样:它具有完整的登录和显示功能,但内容空空。如下图:

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

设置logo

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

?
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
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。再次运行代码,效果如下图:

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

添加主菜单

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

?
1
2
3
4
5
6
FreeMenuBar menubar = getFreeMenuBar();
menubar.add(new FreeRootMenu("文件"));
menubar.add(new FreeRootMenu("工具"));
menubar.add(new FreeRootMenu("帮助"));
//add logo here.
addMenuBarLogo(menubar);

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

添加子菜单

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

?
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
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个子菜单项。重新运行程序,我们的主菜单有子菜单了:

创建页面

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

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

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

?
1
2
3
4
5
6
7
8
9
10
11
12
13
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);
}

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

接下来

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

2BizBox平台与插件开发概述相关推荐

  1. spark项目实战:电商分析平台之项目概述

    spark项目实战:电商分析平台之项目概述 目录 项目概述 程序架构分析 需求解析 初始代码和完成代码存放在github上面 1. 项目概述 在访问电商网站时,我们的一些访问行为会产生相应的埋点日志( ...

  2. matlab仿真的英文文献,matlab 外文翻译 外文文献 英文文献 MATALAB 混合仿真平台控制算法的概述...

    matlab 外文翻译 外文文献 英文文献 MATALAB 混合仿真平台控制算法的概述 MATALAB 混合仿真平台控制算法的概述 MATALB 混合仿真平台,即为将硬件引入到仿真回路里的半实物仿真系 ...

  3. 【四足机器人】SOLO技术详解--(1)介绍(2)平台和机器人概述【翻译】

    摘要 我们提出了一个新的开源机器人的腿部力矩控制系统,这个系统的特点是低成本及结构简单.这个系统由高力矩无刷直流舵机和适合阻抗调节和力矩控制的低传动结构组成.同时我们也设计了一个适应冲撞的新型足底传感 ...

  4. 用qemu模拟Intel x86平台实验环境 —— 概述

    文章系列: 用qemu模拟Intel x86平台实验环境 -- 概述 用qemu模拟Intel x86平台实验环境 -- 启动系统 用qemu模拟Intel x86平台实验环境 -- 加载并运行app ...

  5. matlab中的routte,matlab外文翻译外文文献英文文献MATALAB混合仿真平台控制算法的概述...

    <matlab外文翻译外文文献英文文献MATALAB混合仿真平台控制算法的概述>由会员分享,可在线阅读,更多相关<matlab外文翻译外文文献英文文献MATALAB混合仿真平台控制算 ...

  6. 基于海康综合管理平台web插件开发的问题

    > ## 概述 我们做视频监控开发一般就是基于后台开发语言的SDK开发,以CS形式展现,但是现在越来越多的系统都是要在web端展示视频接口,实现方式基本上分为web插件开发.API接口地接(通过 ...

  7. Android平台第三方插件开发指导(dcloud)

    技术架构 HTML5+ 基座扩展采用三层结构,JS层.PluginBridge层和Native层. 三层功能分别是: JS层: 在Webview页面调用,触发Native层代码,获取执行结果. Plu ...

  8. 【.Net平台下插件开发】-MEF与MAF初步调研

    背景 Team希望开发一个插件的平台去让某搜索引擎变得更好.主要用于采集一些不满意信息(DSAT)给Dev.这些信息会由不同的team提供不同的tool分析.有的提供仅仅是一个website,有的提供 ...

  9. [黑莓开发之路][01][黑莓开发平台介绍][01][概述]

    概述 RIM推出新一代BlackBerry智能手机的同时,也重新整合了BlackBerry开发平台,使BlackBerry程序开发不再局限于J2ME程序.简单来说,黑莓开发平台分成三个版块:Black ...

最新文章

  1. 扩增子统计绘图3热图:样品相关分析,差异OTU/ASV
  2. 创建oracle数据库有哪些方法,oracle11g创建数据库的方法-Oracle
  3. 让你的插件兼容AMD, CMD ,CommonJS和 原生 JS
  4. 【opencv】16.截取图像中的一个roi区域时,判断该roi是否越界
  5. 梯度下降法和随机梯度下降法的区别
  6. 关于zbar的libzbar.a不支持ipnone5的64bit问题
  7. 二阶振荡环节的谐振频率_【干货分享】晶体谐振器振荡频差的原因及对策
  8. 【Linux】一步一步学Linux——pstack命令(261)
  9. 【floyd模板】哈利·波特的考试 (25 分)
  10. CF1120D Power Tree(树形DP/构造+差分+最小生成树)
  11. 使用cardme读写VCard文件,实现批量导入导出电话簿
  12. python输出由1234组成的三位素数_编写程序,输出所有由 1 、 2 、 3 、 4 这 4 个数字组成的素数,并且在每个素数中每个数字只使用依次。_学小易找答案...
  13. Map对象,Set对象使用(1)
  14. Android ROM 小白普及
  15. 【协同任务】基于matlab蚁群算法多无人机攻击调度【含Matlab源码 034期】
  16. 计算机关闭提示音,即将发布:如何关闭Apple计算机启动提示音
  17. 【华为 OJ 】成绩排序
  18. JavaScript实例 幻灯片(自动播放 且 能点击)
  19. win7怎么更改浏览器主页?win7浏览器主页更改教程
  20. 2023年华中科技大学新闻传播专硕考研上岸前辈备考经验指导

热门文章

  1. vue项目px转vw教程链接
  2. SpringBoot的Spring Data JPA配置
  3. vue3中使用jweixin-module报错
  4. MacOS - MacVim安装
  5. java suspend_Java Thread suspend()方法
  6. line-clamp
  7. 小旋风蜘蛛池pro2.5(主程序)官方原版
  8. 户外运动崛起!疫情后这些产品将成为跨境热门品类!
  9. 小扎新年面壁思过,“撕皮哥”日子也不好过,一文看尽本周硅谷科技热点
  10. 为什么苹果官网设计如此吸引人?