随笔 - 21  文章 - 12  trackbacks - 0
<2011年5月>
24252627282930
1234567
891011121314
15161718192021
22232425262728
2930311234

常用链接

留言簿(4)

随笔档案

文章档案

新闻档案

搜索

  •  

最新评论

阅读排行榜

评论排行榜

前面讲到我在做2BizBox ERP开发的时候,遇到导入数据的需求,然后我用JXL对Excel进行了一些操作。

但我们不能让用户输入“1,2”这种坐标吧,如客户编号坐标;用户肯定喜欢用Excel的坐标,A1,B1等来表示。来个图看看:


所以就要求程序把A1,B1等转换成JXL认识的坐标。

第一步:校验数据,看是否符合Excel坐标表示法,我用的是正则

第二步:把字母转化成数字

代码供参考

publicstaticint[] splitExcelCell(String coordinate) {

      coordinate = coordinate.trim().toUpperCase();

      int[] colAndRow =newint[2];

     

      if (coordinate.matches("[A-Z]{1,2}[0-9]+")) {

        

         StringBuffer tmpS = new StringBuffer();

        

         for (int i = 0; i < coordinate.length(); i++) {

            char c =coordinate.charAt(i);

           

            if (c >= 48 && c <= 57) {

                colAndRow[0] = Integer.parseInt(coordinate.substring(i));

                break;

            }

           

            tmpS.append(c);

         }

        

         colAndRow[1] = splitExcelCol(tmpS.toString());

      }

     

      return colAndRow;

   }

  

 

   publicstaticint splitExcelCol(String coordinate) {

      coordinate = coordinate.trim().toUpperCase();

      int colNumber = 0;

     

      if (coordinate.matches("[A-Z]{1,2}")) {

         if (coordinate.length() == 1) {

            int k = coordinate.charAt(0) - 64;

            colNumber = k;

         }

         elseif (coordinate.length() == 2) {

            int i = coordinate.charAt(0) - 64;

            int j = coordinate.charAt(1) - 64;

           

            colNumber = i * 26 + j;

         }

      }

     

      return colNumber;

   }

当然程序也要做一些判断,如果用户输入有误的话,报一些错误提示。

posted @ 2012-06-19 09:54 zhangchuanzheng 阅读(198) | 评论 (0)编辑 收藏

 

大家知道TWaver Java总的TList继承自Swing的JList,所以我们可以很容易控制其选择,例如单选、多选等。但是本文介绍如何控制按指定数量进行选择。

人生就是一个不停选择的过程。所以,我们必须要谨慎的控制好你的选择,无论是TList的SelectionModel,还是人生之路。

在实际项目中,我们经常需要对list进行不能超过限定数量的多重选择控制。本文用到的技巧可能是本站最简单的一次了:利用DataBox的SelectionModel,当选择总数超过限定,就将最早的选择删除。

其中max我们可以指定。乳沟max=1则变成了单选。

通过这个思路,本文写了一个很简单的例子:通过控制多选数量,制作一个简单的点菜选择。相信你的系统中也经常会有类似的场景:通过list让用户选择指定数量的数据。



 

posted @ 2012-05-29 17:14 zhangchuanzheng 阅读(165) | 评论 (0)编辑 收藏

Java很早就推出了Java Web Start(简称JWS)技术。这一技术的初衷很好:希望将桌面程序和Web页面之间搭起一个无缝的桥梁。虽然Applet技术已经存在了十多年,但是它日趋老迈衰落,所以JWS也就应运而生了。

但是JWS并未顺利实现它的初衷。从Java的几次大改版都可以看到,JWS的bug多多,漏洞频频,Sun和Oracle不得不频繁的进行打补丁 修复。可以看看Java 5和6每次大小版本升级变化中,有多少是和Java Web Start有关的。难怪很多人都这样感叹:“哥再也不用Java Web Start部署应用了!”其实也未必,随着Java的不断完善,我们只要了解更多的技巧,就可以有效的消除一些JWS潜在的问题,并顺利的应用在企业应用 中。

以2BizBox ERP项目为例,本文介绍如何在企业应用中利用动态生成JNLP文件的技术来实现应用的快速部署。

