2008年6月23日 星期一

解除預設輸入法

有時候當我們瀏覽網頁或使用windows式窗程式時,當跳到輸入控制項時,系統會自行切換預設之輸入法,明明已經切換到了自己想要的輸入法,當跳到下一個輸入控制項,又切換為系統預設的輸入法,實在很討厭,解決方式如下: 1.解除安裝替代使用者輸入
從系統中解除安裝:
(1)關閉所有 Office 程式。
(2)點選「開始」→「設定」→「控制台」。
(3)在控制台裡,按兩下「新增/移除程式」。
(4)在目前安裝的程式中,選擇 Microsoft Office XP 產品。點選「變更」。
(5)在程式安裝對話方塊中,選擇「新增或移除功能」,然後選「下一步」。這時會顯示「要安裝的功能」對話方塊。
(6)按一下「 Office 共用的功能」旁邊的加號。
(7)按「替代使用者輸入」的圖示,選擇「無法使用」。
(8)按「更新」。

2.從文字服務裡,移除使用者輸入法:
(1)點選「開始」→「設定」→「控制台」。
(2)在控制台裡,按兩下「文字服務」。
(3)在已安裝服務清單中,除英語(美國)以外,一個個移除其餘的輸入法。

3.執行 regsvr32 /U msimtf.dll 和regsvr32 /U msctf.dll 檔案。
(1)點選「開始」→「執行」。
(2)在執行對話方塊,鍵入以下指令:
regsvr32.exe /U msimtf.dll
(3)按「確定」。
(4)對 msctf.dll 檔案,重覆上述一到三步驟。

就這樣^^
參考來源:http://www.atlaspost.com/landmark-121662-bbs-2.htm

2008年6月17日 星期二

將直式資料以橫式方式(二維方式)顯示-JOIN方式

若資料內含非數值的話,用彙總函式+UNION方式轉為橫式資料會做不出來
換另一種思維模式,其實用JOIN方式也可以達到相同效果
不過join時須小心"卡式積"效應....


SELECT T1.SPNO,T1.ITEMS,T1.SIZE01,T2.SIZE02,T3.SIZE03,T4.SIZE04,T5.SIZE05,T6.SIZE06,T7.SIZE07
,T8.SIZE08,T9.SIZE09,TA.SIZE10,TB.SIZE11,TC.SIZE12,TD.SIZE13,TE.SIZE14
FROM
(select SPNO,ITEMS,SIZES SIZE01 from FDRTDSIZE WHERE COLS='01' ) T1
LEFT JOIN ( SELECT SPNO,ITEMS,SIZES SIZE02 from FDRTDSIZE WHERE COLS='02' ) T2 ON T1.ITEMS=T2.ITEMS AND T1.SPNO=T2.SPNO
LEFT JOIN ( SELECT SPNO,ITEMS,SIZES SIZE03 from FDRTDSIZE WHERE COLS='03' ) T3 ON T1.ITEMS=T3.ITEMS AND T1.SPNO=T3.SPNO
LEFT JOIN ( SELECT SPNO,ITEMS,SIZES SIZE04 from FDRTDSIZE WHERE COLS='04' ) T4 ON T1.ITEMS=T4.ITEMS AND T1.SPNO=T4.SPNO
LEFT JOIN ( SELECT SPNO,ITEMS,SIZES SIZE05 from FDRTDSIZE WHERE COLS='05' ) T5 ON T1.ITEMS=T5.ITEMS AND T1.SPNO=T5.SPNO
LEFT JOIN ( SELECT SPNO,ITEMS,SIZES SIZE06 from FDRTDSIZE WHERE COLS='06' ) T6 ON T1.ITEMS=T6.ITEMS AND T1.SPNO=T6.SPNO
LEFT JOIN ( SELECT SPNO,ITEMS,SIZES SIZE07 from FDRTDSIZE WHERE COLS='07' ) T7 ON T1.ITEMS=T7.ITEMS AND T1.SPNO=T7.SPNO
LEFT JOIN ( SELECT SPNO,ITEMS,SIZES SIZE08 from FDRTDSIZE WHERE COLS='08' ) T8 ON T1.ITEMS=T8.ITEMS AND T1.SPNO=T8.SPNO
LEFT JOIN ( SELECT SPNO,ITEMS,SIZES SIZE09 from FDRTDSIZE WHERE COLS='09' ) T9 ON T1.ITEMS=T9.ITEMS AND T1.SPNO=T9.SPNO
LEFT JOIN ( SELECT SPNO,ITEMS,SIZES SIZE10 from FDRTDSIZE WHERE COLS='10' ) TA ON T1.ITEMS=TA.ITEMS AND T1.SPNO=TA.SPNO
LEFT JOIN ( SELECT SPNO,ITEMS,SIZES SIZE11 from FDRTDSIZE WHERE COLS='11' ) TB ON T1.ITEMS=TB.ITEMS AND T1.SPNO=TB.SPNO
LEFT JOIN ( SELECT SPNO,ITEMS,SIZES SIZE12 from FDRTDSIZE WHERE COLS='12' ) TC ON T1.ITEMS=TC.ITEMS AND T1.SPNO=TC.SPNO
LEFT JOIN ( SELECT SPNO,ITEMS,SIZES SIZE13 from FDRTDSIZE WHERE COLS='13' ) TD ON T1.ITEMS=TD.ITEMS AND T1.SPNO=TD.SPNO
LEFT JOIN ( SELECT SPNO,ITEMS,SIZES SIZE14 from FDRTDSIZE WHERE COLS='14' ) TE ON T1.ITEMS=TE.ITEMS AND T1.SPNO=TE.SPNO

