謝謝jackkcg大哥,問題解決了(都是Dbimage作怪),我還有一個問題請教: |
答題得分者是:P.D.
|
zhczm888
一般會員 ![]() ![]() 發表:17 回覆:6 積分:4 註冊:2002-11-14 發送簡訊給我 |
|
P.D.
版主 ![]() ![]() ![]() ![]() ![]() ![]() 發表:603 回覆:4038 積分:3874 註冊:2006-10-31 發送簡訊給我 |
引言: 小數數值格式如何在輸入時控制,如我在SQL資料庫定義'單價'欄位形態為decimal,總長度為9,小數位為3,我也在TDdataSet的欄位屬性EdinFormat設為'#####.000'.但仍可輸入大於99999數字,請問大哥如何用Edit、Ebedit、Maskedit進行輸入控制,謝謝!據我的了解 1.EDIT格式並不提供 EDITMASK功能, 即使你在DATASET中設定EDITMASK仍屬無效 2.數值型態的EDIT, 如果透過 DBEDIT控制時, 並沒有EDITMASK這一項PROPERTY, 只有DISPLAYFORMAT, 所以你要用DBEDIT來控制長度理論上也是無法直接達成 3.MASKEDIT雖然有提供 EDITMASK, 但 MASKEDIT是繼承TEDIT物件, 所以原則上在這裡輸入的任何東西都是屬文字, 因此你指定 EDITMASK:= '#####.000', 理應是可以控制長度, 但應該是 '#####.000;1', 不過要把它與資料庫直接做CONNECT的話, 可能要費一番功夫 提供你兩個方式, 1.如果要使用DB感知元件, 在DBEDIT上設定MAXLENGTH應(可輸入最大長度)可解決你的問題, 在 FIELD上設定在DISPLAYFORMAT似乎會干擾小數部份的進位, 所以我通常不設定(在輸入畫面上), 一般我只在報表時, 為求畫面一致才會用FORMAT功能來表達小數 2.網路上有許多針對DELPHI對數值FORMAT加強的元件, 如果你真的那麼在意這方面的話, 強力建議你去找這些你合用的元件, 本站, 深度歷險或DEVexpress, TurboPower公司都有提供, 找找看! |
ko
資深會員 ![]() ![]() ![]() ![]() ![]() 發表:28 回覆:785 積分:444 註冊:2002-08-14 發送簡訊給我 |
本站聲明 |
1. 本論壇為無營利行為之開放平台,所有文章都是由網友自行張貼,如牽涉到法律糾紛一切與本站無關。 2. 假如網友發表之內容涉及侵權,而損及您的利益,請立即通知版主刪除。 3. 請勿批評中華民國元首及政府或批評各政黨,是藍是綠本站無權干涉,但這裡不是政治性論壇! |