大家知道,2BizBox ERP作为一个免费的高质量ERP软件,有成千上万的用户。就我们开发团队负责维护的服务器,就有近千台。每台服务器都是一家企业,每家企业又有几十上百 的客户端。如果采用下载客户端安装程序进行安装的方式来维护诸多的客户端,无疑是巨大的工作量,用户和我们开发团队都不会轻松方便。为了解决这一问题,采 用JWS无疑是必然的选择。

为了让客户端自动启动下载和安装程序,我们在企业的2BizBox ERP服务器上部署以下JNLP文件内容:

上面的JNLP文件定义了2BizBox ERP客户端启动所需要的jar包以及下载位置、jre版本等。

在实际应用中,效果良好。但是由于JNLP和JWS本身的bug,在某些情况下,后台jar程序更新升级后,用户侧启动jnlp并不能获得更新,需 要强行清空JWS缓存才行,这肯定不是一般用户懂得的。还有一种情况,就是由于ERP本身的jar包发生了变化(例如发生了增减),此时相当于jnlp文 件的内容发生了变化。这时候,要求用户一侧机器必须意识到jnlp的变化并先将jnlp进行更新。在很多java版本中(例如jre6的早期版本——例如 jre6 update20之前),由于潜在的一些bug等原因,都不能顺利的进行更新,导致程序启动失败。

如何解决这一情况呢?采用动态jnlp是一个有效的方法。

动态jnlp的思路是:在服务器的后端,通过jsp或servlet来动态的生成一个jnlp文件,而不是放置一个静态的固定不变的jnlp文件。这样,jnlp文件内容就可以通过后台应用的逻辑进行动态生成创建:需要什么jar包、需要什么jre版本等等。

以jsp为例。在这个jsp中,首先要注意的几个技术点是:要设置本页面不要被浏览器缓存,放置jnlp内容变化无法及时被更新;其次要设置 mime类型让浏览器认为它是一个jnlp文件,以便下载执行而不是直接在浏览器中显示出来。通过设置response即可达到这些目的:

其中,禁止浏览器和webstart缓存jnlp内容,通过设置:response.setHeader(“Pragma”, “no-cache”);和response.setHeader(“Expires”, “0″);
设置文件类型,并给定一个动态的文件名。这个通过这个进行:response.setHeader(“Content-Disposition”, “filename=\”bb.jnlp\”;”);response.setContentType(“application/x-java-jnlp-file”);

一个需要注意的问题是,在动态生成jnlp文件时,要注意jnlp文件中的href标签不要进行设置。为什么呢?看一下jnlp的格式文档是这样说的:
http://lopica.sourceforge.net/ref.html#jnlp



The jnlp file's one and only root.

Attributes
spec=version , optional
Specifies what versions of the jnlp spec a jnlp file works with. The default value is 1.0+. Thus, you can typically leave it out.
version=version , optional
Specifies the version of the application as well as the version of the jnlp file itself.
codebase=url , optional
Specifies the codebase for the application. Codebase is also used as base URL for all relative URLs in href attributes.
href=url , optional
Contains the location of the jnlp file as a URL. If you leave out the href attribute, Web Start will disable the update check on your JNLP file, and Web Start will not treat each new JNLP file as an application update - only updated jar files will. Leaving out href usually makes only sense if your jnlp file is created dynamically (that is, throug a cgi-script, for example) and if your jnlp file's arguments or properties change from request to request (user to user).
Note, that Java Web Start needs href to list your app in the Web Start Application Manager.

可见在动态生成jnlp时候就不要设置href了,这样就可以保证每次浏览器会重新下载jnlp文件内容,否则可能会被缓存,无法及时更新程序。

另外一个技巧是:jnlp文件中的jar包,可以进行动态检查文件jar包并动态生成。这样,如果以后程序的jar文件有增减,就不必修改jnlp文件了。方法也很简单:检查当前web在服务器的绝对路径,并list所有的jar文件,然后在jnlp生成时候输出即可:

然后在jar的部分这样列出:

最后,如果需要在jnlp中指定当前服务器的ip地址或主机地址,也可以通过动态生成。例如jnlp文件中的codebase,就是如此。另 外,2BizBox ERP还需要在主函数中给出当前服务器的ip地址。而对于上千家的2BizBox服务器,每个jnlp要手工维护ip地址,是不可想象的。这里通过动态生 成,就永远的解决了这个问题:

然后在jnlp中:

这样,通过jsp动态生成jnlp的方案就完成了。它在2BizBox ERP中应用良好,方便的让上千家2BizBox ERP的云主机用户快速得到程序更新,而简化了程序的维护方式。

posted @ 2012-05-23 10:31 zhangchuanzheng 阅读(390) | 评论 (2)编辑 收藏
又免费,又免费,ERP免费,现在进销存也免费了...2BizBox-A2正式发布
转个贴给大家看看哈
用户们盼望已久的2BizBox-A2正式发布了。 :P

总有人抱怨2BizBox ERP还是太复杂难用。现在好了,A2提供了一个简化版的2BizBox,它类似一个“进销存”版本的2BizBox。
A2对2BizBox ERP的模块进行了精心的简化和优化,业务只涵盖了采购、销售、库存和财务,而去掉了工单和生产环节,是一个典型的“进销存+财务”的业务系统。

A2特别 适合没有生产、或不想实施生产业务的企业。

A2可以平滑升级到2BizBox ERP。

主要特点
• 2BizBox ERP精简版:包括进销存+财务,去掉了工单和生产环节
• 简单易用,业务精简,适合不含生产业务的中小企业,或暂不对生产进行管理的企业
• 可平滑无缝升级到2BizBox ERP
• 界面风格和2BizBox ERP完全保持一致

主要功能
• 基础数据模块、采购、销售、库存、财务
• 实现一体化进销存+财务业务
• 简化ERP流程,可直实现无订单直接收发料
附件:
2bizbox-109.png
2bizbox-109.png [ 28.66 KiB | 被浏览 8 次 ]

附件:
2bizbox-117.png
2bizbox-117.png [ 139.31 KiB | 被浏览 8 次 ]

下载地址:http://www.2bizbox.cn/product/download
posted @ 2012-04-28 18:25 zhangchuanzheng 阅读(358) | 评论 (0)编辑 收藏
转发一下,确实很强大啊...
关键是还免费...
 2BizBox最新版本 v3.5.0版本正式发布
为了让大家能够度过一个愉快、祥和的5.1假期,2BizBox团队不辞辛苦、全体发力,最新版本 v3.5.0版本正式发布…

新增功能:
1. 在控制面板中添加了“发料时必须指定领料人”的开关,启用后每次发料时必须填写领料人,防止漏填;
2. 工单收料单列表添加“操作员”一列;
3. 在“物料清单零件使用统计”、“零件短缺”界面中添加“项备注”一列;
4. “工单工作簿”添加一个“全不选”的按钮;
5. 工单排产时,用特殊颜色标记有替换件的零件项;
6. 公司设置中“零件号最大长度”后面加以标识“最大值为50”;
7. 回收单收料单和退货单发货单支持项的拆分;
8. 销售单增加“以含税价作为销售单项计算标准”的功能;
9. 零件的选择界面改进,增加按型号、产品编码、商品编码等参数寻找零件的功能;
10. 增加开关控制“是否显示数字尾零功能”,可隐藏数量小数点后的尾零,价格默认保留两位小数;
11. 改进付款周期;改进付款周期界面的选择以及添加功能;增加初始化付款周期老数据的功能;
12. 销售单和工单增加“取消”按钮;
13. 工艺上增加“备注“字段;
14. 改进上传零件文档功能,不限制上传文档名;
15. 改进了零件界面零件单位、采购单位以及采购单位转换率的显示方式;
16. 改进采购单项上零件单位,采购单位以及采购单位转换率的显示方式;


