星期三, 11月 07, 2007

Foreach Enum AND Localization Devexpress Controls

要將devexpress中文化其實並不難,只要透過指定一個對照表的類別給系統即可
例如 要將Grid中文化可以透過如下的做法
GridLocalizer.Active = new XtraGridLocalizationCHT();

class XtraGridLocalizationCHT : GridLocalizer {
public override string GetLocalizedString(GridStringId id) {
switch (id) {
case GridStringId.FileIsNotFoundError: return "檔案{0}沒有找到";
...
}}}

中文化產品的對照表如下
Product / access objectname
XtraEditors / StringId
XtraGrid / GridStringId
XtraNavBar / NavBarStringId
XtraPivotGrid / PivotGridStringId
XtraPrinting / PreviewStringId
XtraReports / ReportStringId
XtraScheduler / SchedulerStringId
XtraTreeList / TreeListStringId
XtraVerticalGrid /VGridStringId

而類別的定義若你的購買的devexpress是有包含source那可以由source中找.要不然你可以用程式自行來產生! 例如如下的語法可以產生id與顯示英文名稱的對照表,當你有有對照表後,你可以自行翻譯或是寫成程式產生器,不管日後版本怎麼變都可以保持在最新的狀態
foreach (int i in Enum.GetValues(typeof(GridStringId)))
{
MessageBox.Show(
Enum.Parse(typeof(GridStringId), i.ToString(), true).ToString()+" : "+
GridLocalizer.Active.GetLocalizedString((GridStringId)Enum.Parse(typeof(GridStringId), i.ToString(), true)).ToString() );
}

星期一, 8月 06, 2007

由SQL SERVER取資料時,去除某一日期欄位的時間

在處理部份報表時,常會希望把DateTime型態的時間去除,可用於下條件或群組,因為此一欄位可能要使用Sql語法過濾,所以最佳的情況是在語法端就處理掉

依照微軟知識庫的建議,在下sql語法時使用Convert語法,如 CONVERT(char(10), datetimefield, 111) ,但這樣子的做法很不好,因為變成了字串型來處理

較好的處理方式應是保留DateTime格式,此時可以考慮如下的語法 DATEADD(dd, 0, DATEDIFF(dd, 0, datetimefield))

那程式中即可輕易的應用此一欄位
...WHERE DATEADD(dd, 0, DATEDIFF(dd, 0, datetimefield)) = @PARAM ...

星期二, 6月 19, 2007

Today is my birthday..

端午節,台灣連休四天我也好想放假啊,無奈大陸不流行民俗節日放假。

今天是我農歷生日,讓我想起一段史記中的記事

「端午時值農曆五月,正是仲夏疫厲流行的季節,俗稱「惡月」而五月五日更是惡日之尤,除了忌「曝床薦席」外,甚至有「不舉五月子」的諺語。《史記》「孟嘗君列傳」就記載:"田嬰怒其母曰:「吾令若去此子,而敢生之,何也?」文頓首,因曰:「君所以不舉五月子者,何故?」嬰曰:「五月子者,長與戶齊,將不利其父母。」文曰:「人生受命於天乎?將受命於戶邪?」嬰默然。文曰:「必受命於天,君何憂焉。必受命於戶,則可高其戶耳,誰能至者!」嬰曰:「子休矣。」"

從小我就知道這個故事,當時對孟嘗君的機智很配服,也立志要當個聰明又出色的人@@.當然也謝謝爸媽.他們把家門弄得很高很高。

弄blog應也有1年多了,不知道大家對這個blog有什麼想法、建議?是否有文章幫了你的忙? 若有的話請跟我說吧..當成是我的生日禮物

星期五, 5月 25, 2007

DEBUG 模式下,中斷點失效,提示訊息 "The breakpoint will not currently be hit. No symbols have been loaded for this document"

我常使用的debug模式為,把程式執行起來,再用選單上的 debug/attatch to process,選擇自己要debug的應用程式,這樣子雖然無法享受所有vs2005 提供的所有debug功能,但反應速度是最快的!

有天,有支應用程式突然無法停在中斷點,斷點一直提示The breakpoint will not currently be hit. No symbols have been loaded for this document,明明以前都可以的,苦惱啊!!檢查了好久整個設定都對,最後發現是他attatch時的程式類型別別錯誤,一共有二種排除方式,在這提供其中一項

attatch to process時,點select選擇到對的應用程式類型,因為我的應用程式有使用到資料庫連結,所以我選擇了 managed code 跟 T-SQL Code,即排除了一定要由ide中點run 慢到讓人吐血的debug方式

星期三, 5月 23, 2007

學習.Net 最佳助手 .NET Framework SDK

.NET Framework SDK 是我認為接觸.Net必裝的一個套件,他不止包含了例子,也有一些文檔是學習.NET最佳參考手冊。