將直式資料以橫式方式(二維方式)顯示-UNION方式

以下sql可以將直列式之資料轉換為橫式列印
不過,前提為橫列之項目須固定,否則橫列之項目就必須以程式動態組出


--抓庫存轉成二維範例
--原檔案(對照用)
SELECT C.GONO1, C.GONO2, C.GONO3, C.INPQTY, C.BAKQTY, C.DINPQTY, C.DBAKQTY, C.CALQTY, C.OTHQTY, C.TOTQTY, Z.COLS
FROM FDRCGOMI C
LEFT JOIN FDRTDSIZE Z ON Z.SPNO = C.SPNO AND Z.SIZES = C.GONO3
WHERE C.SPNO = '007'
ORDER BY GONO1

--轉成二維
SELECT SPNO, GONO1, SUM(TOTQTY) AS TOTQTY
, SUM(CASE WHEN COLS = '01' THEN TOTQTY ELSE 0 END) AS SIZE01
, SUM(CASE WHEN COLS = '02' THEN TOTQTY ELSE 0 END) AS SIZE02
, SUM(CASE WHEN COLS = '03' THEN TOTQTY ELSE 0 END) AS SIZE03
, SUM(CASE WHEN COLS = '04' THEN TOTQTY ELSE 0 END) AS SIZE04
, SUM(CASE WHEN COLS = '05' THEN TOTQTY ELSE 0 END) AS SIZE05
, SUM(CASE WHEN COLS = '06' THEN TOTQTY ELSE 0 END) AS SIZE06
, SUM(CASE WHEN COLS = '07' THEN TOTQTY ELSE 0 END) AS SIZE07
, SUM(CASE WHEN COLS = '08' THEN TOTQTY ELSE 0 END) AS SIZE08
, SUM(CASE WHEN COLS = '09' THEN TOTQTY ELSE 0 END) AS SIZE09
, SUM(CASE WHEN COLS = '10' THEN TOTQTY ELSE 0 END) AS SIZE10
, SUM(CASE WHEN COLS = '11' THEN TOTQTY ELSE 0 END) AS SIZE11
, SUM(CASE WHEN COLS = '12' THEN TOTQTY ELSE 0 END) AS SIZE12
, SUM(CASE WHEN COLS = '13' THEN TOTQTY ELSE 0 END) AS SIZE13
, SUM(CASE WHEN COLS = '14' THEN TOTQTY ELSE 0 END) AS SIZE14
FROM (
--原來的資料
SELECT C.SPNO, C.GONO1, C.GONO2, C.GONO3, C.INPQTY, C.BAKQTY, C.DINPQTY, C.DBAKQTY, C.CALQTY, C.OTHQTY, C.TOTQTY, Z.COLS
FROM FDRCGOMI C
LEFT JOIN FDRTDSIZE Z ON Z.SPNO = C.SPNO AND Z.SIZES = C.GONO3
WHERE C.SPNO = '007'
AND COLS IS NOT NULL
--原來的資料結束
) AS A
GROUP BY SPNO, GONO1
ORDER BY SPNO, GONO1

