線上訂房服務-台灣趴趴狗聯合訂房中心
發文 回覆 瀏覽次數:1672
推到 Plurk!
推到 Facebook!

臺灣兄弟姐妹請幫大陸新手小弟之忙:Master/Detail問題

答題得分者是:T.J.B
lolot
一般會員


發表:6
回覆:9
積分:3
註冊:2002-11-26

發送簡訊給我
#1 引用回覆 回覆 發表時間:2002-11-27 12:25:10 IP:218.18.xxx.xxx 未訂閱
我用Delphi 6.0 SQL2000建有以下表(我用中文描述,如習慣用語不對請諒解): Master表: 訂貨單頭表 Fields :訂貨單號,客戶編碼,訂貨時間,送貨时時 客戶資料表 Fields :客戶編碼,客戶名稱,聯繫人,送貨地址,聯繫電話 Detail表: 訂貨單身表 Fields: 序號,訂貨單號,商品編碼, 數量 商品資料表 Fields:商品編碼,品名規格,單位,供應商 訂貨單錄入介面設計如下: Master單頭用TADOQuery産生,用DBEdit, 包含以下欄位: 單號,客戶名稱,聯繫人,送貨地址,聯繫電話,訂貨時間,送貨時間 選擇客戶名稱後帶出 聯繫人,送貨地址,聯繫電話欄位 Detail單身用TADOQuery産生,用DBGrid, 包含以下欄位: 序號,訂貨單號,商品編碼,品名規格,單位,數量 輸入商品編碼後帶出 品名規格,單位欄位 我用TADOTable時無法新增資料,用TADOQuery時單身的 訂貨單號 無法産生 請各位大哥大姐幫我,以前我用Access時很輕鬆就可以搞定,現在~~~~~~~~~ 小弟不勝感激,先謝過! 没有脾气
------
没有脾气
T.J.B
版主


發表:29
回覆:532
積分:497
註冊:2002-08-14

發送簡訊給我
#2 引用回覆 回覆 發表時間:2002-11-27 13:20:56 IP:61.220.xxx.xxx 未訂閱
你這樣問 有點不知道從何回答起 因為問題可能很多 能不能把 1:用TADOTable時無法新增資料 2:用TADOQuery時單身的 訂貨單號 無法産生 再精確描述 及所發生的錯誤訊息為何 天行健 君子當自強不息~~@.@
------
天行健
君子當自強不息~~@.@
lolot
一般會員


發表:6
回覆:9
積分:3
註冊:2002-11-26

發送簡訊給我
#3 引用回覆 回覆 發表時間:2002-11-27 14:25:46 IP:218.18.xxx.xxx 未訂閱
T.J.B斑竹: 你好! 我也不知道怎樣回答你才好?我把錄入的表單畫出來,上面是單頭,下面是單身,把資料庫表結構列出來讓你看,你就不管我出現的問題,你幫我看看怎麽做比較好行嗎? 打單日期: 營業員: 訂貨單號: 預付訂金: 客戶名稱: 收銀員: 聯繫電話: 訂貨折扣: 聯繫地址: 付款方式: 訂貨時間: 運費: 送貨時間: 單別: 備註: 商品編碼 品名規格 顔色 單位 數量 單價 折扣 金額 表結構: 訂貨單頭表:訂貨日期,訂貨單號,客戶ID,訂貨時間,送貨時間,營業員ID, 預付訂金,收銀員ID,訂貨折扣,付款方式ID,運費,單別ID等等 客戶資料表:客戶ID,客戶名稱,聯繫人,聯繫電話,送貨地址等等 營業員資料:營業員ID,營業員等等 收銀員資料:收銀員ID,收銀員等等 付款方式表:付款方式ID,付款方式等等 單別資料表:單別ID,單別 訂貨單身表:序號,訂貨單號,商品編碼,顔色,數量,單價,折扣等等 商品編碼表:商品編碼,品名規格,單位,供應商等等 由資料庫表的欄位名稱可以看出各表間的關係,現在要達到上圖的效果要怎麽做?如果方便,可不可以給我做個範例. 拜託啦!有空來深圳出差我請大家喝茶。 没有脾气
------
没有脾气
T.J.B
版主


發表:29
回覆:532
積分:497
註冊:2002-08-14

發送簡訊給我
#4 引用回覆 回覆 發表時間:2002-11-27 15:40:52 IP:61.220.xxx.xxx 未訂閱
你可以把 訂貨單頭表 當Master join客戶資料表,營業員資料,收銀員資料,付款方式表,單別資料表 所需要顯示在dbedit上的欄位 然後 訂貨單身表 當作Detail join 商品編碼表所需要顯示在dbgrid上的欄位 grid所顯示的欄位可以為 序號,商品編碼,品名規格,單位,數量 輸入商品編碼後帶出 品名規格,單位欄位 又因為規則上為 一張訂貨單可以有多筆商品所以 訂貨單號把它獨立出來 不需要在dbgrid裡 在做新增的動作時 在Detail的Query上 onNewRecord事件 就把訂貨單號的值寫進去 其他的欄位值在dbgrid裡輸入即可 然後Master/Detail 可用 訂貨單號 做連結 但是要注意 Detail 多一個 商品編碼的key值 (這是避免資料重複的key 值) 也就是 訂貨單頭表 key值 -->訂貨單號,客戶編碼 訂貨單身表 key值 -->訂貨單號,商品編碼,序號 (實際的key值照你資料庫鎖定的即可 這裡只是假設) 另外搭配UpdateSQL元件來做 就可以了 ps: 1:query的cachedUpdate,Requestlive屬性要設為True; 2:在Detail的Query上 onNewRecord事件 就把key值寫進去 天行健 君子當自強不息~~@.@
------
天行健
君子當自強不息~~@.@
lolot
一般會員


