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

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

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

    Java Architect

    導航

    <2007年7月>
    24252627282930
    1234567
    891011121314
    15161718192021
    22232425262728
    2930311234

    統計

    常用鏈接

    留言簿(2)

    隨筆檔案

    搜索

    最新評論

    閱讀排行榜

    評論排行榜

    2007年7月27日 #

    關于SAAS平臺的一點想法

    最近研究了幾個ERP,CRM的產品 象Sales force, Compeire, sugarCRM,覺得SAAS平臺無非需要提供以下可以高度定制的功能。

    1.  GUI
      • CSS
      • resources
      • menu/link
      • message i18n
      • form
      • GUI EventListener
    2. Business Object
      • business logic or call back
      • email
      • report charts
      • job scheduler
      • business rule
      • work flow
      • access control
      • asynchronous request.
    3. Database
     
    我覺得這里面最難的應屬GUI的高度可定制化。本人正在想用GWT來做一個基于上面想法的SASS平臺,屆時軟件可真正實現快速按需打造。歡迎JAVA界的同仁多提寶貴建議。






    posted @ 2008-06-19 05:54 zrq 閱讀(1060) | 評論 (0)編輯 收藏

    sql statement

      Select obj
     
    from CommDeductionType obj
      
    where 1=1
        #
    if($obj)
         
    and obj.deductionTypeCode = #{obj.deductionTypeCode}
        #
    end

    posted @ 2007-09-08 02:50 zrq 閱讀(147) | 評論 (0)編輯 收藏

    Open laszlo


    Datapointers are not bound to views like datapaths are, but they do have a place in the view hierarchy—that is, they "know about" parents and children.
     1 
     2 <datapointer xpath="myData:/" ondata="processData()">
     3     <method name="processData">
     4       this.selectChild(2); 
     5       do {
     6         if (this.xpathQuery( '@show' ) == 'south park') {
     7             Debug.write(this.xpathQuery('firstName/text()'));
     8         }
     9       } while (this.selectNext()); 
    10     </method>
    11   </datapointer>
    12 
    13 

    Create data set at runtime

    LzDataset: var dset = new LzDataset(null, {name: 'mydset'})

    $path{} limitations
    A limitation of the $path{} constraint is that the expression it contains is evaluated only at the initialization time, that is, an expression such as $path{'mynode[' + i + ']/@attr'} will behave like a $once{} constraint.Custome

    Customize the data binding
    1 <view name="swatch" width="200" height="30" 
    2   datapath="colors:/value[1]/text()">
    3     <method name="applyData" args="v">
    4       setBGColor(eval(v))
    5       display.setText(v)
    6     </method>
    7   </view>

    $path{}


    datapath.setdatapointer

    <canvas height="150">
    <dataset name="phonebook" src="resources/phonebook.xml"/>
    <simplelayout axis="x" spacing="20"/>

    <view name="contacts" height="150" width="100">
    <view bgcolor="0xe0e0e0" datapath="phonebook:/contacts/contact"
    onmouseover="setBGColor(0xc0c0c0)" onmouseout="setBGColor(0xe0e0e0)"
    onclick="details.datapath.setPointer(this.datapath.p)">
    <simplelayout axis="x" spacing="5"/>
    <text datapath="@firstName" resize="true"/>
    <text datapath="@lastName" resize="true"/>
    </view>
    <simplelayout spacing="5"/>
    </view>

    <view id="details" width="150" height="150" bgcolor="0xe0e0e0" fgcolor="blue">
    <datapath/>
    <text datapath="@firstName"/>
    <text datapath="@lastName"/>
    <text datapath="@phone"/>
    <text datapath="@email"/>
    <simplelayout spacing="5"/>
    </view>
    </canvas>



    posted @ 2007-07-27 03:18 zrq 閱讀(189) | 評論 (0)編輯 收藏

    主站蜘蛛池模板: 五月婷婷在线免费观看| 中文在线观看永久免费| 57pao国产成永久免费视频| 亚洲第一极品精品无码久久| 午夜肉伦伦影院久久精品免费看国产一区二区三区 | 国产成人不卡亚洲精品91| 女人毛片a级大学毛片免费| 亚洲精品无码专区在线| 免费黄色app网站| 精品国产亚洲第一区二区三区| 国产美女无遮挡免费视频网站 | 久久亚洲高清综合| 久久WWW免费人成—看片| 国产亚洲美女精品久久久久狼| 久久精品成人免费观看| 亚洲综合小说久久另类区| 成人免费午夜无码视频| 亚洲国产精品成人午夜在线观看 | 野花高清在线电影观看免费视频| 亚洲免费黄色网址| 午夜小视频免费观看| 一级看片免费视频| 亚洲国产精品国自产电影| 18禁超污无遮挡无码免费网站国产| 亚洲精品av无码喷奶水糖心| 亚洲AV无码一区二区三区国产| 好猛好深好爽好硬免费视频| 久久亚洲AV无码精品色午夜麻| 国产精品久久永久免费| 在线观看亚洲精品专区| 自拍偷自拍亚洲精品第1页| 精品无码人妻一区二区免费蜜桃| 亚洲日本在线电影| 久久久久一级精品亚洲国产成人综合AV区| 十八禁在线观看视频播放免费| 亚洲高清美女一区二区三区| 韩国免费三片在线视频| 老司机精品免费视频| 国产91在线|亚洲| 中国亚洲女人69内射少妇| 亚洲一区二区免费视频|