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

請問這個萬用查詢的功能是如何作出來的?

答題得分者是:kevin2004
limary
初階會員


發表:41
回覆:109
積分:30
註冊:2007-01-11

發送簡訊給我
#1 引用回覆 回覆 發表時間:2007-04-29 15:06:05 IP:61.219.xxx.xxx 訂閱
各位前輩:大家好。
學姐有給小妹一個別人寫的系統,裏面有個萬用查詢的功能,它可以讓我們選某個資料來源的某一表格或組合多表後顯示在一個DBGrid中。神奇的是,它可以讓我們在雙點某個Memo欄位時讓我們看或修改存回此Memo欄位的內容。更強的是,它竟然可以將原先存入Image或OleObject的Word/MDB/JPG轉出來。這實在太驚人了。這是如何作的。它不是某個固定的DataSet,怎麼可以作的如此之輕易?
pedro
尊榮會員


發表:152
回覆:1187
積分:892
註冊:2002-06-12

發送簡訊給我
#2 引用回覆 回覆 發表時間:2007-04-29 21:29:14 IP:61.224.xxx.xxx 未訂閱
這是一個自訂查詢視窗,會根據來源的dataset顯示對應的欄位及資料,
大概在上頭擺放要組合查詢條件的元件
類似
並且/或(Combobox)、 欄位選擇(combobox)、 等於大於等於大於小於等於小於含有(combobox)、值(Edit)
組合條件顯示的Memo(依使用者條件組合出來呈現如 姓名包含'王淑%'並且住址包含'台北縣%')
還有您所述的影像(Image)
在TForm上擺放上面那些元件,及一些按鈕
開放一些操作的method,供來源視窗取回組合條件後的條件字串

在FormCreate時,即指定來源的DataSet(此時有可能是客戶的基本資料維護來源)
依這個DataSet填入欄位選擇的combobox,讓使用者可挑選,
當使用者按DBGrid挑選查詢出來的預覽資料,即在此時從dataset來源,取得目前的image資料.
為了要達到適用各類的狀況,可能要寫蠻多的程式碼
kevin2004
資深會員


發表:18
回覆:463
積分:416
註冊:2005-05-29

發送簡訊給我
#3 引用回覆 回覆 發表時間:2007-04-29 22:19:22 IP:61.219.xxx.xxx 訂閱
它可以讓我們在雙點某個Memo欄位時讓我們看或修改存回此Memo欄位的內容。
==>這有什麼難的?只要判斷是MemoType就下 AdoQuery1.Field..AsString就抓出來了,
==>可抓出就可存回啦
==>if TargetDBGrid.SelectedField.datatype in [ftMemo] then // 如果是Memo欄
==>抓值SSText := TargetDBGrid.DataSource.DataSet.FieldByName(
TargetDBGrid.SelectedField.FieldName).AsString;
==>編修,自己寫啦
==>存回,自己寫啦
可以將原先存入Image或OleObject的Word/MDB/JPG轉出來..如何作的。
==>同理,先判斷是否是BlobType
==>if TargetDBGrid.SelectedField.datatype in [ftBlob] then // 如果是LargetBinaryObject欄
==>轉出的碼自己寫啦
它不是某個固定的DataSet,怎麼可以作的如此之輕易?
==>這有什麼問題?有Delphi的DBGrid.DataSource.DataSet等管它是接那個Table或SQL內容。
==>沒問題吧。
------
Kevin
編輯記錄
kevin2004 重新編輯於 2007-04-29 22:20:05, 註解 無‧
limary
初階會員


發表:41
回覆:109
積分:30
註冊:2007-01-11

發送簡訊給我
#4 引用回覆 回覆 發表時間:2007-05-02 19:45:45 IP:61.219.xxx.xxx 訂閱
謝謝兩位前輩的指點,原來DBGrid可以用的如此之活,實在太令人驚奇。
謝謝。
系統時間:2024-05-18 20:30:22
聯絡我們 | Delphi K.Top討論版
本站聲明
1. 本論壇為無營利行為之開放平台,所有文章都是由網友自行張貼,如牽涉到法律糾紛一切與本站無關。
2. 假如網友發表之內容涉及侵權,而損及您的利益,請立即通知版主刪除。
3. 請勿批評中華民國元首及政府或批評各政黨,是藍是綠本站無權干涉,但這裡不是政治性論壇!