平凡的世界 看似平常實崎嶇 成如容易卻艱辛
posted on 2006-04-30 14:34 Lucky 閱讀(5016) 評論(23) 編輯 收藏 所屬分類: extremeComponents
在全局配置文件中設置了column.format.currency后,連number cell的格式都是用的currency格式,設了column.format.number都沒效果。 回復 更多評論
看了一下源碼,Column的isCurrency方法有問題,只要是org.extremecomponents.table.cell.NumberCell不管別名定義什么都會反回true 回復 更多評論
@squall 你可以和我聯系:xplucky@gmail.com,把問題發給我. 回復 更多評論
@squall 你可以看看http://www.tkk7.com/lucky/archive/2006/04/21/42345.html,然后把相關的信息發給我:xplucky@gmail.com。 回復 更多評論
在eXtremeComponents_CN上好像發帖成功但看不到,還是發到這兒來了。 在全局配置文件中設置了column.format.currency后,連number cell的格式都是用的currency格式,設了column.format.number都沒效果,除非為column的定format別名,附上配置 table.autoIncludeParameters=false table.rowsDisplayed=10 table.sortable=false table.view.html=org.extremecomponents.table.view.CompactView row.highlightRow=true table.imagePath=/images/table/compact/*.gif column.format.date=yyyy-MM-dd column.format.currency=¥###,###,##0.00 column.format.percent=##0.00% column.format.number=##0.00 看了一下源碼,Column的isCurrency方法有問題,只要是org.extremecomponents.table.cell.NumberCell實現不管別名定義什么都會反回true 回復 更多評論
你還是沒看"后記",您能不能最少把JSP貼出來,要不能我怎么知道你怎么用的? ^_^ 回復 更多評論
來了 <ec:table form="tmpForm" items="clist" tableId="callCenterRuning"> <ec:row> <ec:column property="corpName" title="單位名稱" /> <ec:column property="clientNum" title="客戶數" cell="number" /> <ec:column property="cashOrderNum" title="現結訂單數" cell="number" /> <ec:column property="unbalanceOrderNum" title="未結算訂單數" cell="number" /> <ec:column property="cancelOrderNum" title="作廢訂單數" cell="number" /> <ec:column property="otherOrderNum" title="其它訂單數" cell="number" /> <ec:column property="bespeakAmount" title="訂貨數" cell="number" /> <ec:column property="bespeakMoney" title="訂貨金額" cell="currency" /> <ec:column property="boxPrice" title="單箱均價" cell="currency" /> </ec:row> </ec:table> 回復 更多評論
其實你聲明的cell=“number” 和cell=“currency” 指向的都是同一個Cell,關鍵是你得通過聲明不同的format來達到你的需求: 對于貨幣只需要設置format屬性: <ec:column property="payroll" cell="currency" format="###,###,##0.00"/> 回復 更多評論
其實你聲明的cell=“number” 和cell=“currency” 指向的都是同一個Cell,關鍵是你得通過聲明不同的format來達到你的需求: 對于貨幣只需要設置format屬性: <ec:column property="payroll" cell="currency" format="###,###,##0.00"/> http://www.tkk7.com/lucky/articles/33380.html#d0e436 回復 更多評論
我現在就是這么用的,但是我覺得同一個cell能在配置中聲明多個別名,那樣代碼應該更簡潔,比如 column.cell.number=org.extremecomponents.table.cell.NumberCell column.cell.currency=org.extremecomponents.table.cell.NumberCell column.format.number=###,##0.00 column.format.currency=$###,##0.00 當寫成 <ec:column property="payroll" cell="number" /> 就應該用format.number <ec:column property="payroll" cell="currency" />就應該用format.currency 這樣是不是更好些,現在cell為currency不用設定format屬性,會自動的找到format.currency,為什么不能統一成這樣呢? 回復 更多評論
@squall 現在EC里面就是這么用的 column.cell.number=org.extremecomponents.table.cell.NumberCell column.cell.currency=org.extremecomponents.table.cell.NumberCell “ <ec:column property="payroll" cell="number" /> 就應該用format.number <ec:column property="payroll" cell="currency" />就應該用format.currency ” cell 不一定有format, 為什么”cell為currency不用設定format屬性“ 是因為我們考慮一般使用的currency和Date對于一般的應用應該是相對固定的,而number他的format格式就不一定固定。 EC提供的是我們理解常用的東西,但是每個項目的環境、需求不一樣,所以我們提供了比較好的擴展、定制機制。比如說你這個想formatnumber,你只需要把columndefault的getFormatInResourceBundle()、getFormatInProperties()方法稍微修改一下就ok了。 回復 更多評論
我就是不想改代碼,改了代碼后等extremetable升級了又得改,我倒是很樂意做擴展,如果做成我上面說的方式按別名配置只需要在配置文件中配配就可以得到擴展不是更好,這樣一個cell可得到最大的重用,當然我只是提提建議。 回復 更多評論
…^_^ 回復 更多評論
實在無法忍受到處寫format了,自己改成自動的處理方式了,需要format的就兩種cell,一種是date一種是number,很好改呀,而且改后靈活性更高,還是希望官方能做成這樣。如果需要,我把代碼給你提交。 回復 更多評論
問一下,有沒有合并單元格的支持?如果要兩個cell的值做計算應該怎么做? 回復 更多評論
@squall format的修改不是太麻煩,正如我前面說的,我們的理解是currency的format一般在一個應用中會通用,所以我們會默認去調用。對于單純的Number,默認是沒有format的,而且還可能去parse一種格式然后format到另一種格式。每個應用會有自己的需求,所以才提供了定制,至于官方,Number的默認應該還是不會默認使用format的。謝謝你的好意! EC現在還不支持合并單元格,現在可以做的就是計算單列的total和avage。不過你可以試試。 回復 更多評論
看來你還沒有理解我的意思,我的意思是不管cell是什么類型只要它是number和date就可以定制多種格式而不用在應用時一個個的寫,比如說 <ec:table items="glist" tableId="goodSaleCigAmount"> <ec:row> <ec:column property="startDate" title="開始時間" cell="date" /> <ec:column property="endDate" title="結束時間" cell="date" /> <ec:column property="amount" title="數量" cell="number" /> <ec:column property="amount1" title="數量1" cell="intNumber" /> <ec:column property="currency" title="金額" cell="currencyNumber" /> <ec:column property="rate" title="比重" cell="percentNumber" /> </ec:row> </ec:table> column.format.date=yyyy-MM-dd column.cell.percentNumber=org.extremecomponents.table.cell.NumberCell column.format.percentNumber=##0.00% column.cell.currencyNumber=org.extremecomponents.table.cell.NumberCell column.format.currencyNumber=¥###,###,##0.00 column.cell.intNumber=org.extremecomponents.table.cell.NumberCell column.format.intNumber=##0.00 column.format.number=##0.00 這跟原來的沒有沖突只是更靈活了更好維護了,不配置當然沒有format了,parse和format屬性同樣生效 回復 更多評論
{我的意思是不管cell是什么類型只要它是number和date就可以定制多種格式而不用在應用時一個個的寫 currency就是Number的一種特殊應用,就是你說的那種應用。我們不可能去創建適用于任何工程的所有類似的東西,而且沒必要。 大家可以根據自己項目的實際需求去定制它。 回復 更多評論
org.extremecomponents.table.cell.NumberCell和org.extremecomponents.table.cell.DateCell本來就可以適用于任何工程,只是格式不同而已,但是現在的實現在配置中跟currency和date綁死了除非指定format屬性,為了達到在配置中配置format還要把它們copy多份只是名字不同而已,這就是所謂的定制,能在配置中搞定的事,為什么非要寫代碼,而且還是重復的代碼,我知道extremetable的擴展能力很強,但這個定制是不是有點多余???Number和Date本來就是特殊應用,要不然你們也不會單獨實現DateCell、NumberCell了,currency只是一種形式而已,我看不出currency除了格式外它特殊在哪兒,即然你們已經實現了,又何必要我們重復造輪子呢? 回復 更多評論
@squall cell 不一定需要format, 為什么”cell為currency不用設定format屬性“ 是因為我們考慮一般使用的currency和Date對于一般的應用應該是相對固定的,而number應用中的format格式就不一定固定。 EC提供的是我們理解常用的東西,但是每個項目的環境、需求不一樣,所以我們提供了比較好的擴展、定制機制。 回復 更多評論
坦白的說,eXtremeComponents搞一大堆的依賴包也感覺很不爽,比如導出PDF還用什么fop0.20.5,,avalon(apache早就停止維護的項目),為什么不用 iText呢?這一點DisplayTag要好,看到有人常說DisplayTag因為一次性讀取 數據到List中,其實一般做分頁都是分次查詢,根本不存在性能問題。 目前DisplayTag唯一美中不足的就是沒有支持ajax,不過要自己擴展也是一樣 容易。很多項目都用DisplayTag,我覺得還是很順手的,不過這里也并沒有貶低EC的意思,根據個人喜好選擇,夠用就好。 回復 更多評論
找到一個bug咯 回復 更多評論
多謝了 回復 更多評論
Powered by: BlogJava Copyright © Lucky