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

如何做一個用戶易用的動態查詢

尚未結案
seagal2222
一般會員


發表:24
回覆:48
積分:14
註冊:2003-03-04

發送簡訊給我
#1 引用回覆 回覆 發表時間:2003-05-25 10:49:52 IP:202.97.xxx.xxx 未訂閱
我做了一個動態查詢,但用戶說不易用,尤其是條件選擇方面,如sql語句的(思路是:取前端的參數(包括用戶輸入的)拼成sql串,然後在後端執行) and, or, in, not in,等,怎樣才能讓動態查詢更易應用呢?請各位高手指點
wnhoo
高階會員


發表:75
回覆:443
積分:198
註冊:2003-04-22

發送簡訊給我
#2 引用回覆 回覆 發表時間:2003-05-25 11:11:41 IP:61.155.xxx.xxx 未訂閱
1.将查询资料生成EXCEL形式,由用户自己操作EXCEL筛选 2.做成比较灵活的,如:    是否选择   字段列表  比较符   值    形式。    做多个这种形式,供用户组合使用。最后合成SQL    供参考! 如果客户再不会使用,他能“下班”了;哈哈哈~~~~~~~~~~~~~~~~~    风花雪月 e梦情缘
------
风花雪月 e梦情缘
william
版主


發表:66
回覆:2535
積分:3048
註冊:2002-07-11

發送簡訊給我
#3 引用回覆 回覆 發表時間:2003-05-25 11:29:57 IP:210.3.xxx.xxx 未訂閱
易用是沒有標準的,對小弟來說 SQL Explorer 已經是超級易用了  倒不如請你的用戶描述他心目中那易用介面吧,又或者設定簡易、進階模式等等...
timhuang
尊榮會員


發表:78
回覆:1815
積分:1608
註冊:2002-07-15

發送簡訊給我
#4 引用回覆 回覆 發表時間:2003-05-25 11:36:20 IP:61.221.xxx.xxx 未訂閱
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

發送簡訊給我
#5 引用回覆 回覆 發表時間:2003-05-27 09:04:57 IP:202.97.xxx.xxx 未訂閱
感谢个位高手意见。 问题有两个:1、有户不懂sql语句规则,2、用户不知什么样的界面好。 用户只知道条件的描述。 什么样的东西能符合他的要求呢?我没做过类似的查询,有无例子共参考一下
timhuang
尊榮會員


發表:78
回覆:1815
積分:1608
註冊:2002-07-15

發送簡訊給我
#6 引用回覆 回覆 發表時間:2003-05-27 09:41:52 IP:203.95.xxx.xxx 未訂閱
原則上我們都是假設使用者不了解 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

發送簡訊給我
#7 引用回覆 回覆 發表時間:2003-05-29 08:17:51 IP:202.97.xxx.xxx 未訂閱
感谢timehuang 界面已基本作出,先用两个listview来选择字段,然后是如你所说的界面,最后是个显示界面。 目前的难点在于,怎样让用户轻松地设置条件、如轻松地可选择出复合语句,如:select *** from *** where *** and *** or ***.......,这需一个复杂的算法,而且是动态的算法,不知各位高手有何意见,如有例子更好
seagal2222
一般會員


發表:24
回覆:48
積分:14
註冊:2003-03-04

發送簡訊給我
#8 引用回覆 回覆 發表時間:2003-05-29 08:19:27 IP:202.97.xxx.xxx 未訂閱
感谢timehuang 界面已基本作出,先用两个listview来选择字段,然后是如你所说的界面,最后是个显示界面。 目前的难点在于,怎样让用户轻松地设置条件、如轻松地可选择出复合语句,如:select *** from *** where *** and *** or ***.......(另外还有:in,not in ,is ,like 等各种关键字),这需一个复杂的算法,而且是动态的算法,不知各位高手有何意见,如有例子更好
timhuang
尊榮會員


發表:78
回覆:1815
積分:1608
註冊:2002-07-15

發送簡訊給我
#9 引用回覆 回覆 發表時間:2003-05-29 09:51:05 IP:203.95.xxx.xxx 未訂閱
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

發送簡訊給我
#10 引用回覆 回覆 發表時間:2003-05-29 10:07:17 IP:210.241.xxx.xxx 未訂閱
>>问题有两个: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

發送簡訊給我
#11 引用回覆 回覆 發表時間:2003-05-29 10:18:49 IP:210.241.xxx.xxx 未訂閱
>>複合查詢的話, UI 就會相當困難的. 當然使用者一定也會 >>更難操作的. 不一定。 我們公司的產品很重視查詢,有時甚至會有一二十個條件的 And/Or察詢。符合客戶直覺,客戶抓來幾乎就立可上手。很少聽 到客戶抱怨。 而且我的看法是這些查詢應用的最大限制是客戶對其本身業務是否 熟悉是最大關鍵。 公司的產品還將統計、繪圖、各式報表﹝因為SQL已經出來了,報表 更是順理成章﹞寫在查詢的模組中。 有時後要修改特定資料,這些技巧也會用到的。 個人意見啦。 發表人 - robertli 於 2003/05/29 10:23:49
P.D.
版主


發表:603
回覆:4038
積分:3874
註冊:2006-10-31

發送簡訊給我
#12 引用回覆 回覆 發表時間:2003-05-29 10:34:29 IP:61.66.xxx.xxx 未訂閱
引言: 我做了一個動態查詢,但用戶說不易用,尤其是條件選擇方面,如sql語句的(思路是:取前端的參數(包括用戶輸入的)拼成sql串,然後在後端執行) and, or, in, not in,等,怎樣才能讓動態查詢更易應用呢?請各位高手指點
嗨! 你可以到這裡下載我才丟上去的一支程式, 可能會有幫助, 當然在 sql的 操作度來說還不算簡易, 你可以自己再調整為更簡單的方式 http://delphi.ktop.com.tw/topic.php?TOPIC_ID=31340
系統時間:2024-05-18 12:14:13
聯絡我們 | Delphi K.Top討論版
本站聲明
1. 本論壇為無營利行為之開放平台,所有文章都是由網友自行張貼,如牽涉到法律糾紛一切與本站無關。
2. 假如網友發表之內容涉及侵權,而損及您的利益,請立即通知版主刪除。
3. 請勿批評中華民國元首及政府或批評各政黨,是藍是綠本站無權干涉,但這裡不是政治性論壇!