修复功能:
1. 修复采购单,收料单,应付账款及工单零件明细四舍五入造成的金额差异的问题;
http://www.2bizbox.cn/forum/viewtopic.php?f=29&t=4450
2. 修复导入客户和供应商,如若其编号含有小写字母,导入后,客户以及供应商的联系人添加后无法保存的问题;
3. 修复“按物料查看销售单X物料清单”报表中“标准成本”和“平均成本”位置颠倒的问题;
4. 修复“应付账款”无法对员工付款的问题;
http://www.2bizbox.cn/forum/viewtopic.php?f=6&t=3096
5. 修复因采购单“项目”数据太长造成的无法收料问题;
http://www.2bizbox.cn/forum/viewtopic.php?f=4&t=4348
6. 修复“搜索检验单”报表无法搜索出全部检验单的问题;
http://www.2bizbox.cn/forum/viewtopic.php?f=4&t=4308
7. 修复分库后,导入工具库存信息报错的问题;
8. 修复创建工单后,无法带入零件单位的问题;
9. 修复发货需要查看地址权限的问题;
http://www.2bizbox.cn/forum/viewtopic.php?f=4&t=4115
10. 修复繁体发送通知无法选择收信人的问题;
11. 修复“从盘存表中搜索需要调整库存的零件”无数据的问题;
http://www.2bizbox.cn/forum/viewtopic.php?f=4&t=3853
12. 修复“搜索员工”无法搜索出批量导入的员工问题;
http://www.2bizbox.cn/forum/viewtopic.php?f=29&t=3827
13. 修复邮件服务器不支持“-”等符号的问题;
http://www.2bizbox.cn/forum/viewtopic.php?f=3&t=1359
14. 修复工单排产时候,如果“替换件”数量过大,替换不成功的问题;
http://www.2bizbox.cn/forum/viewtopic.php?f=2&t=3724


下载地址:

http://www.2bizbox.cn/product/download
posted @ 2012-04-28 18:15 zhangchuanzheng 阅读(455) | 评论 (0)编辑 收藏


作为供应商,可能会在一个月内接到同一客户的多次采购请求,会建立多个销售单。但对每个销售单每次都开相应金额发票又略显繁琐。在2BizBox里,您可针对此种情况,做批量应收账款建立。

在财务模块->应收账款->按发货单项添加应收账款,选择要建立应收账款的客户,同时选择币种,点击确定,出现如下图1:
附件:
batch AR.png
batch AR.png [ 87.72 KiB | 被浏览 11 次 ] 


勾选希望应收账款合并建立到一起的发货单,点击确定后,出现合并到一起的应收账款页面,如下图2:
附件:
one AR.png

随后,财务相关人员即可进行收款等操作事宜。
posted @ 2011-10-25 09:33 zhangchuanzheng 阅读(227) | 评论 (0)编辑 收藏

posted @ 2011-10-24 09:53 zhangchuanzheng 阅读(1469) | 评论 (2)编辑 收藏


