如何做一個用戶易用的動態查詢 |
尚未結案
|
seagal2222
一般會員 發表:24 回覆:48 積分:14 註冊:2003-03-04 發送簡訊給我 |
|
wnhoo
高階會員 發表:75 回覆:443 積分:198 註冊:2003-04-22 發送簡訊給我 |
|
william
版主 發表:66 回覆:2535 積分:3048 註冊:2002-07-11 發送簡訊給我 |
|
timhuang
尊榮會員 發表:78 回覆:1815 積分:1608 註冊:2002-07-15 發送簡訊給我 |
Hi, 一般的動態查詢條件讓 user 自行輸入的方式. 弟的建議是採用 TListBox 讓 user 可以自行選擇欄位. 接下來再讓 user 選擇是 大於(>), 大於等於(>=), 小於(<), 小於等於(<=), 等於(=), 介於(between), 模糊(like %) 等, 並將所需的參數讓使用者輸入. 如選了 大於, 則必須輸入一個值, 如選了介於, 則必須輸入兩個值, 再選擇是真(true) 或是偽(false, 即反向要加 not), 最後再選這個條件的是且(and) 或是或(or) 條件.
所以最後組成的 query 會是這樣子: select xxx, .... from table .....
where
(1=1)
--------以下為組出結果---------
and ( custno > 10000 )
and ( orderdate between '2002/1/5' and '2002/1/8')
and ( not ( custname like 'John%' ) ) 這應該符合一般客戶的要求了. 但若是有複合查詢的話, UI 就會相當困難的. 當然使用者一定也會更難操作的. 希望這個方向對您有幫助
<>回文速度太慢了. 出文後才發現 >
> 發表人 -
|
seagal2222
一般會員 發表:24 回覆:48 積分:14 註冊:2003-03-04 發送簡訊給我 |
|
timhuang
尊榮會員 發表:78 回覆:1815 積分:1608 註冊:2002-07-15 發送簡訊給我 |
原則上我們都是假設使用者不了解 sql command 的原理來製作 UI 的, 所以弟在前一篇才會提醒你一個簡單的作法. 可以利用 TListBox 或是 ComboBox 來進行. 第一個 combobox (此為 dropdownlist, 僅可下拉) 為欄位, 第二個為條件, 條件會連動一個或是兩個輸入資料的 ComboBox (此為 dropdown, 可下拉, 也可讓使用者輸入). 之後再放一個新增按鈕, 一個簡易的介面就出來了.
ComboBox1 ComboBox2 Input (ComboBox3) Input (ComboBox4) Add Condition ________________________________________________________________________________________________ ORDER_ID < '' (可輸入) N/A(不可輸入) ORDER_DATE > '' (可輸入) N/A(不可輸入) CUST_NO = '' (可輸入) N/A(不可輸入) PRICE between '' (可輸入) ''(可輸入) STATUS SEND_DATE |
seagal2222
一般會員 發表:24 回覆:48 積分:14 註冊:2003-03-04 發送簡訊給我 |
|
seagal2222
一般會員 發表:24 回覆:48 積分:14 註冊:2003-03-04 發送簡訊給我 |
|
timhuang
尊榮會員 發表:78 回覆:1815 積分:1608 註冊:2002-07-15 發送簡訊給我 |
and, or 可以利用在加入時來選擇選, 至於 not 可以再多一個 CHECKBOX 來加入, 簡單地說, 不需要加入太多過度複雜的條件, 否則會讓使用者難以操作, 其實像是 in 的語法就是多個 or 組合, 所以也沒有必要使用 in, 當然 subquery 的部分也就更不需要考慮進來了, 否則直接教 user 下 sql command 還來得快一點呢~
Add Condition(btn) NOT Condition(chkbox) ComboBox1 ComboBox2 Input (ComboBox3) Input (ComboBox4) ____________________________________________________________________________________________________________________________________ btnAND checked=true (NOT) ORDER_ID < '' (可輸入) N/A(不可輸入) btnOR checked=false ORDER_DATE > '' (可輸入) N/A(不可輸入) CUST_NO = '' (可輸入) N/A(不可輸入) PRICE between '' (可輸入) ''(可輸入) STATUS SEND_DATE |
RobertLi
一般會員 發表:1 回覆:31 積分:21 註冊:2002-09-01 發送簡訊給我 |
>>问题有两个:1、有户不懂sql语句规则,2、用户不知什么样的界面好。
>>用户只知道条件的描述。 其實小弟個人看法是:
1.大家習慣以本身角度而非客戶角度思考,現在大家想的往往是『我們要
用的工具』,而非『客戶要用的工具』 2.大家講的跟開發工具﹝Delphi﹞提供給我們的有何不同?我們參照這些
去寫的工具,客戶怎會不哇哇叫。 3.應換個角度來思考與設計。用新界面,新流程,不要由Db-Stru,而要
由客戶熟悉的資料項為之。 4.重點是如何抓客戶的意思及轉為可能的 sql
發表人 - robertli 於 2003/05/29 10:20:57 發表人 - robertli 於 2003/05/29 10:26:19
|
RobertLi
一般會員 發表:1 回覆:31 積分:21 註冊:2002-09-01 發送簡訊給我 |
>>複合查詢的話, UI 就會相當困難的. 當然使用者一定也會
>>更難操作的. 不一定。 我們公司的產品很重視查詢,有時甚至會有一二十個條件的
And/Or察詢。符合客戶直覺,客戶抓來幾乎就立可上手。很少聽
到客戶抱怨。 而且我的看法是這些查詢應用的最大限制是客戶對其本身業務是否
熟悉是最大關鍵。 公司的產品還將統計、繪圖、各式報表﹝因為SQL已經出來了,報表
更是順理成章﹞寫在查詢的模組中。 有時後要修改特定資料,這些技巧也會用到的。 個人意見啦。 發表人 - robertli 於 2003/05/29 10:23:49
|
P.D.
版主 發表:603 回覆:4038 積分:3874 註冊:2006-10-31 發送簡訊給我 |
本站聲明 |
1. 本論壇為無營利行為之開放平台,所有文章都是由網友自行張貼,如牽涉到法律糾紛一切與本站無關。 2. 假如網友發表之內容涉及侵權,而損及您的利益,請立即通知版主刪除。 3. 請勿批評中華民國元首及政府或批評各政黨,是藍是綠本站無權干涉,但這裡不是政治性論壇! |