星期一, 11月 19, 2007

安裝完AppLocale後Windows install(msiexec)變亂碼的解決方式

原來安裝AppLocale是為了解決簡繁軟體顯示的問題,但隨之而來的卻是之後新安裝的程式全都變成了亂碼,功能表、登錄檔等等‧此時重新安裝Windows Installer 也無法改變,最後試了網路上的一篇文章解救了熊
1.刪除 C:\WINDOWS\AppPatch\AppLoc.tmp
2.用notepad建立一個無內容檔案,將他存成 C:\WINDOWS\AppPatch\AppLoc.tmp
3.將此檔案設成唯讀

2009/03/16 有更新做法.請參考 安裝完AppLocale後Windows install Shield變亂碼的完美解決方法

星期三, 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的熊並不適用