上一篇主題 :: 下一篇主題 |
發表人 |
內容 |
andrebiehn

註冊時間: 2009-04-05 文章: 16
第 1 樓
|
發表於: 星期四 八月 15, 2013 3:44 pm 文章主題: 遠端資料集搜尋問題請教 |
|
|
我在設計程式時大都使用資料集設計工具,將filter條件用'?變數'的方式設定進去,只要在form讓使用者輸入條件後再requery(),這種方式對於搜尋條件單純的都OK,但是對於多條件的搜尋就會不知所措,例如有七個欄位要搜尋,使用者不一定使用哪個欄位搜尋或是多欄位搜尋,我試著用select * from XX where XX的方式但都不成功,我的方式是先建好remote view但不設定條件,在form的環境裡設定這個view是nodataonload=.t.,然後下select的指令,但是搜尋不到資料,我知道這樣是不對的,因為已經nodataonload了當然不會有資料,但是就是不知道如何做,我也搜尋網路很久始終找不到相關的資料,是否是remote view也是用指令建立?那更新要如何設定?
我再描述清楚一點,例如欄位有 工號、名稱、內容、解決方式、提出人、完成日期 六個欄位
若是使用者輸入兩個工號123及 456,要查這兩個工號內的內容有”導輪”字樣、解決方式有”設計”字樣的資料皆抓取,也就是輸入的條件都要取交集。六個欄位都要能隨便選條件搜尋.....不知道是不是只有用select方式可以設定複雜的搜尋
抓到的資料又要show在grid裡,要又能改…..拜託各位先進指導一下 |
|
回頂端 |
|
 |
syntech
註冊時間: 2003-05-16 文章: 4249 來自: Taipei,Taiwan
第 2 樓
|
發表於: 星期四 八月 15, 2013 4:51 pm 文章主題: |
|
|
應該是 SQL 查詢語法的資料要補充一點吧.
你的問題不是 FOXPRO 的問題,
而是你不懂得下正確的SQL 查詢命令給後端資料庫過濾資料.
FOXPRO 的部分,
REMOTE DATASET 適合做固定條件的查詢,
如果你要做不固定條件的查詢,最好改用 SPT _________________ 如果公司有下列困擾:
1. 找不到便宜,快速,簡易的 生產排程軟體
2. 不知道如何快速排定 採購計劃
3. 成本抓不準,自己算比軟體算有用
4. 想學習系統規劃,想找系統架構的顧問
請聯絡我們,也許我們幫得上忙
syntech 在 星期四 八月 15, 2013 4:52 pm 作了第 1 次修改 |
|
回頂端 |
|
 |
andrebiehn

註冊時間: 2009-04-05 文章: 16
第 3 樓
|
|
回頂端 |
|
 |
garfield Site Admin

註冊時間: 2003-01-30 文章: 2160
第 4 樓
|
發表於: 星期四 八月 15, 2013 5:41 pm 文章主題: |
|
|
動態建立 view 做顯示是沒問題,
但如果要將 view 設成可以更新, 雖然條件都設對, 但還是有可能不成功.
如果資料筆數不多, 可以全部抓過來, 再用 set filter to 限定顯示的條件 也行. _________________ 利用>>搜尋<<的功能會比問的還要快得到答案. |
|
回頂端 |
|
 |
ckp6250
註冊時間: 2004-07-30 文章: 1645
第 5 樓
|
發表於: 星期四 八月 15, 2013 6:50 pm 文章主題: |
|
|
SPT + 1 |
|
回頂端 |
|
 |
saint
註冊時間: 2003-07-14 文章: 211
第 6 樓
|
發表於: 星期五 八月 16, 2013 3:21 pm 文章主題: |
|
|
把你要的組合成sql command 送到後端去
代碼: | SELECT
A.SEQ
{1}
FROM X_F_B_MF_MONTHLY_TXNS_TOP10 A
WHERE A.SEQ < 51
{0}
GROUP BY A.SEQ
ORDER BY A.SEQ |
我以C#舉例,其中{1} 是讓我可以動態填入欄位,{0}則是動能把條件填入
都要配合user在前端上的選擇 |
|
回頂端 |
|
 |
ckp6250
註冊時間: 2004-07-30 文章: 1645
第 7 樓
|
發表於: 星期五 八月 16, 2013 4:15 pm 文章主題: |
|
|
我是在後端組合命令語句
如果是 MySql 的話,我的做法是在後端寫一個 procedure , 比如叫做 getdata
前端會傳送 call getdata('資料表名','欄位list','過濾條件','排序list')
以saint的例子來說,我的指令是
call getdata('X_F_B_MF_MONTHLY_TXNS_TOP10','{1}','{0}','A.SEQ')
意思其實差不多,只是前端看起來比較簡短一咪咪 |
|
回頂端 |
|
 |
andrebiehn

註冊時間: 2009-04-05 文章: 16
第 8 樓
|
發表於: 星期一 八月 19, 2013 4:07 pm 文章主題: |
|
|
我用版主的方式,可行!!先判斷有資料的欄位,然後抓符合第一個有資料欄位的資料下來,後面的皆使用set filter!! 這樣就符合使用者多條件篩選!謝謝指導 |
|
回頂端 |
|
 |
foxy

註冊時間: 2007-08-16 文章: 258 來自: 泰國
第 9 樓
|
發表於: 星期三 八月 21, 2013 11:24 pm 文章主題: |
|
|
1. query SYSOBJECTS 得到當前 TABLE 所有 FIELD 的 名稱和 DATA TYPE
2. 讓用戶自行選擇查詢的FIELD, 輸入查詢的value
3. 得出 WHERE clause, 使用 SPT
說來容易, 做起來...
小弟也有這個想法, 但是有些懶惰 _________________ 進銷存+生產製造+會計+員工薪資+CRM+POS零售+餐廳手機app+電商手機app+電商網站,物流系統. 正/簡體中文,英,日,泰,緬甸文. MS SQL Server + 前台 VFP + PHP 網站 + Flutter 手機 App, 都共享 MS SQL Server的資料. www.foxacc.com LINE: mike-lm |
|
回頂端 |
|
 |
|