發表:6
回覆:9
積分:3
註冊:2002-11-26

發送簡訊給我
#5 引用回覆 回覆 發表時間:2002-11-27 15:58:05 IP:218.18.xxx.xxx 未訂閱
非常感謝!我馬上試試,回頭在告訴你結果,以後還請不吝賜教! 没有脾气
------
没有脾气
lolot
一般會員


發表:6
回覆:9
積分:3
註冊:2002-11-26

發送簡訊給我
#6 引用回覆 回覆 發表時間:2002-11-28 10:51:38 IP:218.18.xxx.xxx 未訂閱
非常感謝T.J.B斑竹的幫助,我的問題解決了,謝謝! 後來我把論壇裏的文章全翻了一遍,收穫很大,同時解決了我很多問題! 可還有一個問題沒法搞定,就是折扣的問題,比如要怎樣才能把小數0.98 Display爲 98.00% 用DBEdit 或 DBGrid顯示 没有脾气
------
没有脾气
T.J.B
版主


發表:29
回覆:532
積分:497
註冊:2002-08-14

發送簡訊給我
#7 引用回覆 回覆 發表時間:2002-11-28 13:19:40 IP:61.220.xxx.xxx 未訂閱
到欄位編輯器選到折扣的欄位 有一個displayformat的屬性 打入 #,###.00% 即可 天行健 君子當自強不息~~@.@
------
天行健
君子當自強不息~~@.@
lolot
一般會員


發表:6
回覆:9
積分:3
註冊:2002-11-26

發送簡訊給我
#8 引用回覆 回覆 發表時間:2002-11-28 16:48:32 IP:218.18.xxx.xxx 未訂閱
好像不行也,輸入 #,###.00% 後小數 0.98 用DBEdit顯示結果爲 .98% 如果寫代碼是可以搞定,但我以爲有簡便方法。 要不拜託你幫我try 看看,麻煩你啦! 没有脾气
------
没有脾气
chih
版主


發表:48
回覆:1186
積分:639
註冊:2002-04-02

發送簡訊給我
#9 引用回覆 回覆 發表時間:2002-11-28 17:10:41 IP:211.74.xxx.xxx 未訂閱
#,##0.00% try try see
引言: 好像不行也,輸入 #,###.00% 後小數 0.98 用DBEdit顯示結果爲 .98% 如果寫代碼是可以搞定,但我以爲有簡便方法。 要不拜託你幫我try 看看,麻煩你啦! 没有脾气
lolot
一般會員


發表:6
回覆:9
積分:3
註冊:2002-11-26

發送簡訊給我
#10 引用回覆 回覆 發表時間:2002-11-28 18:08:08 IP:218.18.xxx.xxx 未訂閱
可能中間有些誤會,我的意思是這樣: 要求數據庫表中的小數值如 0.98 用DBEdit顯示為 98.00% 而在 displayformat 中設置為 #,###.00% 時顯示為 .98% 設置為 #,##0.00% 時顯示為 0.98% 都不是我要求達到的效果,請各位再幫我想想辦法,拜託! 沒有脾氣
------
没有脾气
chih
版主


發表:48
回覆:1186
積分:639
註冊:2002-04-02

發送簡訊給我
#11 引用回覆 回覆 發表時間:2002-11-28 18:56:46 IP:61.217.xxx.xxx 未訂閱
如果你相乘的值是0.98.. 但你要顯示是98%.. 是不是這各欄位你應該是存0.98*100=98ㄋ?? 然後再按照DisplayFormat的設定應該就對了阿..
lolot
一般會員


發表:6
回覆:9
積分:3
註冊:2002-11-26

發送簡訊給我
#12 引用回覆 回覆 發表時間:2002-11-29 16:52:05 IP:218.18.xxx.xxx 未訂閱
我的意思是我資料表裏的資料是小數如 0.98 ,要求達到用DBEdit顯示爲 98.00% 這樣的效果,在數學上 0.98 = 98.00% 只是格式不同而已,一個是小數,一個是百分比。 我這樣要求只是爲了介面的美觀,如果需要代碼來解決我就放棄了 没有脾气
------
没有脾气
領航天使
站長


發表:12216
回覆:4186
積分:4084
註冊:2001-07-25

發送簡訊給我
#13 引用回覆 回覆 發表時間:2002-11-29 17:41:16 IP:192.168.xxx.xxx 未訂閱
引言: 我的意思是我資料表裏的資料是小數如 0.98 ,要求達到用DBEdit顯示爲 98.00% 這樣的效果,在數學上 0.98 = 98.00% 只是格式不同而已,一個是小數,一個是百分比。 我這樣要求只是爲了介面的美觀,如果需要代碼來解決我就放棄了 没有脾气
寫在TField中的OnGetText事件去轉換就可以了, 您先試看看! ~~~Delphi K.Top討論區站長~~~
------
~~~Delphi K.Top討論區站長~~~
系統時間:2024-06-26 8:12:07
聯絡我們 | Delphi K.Top討論版
本站聲明
1. 本論壇為無營利行為之開放平台,所有文章都是由網友自行張貼,如牽涉到法律糾紛一切與本站無關。
2. 假如網友發表之內容涉及侵權,而損及您的利益,請立即通知版主刪除。
3. 請勿批評中華民國元首及政府或批評各政黨,是藍是綠本站無權干涉,但這裡不是政治性論壇!