全國最多中醫師線上諮詢網站-台灣中醫網
發文 回覆 瀏覽次數:1200
推到 Plurk!
推到 Facebook!

如何在DBGRID內產生暫時欄位,並可供輸入,求教各位前輩?

尚未結案
a123473119
一般會員


發表:19
回覆:46
積分:18
註冊:2002-08-08

發送簡訊給我
#1 引用回覆 回覆 發表時間:2003-06-15 23:09:07 IP:211.76.xxx.xxx 未訂閱
請教各位: 問題是這樣的, 假設要調整各個庫存品之售價, 原售價可能加 1%, 或 2% 不一定, 小弟想用 dbgrid 秀出各庫存品, 然後留一欄位讓使用者打入 調整比例, 1%,2%......, 最後form有一個 button 作確定, 依輸入資料,更 改整個庫存檔, 但此調價欄位,並不存在於原table 內, 該如何暫時在dbgrid 內產生此欄位,且可供輸入呢? 又要麻煩各位前輩了?
tech_state
版主


發表:44
回覆:638
積分:641
註冊:2003-02-10

發送簡訊給我
#2 引用回覆 回覆 發表時間:2003-06-15 23:54:28 IP:203.204.xxx.xxx 未訂閱
a123473119, 您好 請試試以下的方法。 (1)雙擊DBGrid所連結的Dataset,出現如下圖。 (2)按滑鼠右鍵,選擇New Field,出現如下圖,完成其設定即可。 ================================= 涵養怒中氣。謹防順口言。留心忙裡錯。珍惜有時錢。 是非終日有,不聽自然無 天下本無事,庸人自擾之
a123473119
一般會員


發表:19
回覆:46
積分:18
註冊:2002-08-08

發送簡訊給我
#3 引用回覆 回覆 發表時間:2003-06-17 19:00:04 IP:211.76.xxx.xxx 未訂閱
感謝 tech_state: 如照前輩所說設定, 用 Ttable 時, dbgrid 此暫時欄位無法輸入 資料. 若用 Zeos 元件 ,則會說 field not found 因此欄位本來就是不存在於實際 dataset 內, 還是因我用的是 MySql 有關. 真謝謝幫忙.
Jasonwong
版主


發表:49
回覆:931
積分:581
註冊:2006-10-27

發送簡訊給我
#4 引用回覆 回覆 發表時間:2003-06-17 20:11:17 IP:61.70.xxx.xxx 未訂閱
引言: 如照前輩所說設定, 用 Ttable 時, dbgrid 此暫時欄位無法輸入 資料. 若用 Zeos 元件 ,則會說 field not found 因此欄位本來就是不存在於實際 dataset 內, 還是因我用的是 MySql 有關.
你的 Field Type 要選擇 Calculated 這樣就可以了 -- 聰明的人,喜歡猜心;雖然每次都猜對了,卻失去了自己的心 傻氣的人,喜歡給心;雖然每次都被笑了,卻得到了別人的心
------
聰明的人,喜歡猜心;雖然每次都猜對了,卻失去了自己的心
傻氣的人,喜歡給心;雖然每次都被笑了,卻得到了別人的心
a123473119
一般會員


發表:19
回覆:46
積分:18
註冊:2002-08-08

發送簡訊給我
#5 引用回覆 回覆 發表時間:2003-06-18 10:33:21 IP:211.76.xxx.xxx 未訂閱
謝謝 Jasonwong: 如用 Field Type =Calculated 在dbgrid 內一樣是無法輸入資料的. 據小弟了解, field Type=data 應是本來就存在之欄位 field Type=Calculated 是在OnCalculated 運作的 而小弟需要的是要創造一個暫時性欄位,放於dbgrid內,以便對每一筆 record 輸入判斷性資料(如百分比,加減量,是否選取...), 這應用應該很廣,不知各位前輩可有其他方法? 謝謝相助.
a123473119
一般會員


發表:19
回覆:46
積分:18
註冊:2002-08-08

發送簡訊給我
#6 引用回覆 回覆 發表時間:2003-06-20 19:41:07 IP:211.76.xxx.xxx 未訂閱
看來此問題無解了. 再次感謝tech_state,Jasonwong 二位相助.
OsX
版主


發表:6
回覆:151
積分:111
註冊:2003-05-03

發送簡訊給我
#7 引用回覆 回覆 發表時間:2003-06-22 23:33:09 IP:211.76.xxx.xxx 未訂閱
引言: 看來此問題無解了. 再次感謝tech_state,Jasonwong 二位相助.
.......... 太早下定論....... 你用什麼資料集連接 MySLQ ? 你下 SQL 時, 可以多 Select 一個欄位, 例如: SELECT 0 as temp, a.xx, b.yy from ..... 這樣你的資料集元件裏就會有一個可編輯的 temp 的虛擬欄位, DBGrid 裏也就會多一個欄位可編輯了, 你只要注意更新資料時,不要把此欄位更新回資料庫即可.
a123473119
一般會員


發表:19
回覆:46
積分:18
註冊:2002-08-08

發送簡訊給我
#8 引用回覆 回覆 發表時間:2003-06-23 09:10:56 IP:211.76.xxx.xxx 未訂閱
謝謝 OsX 前輩: 我是用 Zeos 之 TzMysqlQuery 連 MYSQL 測試結果 select 0 temp1,0.1 temp2 ,acc.* from acc 運作正常 但如果要加一個字串欄位 TsqlQ.sql.add('select "abc" temp1,acc.* from acc') 或TsqlQ.sql.add('select ' #39 'abc' #39 ' temp1,acc.* from acc'); 皆會死當,無錯誤訊息 奇怪的是 用 Host 之mysql.exe , 或 delphi 之 sql explorer 下達 select 'abc' temp1,acc.* from acc 皆可正常運作, 怎會如此. 若改用 Tquery ,則無法設 RequestLive=True(所以無法輸入) 煩請賜教(實在很不好意思).
OsX
版主


發表:6
回覆:151
積分:111
註冊:2003-05-03

發送簡訊給我
#9 引用回覆 回覆 發表時間:2003-06-24 22:42:01 IP:211.76.xxx.xxx 未訂閱
使用 TQuery 要使用 RequestLive, 必須一併設定 CatchUpdate = True, 資料才可以修改,更新資料時要用ApplyUpdate才能寫回資料. 改用 Select ' ' as ABC from XXX 試試看, 這就是我問"用什麼資料集連接MySQL" 的原因, 有些資料集元件對這些虛擬欄位, 會有一些問題存在. 你使用的Zeos的元件對虛擬欄位可能有問題,你要多試 幾種狀況, 另外, 連接 MySQL 你可以用 dbExpress 試試看.
a123473119
一般會員


發表:19
回覆:46
積分:18
註冊:2002-08-08

發送簡訊給我
#10 引用回覆 回覆 發表時間:2003-06-25 18:16:06 IP:211.76.xxx.xxx 未訂閱
改用 sql.add('select repeat("Y ",1) temp1,0 temp2 ...'); 即可正常運作, 這個發現對 table 之整體操作,實在太有用了. 非常感謝 OsX 鼎力相助.
系統時間:2024-05-19 13:42:51
聯絡我們 | Delphi K.Top討論版
本站聲明
1. 本論壇為無營利行為之開放平台,所有文章都是由網友自行張貼,如牽涉到法律糾紛一切與本站無關。
2. 假如網友發表之內容涉及侵權,而損及您的利益,請立即通知版主刪除。
3. 請勿批評中華民國元首及政府或批評各政黨,是藍是綠本站無權干涉,但這裡不是政治性論壇!