2008年6月15日 星期日

DELPHI常用小TIP

最近因為工作的關係,又回來玩DELPHI了
算算時間,已經二年多將近三年沒有用DELPHI開發系統了
要慢慢找回"失去的記憶",這種感覺還挺複雜的
前一陣子,上網找些DELPHI的資料,回去以前常逛的論壇隨便晃晃
才知道,原來BORLAND已經把DELPHI賣掉了.....
嗯...心裡感觸真的很多,畢竟對這套優秀的開發工具,還是充滿了感情
在VISUAL STUDIO.NET 還沒發表前,DELPHI的確是當時開發WIN FORM系統最好的RAD
尤其是開發三層式架構系統的最佳利器(至少個人是這麼認為)
時代推進到.NET,結果還是不敵微軟的強勢行銷,
當然 DELPHI的下坡,原因很複雜的.....
啦啦喳喳打這麼多,感覺真的有點像碎碎念,好像年紀越大,越多愁善感....~"~
最近,在複習DELPHI時,順便整理一下常用的小TIP
如果有人在看寡人BLOG,但是對內容有任何疑問的話,請直接留下意見發表吧!
大家交流交流,畢竟用DELPHI的人已經逐漸要變稀有動物了qq....


取得DataSet目前紀錄指標位置 var BK: TBookmark;//宣告
BK:=cdsDetail.GetBookmark;//取得
cdsDetail.GotoBookmark(BK);//將指標指回當時DataSet之Record
cdsDetail.FreeBookmark(BK);//釋放指標
將感知元件與DataSet切斷連結 cdsDetail.DisableControls;
將感知元件與DataSet恢復連結 cdsDetail.EnableControls;
呼叫另一個應用程式
ShellExecute(Application.Handle,'open' ,PChar('C:\TOOLS\AAAA.exe'),nil,nil,SW_SHOW);
尋找DataSet中之資料
Result:=cdsPSSDI.Locate('CUNO;PDATE;GONO', VarArrayOf([cuno, cdsDataPDATE.AsString, gono]), []);


持續更新中.....

一些不錯用的SQL技巧

一些不錯用的SQL技巧:

A.判斷資料存在時修改,不存在時新增
if EXISTS(SELECT * FROM JOBS WHERE JOB_DESC='AAA')
UPDATE JOBS SET JOB_DESC='TEST' WHERE JOB_DESC='AAA'
ELSE
INSERT INTO JOBS(JOB_DESC,MAX_LVL,MIN_LVL) VALUES('AAA',70,90)

B.批次新增資料(從資料表B新增資料到資料表A)
INSERT INTO JOBS(JOB_DESC,MAX_LVL,MIN_LVL)
SELECT JOB_DESC,MAX_LVL,MIN_LVL FROM JOBS WHERE MIN_LVL=25

C.複製資料表資料及結構並自動建立TARGET_TABLENAME(將SOURCE_TABLENAME之資料結構複製至TARGET_TABLENAME)
SELECT * INTO TARGET_TABLENAME FROM SOURCE_TABLENAME WHERE CONDITION

D.取出系統日與資料日期之差異天數(資料日期格式為字串:YYYYMMDD)
DATEDIFF(DAY, CAST(S.DATE AS DATETIME), GETDATE())

持續更新中.....

2008年6月3日 星期二

兒子會叫爸爸了

今天老婆幫兒子洗完澡之後,把全身包著浴巾的兒子抱來我旁邊,然後對著我傻笑,我心裏想妳又想做什麼(老婆是出了名的魯小小)......



這時候,神奇的事情發生了.......,兒子開口叫"爸爸"

等了一年又八個月(兒子是95年10月出生),終於等到這句話了,真是漫長的歲月阿....,不過,仔細想想,好像有點奇怪....,為什麼他不是學會先叫"媽媽",而是先學會叫"爸爸"呢?以後肚子餓...爸爸,睡到一半醒來...爸爸,想找人玩....爸爸,有任何事....爸爸.....爸爸.....爸爸.....爸爸.....爸爸.....爸爸.....

這看起來像另一場惡夢的開始......


2008年6月1日 星期日

好用工具:Yahoo!奇摩輸入法

推薦好用工具:Yahoo!奇摩輸入法