2.0 http://www.microsoft.com/downloads/details.aspx?FamilyID=fe6f2099-b7b4-4f47-a244-c96d69c35dec&displaylang=en

1.1 http://www.microsoft.com/downloads/details.aspx?FamilyID=9b3a2ca6-3647-4070-9f41-a333c6b9181d&displaylang=zh-tw

星期二, 5月 22, 2007

SQL2000 錯訊"訊息層級 16, 3628, 狀態 1: 使用者處理序中發生浮點例外。已取消目前的交易。"

最近在查閱一張表時,出現了異常的資料,該欄位明明是浮點數,但他出現的資料卻是"-1#xxx",若是使用該欄位排序,則會出現錯訊

查閱了文檔,說升級到了sp4即可以解決,但我的機器己經是sp4了,最後排除的方式為把資料匯出,再重新匯入即解決

星期二, 2月 13, 2007

錯訊排除 : Exception has been thrown by the target of an invocation. The original message is 'Index and length must refer to a location within the string.

中文 : 索引和長度必須參考字串中的位置。\r\n參數名稱: length

英文 : Exception has been thrown by the target of an invocation. The original message is 'Index and length must refer to a location within the string. Parameter name: length'.


原因:String.Substring(0, 4)要取用的結束長度比原字串還長

星期一, 2月 12, 2007

Virtual Pc 的硬碟檔(vhd)案廋身法

最近要測一些元件,雖然使用Viutual PC或是vm很方便,但用久了難免會變得很肥大。不過可以透過一些方式讓檔案變小一點。

1.關閉xp的系統還原,清除不必要的檔案
2.install Virtual Machine Additions
3.Mount C:\Program Files\Microsoft Virtual PC\Virtual Machine Additions\Virtual Disk Precompactor.iso 執行裡頭的 precompact.exe
4.關閉執行中的系統
5.virtual pc console/ file / virtual disk wizard
6.edit an existing virtual disk / Compact it!

這樣子即可縮減hdd大小
不過只能使用在Dynamically expanding模式的磁碟,對於愛用differencing的熊並不適用

星期三, 12月 20, 2006

Visual Studio 2005 Sp1正式版安裝問題

最近Visual Studio 2005 Sp1出來了,但安裝時一直出現下列問題"Windows Installer 服務無法安裝升級",試著將Installer更到最新,但重安裝還是出現如下的問題。










弄到最後,只好試著把SP1(Beta)移除掉,重裝正式版即可,但安裝後發現一件更好玩的事情,menu跟快訊全變成中文了! 快吐血!

若有安裝sp1beta.要移除時.記得先準備好你原來的安裝片!

星期一, 12月 18, 2006

Office 2007 各版本的差異

好久沒查看msdn發佈了什麼新玩意! 周日上午有些空檔,查看了一下簡直要昏倒! 出了一堆東西,看了一下有繁體版的office 2007,馬上download下來看看,將近700mb的檔案,花了30分鐘即下載完成,網路實在爭氣!

在下載前,查看了一下各版本分別,在這裡有蠻詳細的說明!

花了一下時間做升級,若想保留原始的版本也是可行,不過安裝時要選擇"自訂"從裡頭去勾選保留原始版本(除了outlook一定要移除舊版本外),安裝後覺得還蠻不錯用的! 尤其像outlook的附加檔案預視功能,點選到附加檔案時,下面即會切到該檔案的預視功能!



雖然他有很強大的功能,不過他的工月具列卻很佔空間,對1280*768的解析度實在很吃力,找了一下不知道如何縮小工具列,但卻可以在工具列按右鍵選擇自動隱藏。

星期六, 12月 02, 2006

增加你無線網卡的火力--以intel網卡為例

最近因為工作的因素.需要做搬家的動作,而在台北的網路需要優先做處份,因為到時的cable modem要先還給東森,若到月底可能就沒有這些時間了!

回到家拿出了公司配的NB在做規格的檢視,突然無線網路就連上了一家沒設密碼的AP上,當下突然覺得,台北真是個好地方隨手一SCAN都有數個免費AP可用,不過訊號並不是很穩定。打開無線網卡的設定..疑.可以調整耶!

1.開啟Intel PROSet Wireless
2.MENU/進階/介面卡設定
3.將傳輸功率/電源管理 的使用DEFAULT值取消,將輸出功率加大!

本來不穩定的網路就變安份多了!

此時又開了命令模式,使用ping gateway -t 讓ping的指令連續不停運作,拿著nb四處移動,發覺一個很有趣的現像,連隔著一片"落地的玻璃窗(大約1cm)"對傳輸都會造成很大的影響! 打開落地玻璃窗即可坐在書桌前邊餵蚊子邊上網!