2BizBox API v3.3.1已经提供发布。此次发布的主要更新内容涵盖:

  • 与2BizBox ERP v3.3.1同步更新;
  • 改进了api内部缓存机制,降低类依赖,有效控制了包大小;
  • 增加了集成式App开发运行环境2bizbox_gui.jar包;
  • 修复了当修改后台服务器端口后无法连接的问题;
  • 简单说,新的api,您可以:
    1、开发各种与2BizBox ERP v3.3.1进行集成的应用;
    2、开发各种App应用程序与插件。

    欢迎大家下载:http://www.2bizbox.cn/wiki/index.php/2BizBox_API%E4%B8%8B%E8%BD%BD

    posted @ 2011-10-13 10:01 zhangchuanzheng 阅读(303) | 评论 (0)编辑 收藏
    posted @ 2011-08-09 13:53 zhangchuanzheng 阅读(183) | 评论 (0)编辑 收藏

    posted @ 2011-08-08 10:31 zhangchuanzheng 阅读(186) | 评论 (0)编辑 收藏

    posted @ 2011-07-15 11:31 zhangchuanzheng 阅读(113) | 评论 (0)编辑 收藏


    时间:2011年8月22-24日
    地址:中国上海新国际博览中心(上海浦东新区龙阳路2345号)

    2011年8月22~24日,2BizBox将参加第三届中国(上海)国际石油化工技术装备展览会。其由中国石油和石油化工设备工业协会、中国国际贸易促进委员会化工行业分会及北京振威展览有限公司主办。cippe是国际石油石化行业例会,是中国大陆第22个获得国际展览联盟UFI认证的高品质展会,每年春季在北京、秋季在上海举办,已成为全球最大石油展。

    2BizBox 位于W1展馆W 1608展位,欢迎2BizBox的广大用户及关注与支持2BizBox的各位同仁莅临参观指导。

    2BizBox是一款世界顶级免费ERP软件,致力于为全球中小企业与制造企业提供高质量的免费ERP软件。届时,我们将展出2BizBox最新功能演示及典型案例分析,与大家共同分享。

    更多展会详细信息请访问:http://www.cippe.com.cn/

    posted @ 2011-07-11 11:41 zhangchuanzheng 阅读(103) | 评论 (0)编辑 收藏
    posted @ 2011-07-11 11:34 zhangchuanzheng 阅读(109) | 评论 (0)编辑 收藏

    介绍

    2BizBox推出“合作伙伴联盟”计划,诚邀各界优秀公司和个人加盟,共同为2BizBox用户提供丰富、专业、高质量的软件增值服务。

    研究显示,全球需要企业信息化服务的中小企业市场有300~500亿美元,且在持续增长中。中国作为中小企业数量庞大的制造业大国,这一情况尤为突 出。大多数中小企业尚未建立有效的信息化管理手段。这些中小企业的普遍特征是:资金薄弱、管理不完善、信息化基础较差。随着市场竞争的日益激烈,中小企业 也纷纷开始信息化建设,但很多尝试并实施信息化的企业无法得到高质量的服务,导致信息化效果不佳。

    2BizBox作为免费ERP的急先锋,在倡导软件即服务的理念下,推出短短数月以来,已经获得整个ERP行业的关注。目前软件下载量已累计超过 50万次,论坛日访问量超过1万PV,活跃用户超过1000。很多企业正在积极研究、评估和学习2BizBox软件,并即将进入实施阶段。大量的 2BizBox用户产生了庞大的服务需求市场,用户期望获得更加丰富、本地化的2BizBox软件服务。

    为此,2BizBox筹建2BizBox“合作伙伴联盟”,希冀共同为2BizBox用户提供丰富、高质量的软件增值服务。我们在全国范围内,诚邀 企业与有识之士加盟2BizBox“合作伙伴联盟”,2BizBox欢迎您加入合作伙伴联盟,共享品牌、共享产品、共享市场、共享信息。

    无论您是任何行业的公司、企业或个人,只要您符合以下任意一项,您就可以成为我们的合作伙伴:

  • 有意向全力合作共同发展;
  • 有自主研发的软件产品;
  • 有信息化建设所需的硬件产品及服务;
  • 有为企业提供软件实施以及后续服务的能力;
  • 合作伙伴授权项目:

  • 2BizBox软件授权实施服务;
  • 2BizBox软件授权本地客户售后保障;
  • 2BizBox软件系统集成授权;
  • 2BizBox软件二次开发与定制;
  • 合作伙伴分销项目:

  • 2BizBox软件企业信息化硬件代购;
  • 2BizBox软件操作培训课程;
  • 2BizBox软件网管培训课程;
  • 2BizBox软件API开发培训课程;
  • 2BizBox软件SaaS在线租赁;
  • 优势

  • 获得官方服务授权许可;
  • 共享《合作伙伴联盟》各种资源;
  • 获得官方网站目录展示等市场推广;
  • 获得2BizBox直接技术支持;
  • 完善的联盟体制,避免恶意竞争;
  • 共享品牌、共享产品、共享市场、共享信息;
  • 《合作伙伴联盟》由四个会员级别:

  • 战略合作伙伴
  • 金牌合作伙伴
  • 银牌合作伙伴
  • 铜牌合作伙伴
  • 备注:

    1. 合作伙伴需填写《合作伙伴联盟申请表》,由2BizBox团队进行评估批准。
    2. 合作伙伴需具备一定的专业知识,并通过培训取得相应的认证资质。
    3. 合作伙伴目录及实施案例将在2BizBox官方网站适时更新。
    4. 合作伙伴可在授权期间和地域内开展指定的服务项目。
    5. 双方需签署《合作伙伴联盟协议》,严重违反协议者,将终止合作伙伴资质,并追究其相应责任。

    联系方式:

    联系人:李经理
    咨询专线:021-6439 8788(转)809
    咨询热线:15900424005
    传真:021-6439 5374
    咨询邮箱:slong.li@servasoftware.com


    详细内容请点击


    官方网站:www.2bizbox.cn

     

    posted @ 2011-06-16 10:18 zhangchuanzheng 阅读(186) | 评论 (0)编辑 收藏
    热烈祝贺2BizBox第二届免费公开课成功举办。
    感谢那些远道而来的朋友,那些来自河北石家庄、山东、深圳、南京、杭州及上海的朋友,感谢大家的关注和支持。

    2BizBox_open_training_0527.jpg
    posted @ 2011-05-27 18:35 zhangchuanzheng 阅读(196) | 评论 (1)编辑 收藏