<rt id="bn8ez"></rt>
<label id="bn8ez"></label>

  • <span id="bn8ez"></span>

    <label id="bn8ez"><meter id="bn8ez"></meter></label>

    隨筆 - 21  文章 - 12  trackbacks - 0
    <2011年10月>
    2526272829301
    2345678
    9101112131415
    16171819202122
    23242526272829
    303112345

    常用鏈接

    留言簿(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 閱讀(208) | 評論 (0)編輯 收藏

     

    大家知道TWaver Java總的TList繼承自Swing的JList,所以我們可以很容易控制其選擇,例如單選、多選等。但是本文介紹如何控制按指定數量進行選擇。

    人生就是一個不停選擇的過程。所以,我們必須要謹慎的控制好你的選擇,無論是TList的SelectionModel,還是人生之路。

    在實際項目中,我們經常需要對list進行不能超過限定數量的多重選擇控制。本文用到的技巧可能是本站最簡單的一次了:利用DataBox的SelectionModel,當選擇總數超過限定,就將最早的選擇刪除。

    其中max我們可以指定。乳溝max=1則變成了單選。

    通過這個思路,本文寫了一個很簡單的例子:通過控制多選數量,制作一個簡單的點菜選擇。相信你的系統中也經常會有類似的場景:通過list讓用戶選擇指定數量的數據。



     

    posted @ 2012-05-29 17:14 zhangchuanzheng 閱讀(174) | 評論 (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 閱讀(399) | 評論 (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 閱讀(369) | 評論 (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 閱讀(466) | 評論 (0)編輯 收藏


    作為供應商,可能會在一個月內接到同一客戶的多次采購請求,會建立多個銷售單。但對每個銷售單每次都開相應金額發票又略顯繁瑣。在2BizBox里,您可針對此種情況,做批量應收賬款建立。

    在財務模塊->應收賬款->按發貨單項添加應收賬款,選擇要建立應收賬款的客戶,同時選擇幣種,點擊確定,出現如下圖1:
    附件:
    batch AR.png
    batch AR.png [ 87.72 KiB | 被瀏覽 11 次 ] 


    勾選希望應收賬款合并建立到一起的發貨單,點擊確定后,出現合并到一起的應收賬款頁面,如下圖2:
    附件:
    one AR.png

    隨后,財務相關人員即可進行收款等操作事宜。
    posted @ 2011-10-25 09:33 zhangchuanzheng 閱讀(239) | 評論 (0)編輯 收藏

    posted @ 2011-10-24 09:53 zhangchuanzheng 閱讀(1479) | 評論 (2)編輯 收藏
    主站蜘蛛池模板: 亚洲欧洲日本精品| 区三区激情福利综合中文字幕在线一区亚洲视频1 | 久久丫精品国产亚洲av不卡| 一级午夜免费视频| 国产成人精品免费直播| 亚洲卡一卡二卡乱码新区| 亚洲黄色免费电影| 亚洲视频一区调教| 99re免费99re在线视频手机版| 亚洲国产精品SSS在线观看AV| 99久久免费国产特黄| 亚洲人成无码网站| 可以免费观看的国产视频| 亚洲精品无码久久一线| 免费在线中文日本| 亚洲成在人天堂在线| 5555在线播放免费播放| 亚洲w码欧洲s码免费| 德国女人一级毛片免费| 无码色偷偷亚洲国内自拍| 亚洲精品高清在线| 女同免费毛片在线播放| 亚洲精品在线观看视频| 100000免费啪啪18免进| 亚洲男人的天堂网站| 一本久到久久亚洲综合| 老司机69精品成免费视频| 久久精品亚洲一区二区三区浴池| 人与禽交免费网站视频| 色综合久久精品亚洲国产| 亚洲欧洲自拍拍偷精品 美利坚| 大地影院MV在线观看视频免费| 亚洲欧洲日本精品| 免费A级毛片无码A∨男男| 青青操免费在线视频| 亚洲午夜电影一区二区三区| 国产精品免费_区二区三区观看| 久久九九久精品国产免费直播| 亚洲伊人tv综合网色| 日韩免费观看一级毛片看看| a级毛片毛片免费观看久潮|