今天在看 ZDNet 的 RSS 訂閱文章的時候發現一則雅虎奇摩推中文輸入法 自誇比微軟好用,心血來潮的把這套輸入裝起來用看看,結果還真的不錯勒!

image

真沒想到Yahoo!奇摩竟然會出一套中文輸入法工具,而且最強的是他們藉著雅虎搜尋系統所搜集的大量詞庫讓選字的機會大大降低,減少許多選字的時間,我自己親身體驗一下發現真的很厲害,我今天的這篇部落格文章就是用Yahoo!奇摩輸入法的「好打注音」輸入法輸入的,真的需要選字的次數應該不超過 3 次,真的是太強了。

我兩年前就是因為微軟做的注音輸入法的選字太差,所以還特別買了比較好用的自然注音輸入法,到今天我想連自然注音輸入法都可以丟了,因為光是 Yahoo!奇摩輸入法的「好打注音」幾乎就可以打遍天下無敵手了。

該輸入的的操作幾乎跟微軟新注音輸入法差不多,但有多些不錯的功能,我大致摘錄一下一些好用的功能與操作技巧:

1. 支援常用符號輸入功能

常用符號輸入功能 1

常用符號輸入功能 2

常用符號輸入功能 3

2. 支援簡體中文輸出(你打完字之送出之后会自动转换成简体中文喔)

image

image

3. 提供「一點通」模式

只要輸入 ` 符號,就會開啟選單,並且直接執行 Yahoo! 奇摩 所提供的一些線上服務。

如下圖示在鍵盤裡可以直接輸入 ` 1 test {Enter} 就可以完成英漢字典的查詢,的確是挺方便的。

提供「一點通」模式  

提供「一點通」模式 :英漢字典

提供「一點通」模式 :字典查詢

其他的詳細功能可以上Yahoo!奇摩輸入法網站查詢。

好用工具:Data Dictionary Creator

推薦好用工具:Data Dictionary Creator

今天要介紹的工具是 Data Dictionary Creator (DDC),是一個簡單又實用的工具,他可以幫你的 SQL Server 中的資料庫每一個表格、欄位做註解,註解寫完之後是直接儲存在 SQL Server 中的「擴充屬性」中,然後可以直接輸出完整的資料庫結構說明文件(包括 Word, Excel, Xml, Html, T-SQL 等),如果覺得不夠還可以自己擴充,因為這軟體是在 CodePlex 上的一個開放原始碼專案。

Data Dictionary Creator

大家應該都知道在設計 SQL Server 資料表的時候每個欄位都有個屬性叫做「描述」,可以說明該欄位是做什麼用的:

image

這個欄位的值其實是儲存在該欄位的「擴充屬性」裡,其屬性名稱是 MS_Description

這個欄位的值其實是儲存在該欄位的「擴充屬性」裡,其屬性名稱是 MS_Description

我曾經在之前也寫過一篇SQL Server Management Studio 表格設計技巧,建議各位可以去看看。

而 Data Dictionary Creator 就是靠著擴充屬性的自訂,將所有可註解的訊息全部紀錄在資料庫中,除了預設的 Description 欄位外,你還可以自訂其他的擴充屬性,讓你在 Document Database 頁籤的畫面中輸入。

例如說:你可以在 Advanced Settings 的 Document Additional Properties 輸入「UI 輸入說明」

在 Advanced Settings 的 Document Additional Properties 輸入「UI 輸入說明」

之後再進入 Document Database 頁籤就會馬上看到「UI 輸入說明」的欄位:

再進入 Document Database 頁籤就會馬上看到「UI 輸入說明」的欄位

最後再到 Export Documentation 就可以輸出文件:

到 Export Documentation 就可以輸出文件

之後你再選取你要輸出的格式即可:

選取你要輸出的格式

這樣你就可以立即獲得一份完整的資料庫表格欄位說明文件了,而且不用再維護「離線的文件」,任何資料庫欄位有變更,只要用這軟體編輯一下就可以匯出新的文件了,且最新資訊永遠留在資料庫中,真的是個很理想的文件撰寫模式。

除此之外,還可以將之前匯出的 XML 檔案手動編輯之後重新匯入資料庫,直接覆蓋掉現有資料庫中的擴充屬性。

可以將之前匯出的 XML 檔案手動編輯之後重新匯入資料庫,直接覆蓋掉現有資料庫中的擴充屬性