VFP 愛用者社區 首頁 VFP 愛用者社區
本討論區為 Visual Foxpro 愛用者經驗交流的地方, 請多多利用"搜尋"的功能, 先查看看有無前例可循, 如果還有不懂的再發問. 部份主題有附加檔案, 須先註冊成為社區居民才可以下載.
 
 常見問題常見問題   搜尋搜尋   會員列表會員列表   會員群組會員群組   會員註冊會員註冊 
 個人資料個人資料   登入檢查您的私人訊息登入檢查您的私人訊息   登入登入

如何Select 某個已有設filter的table裡,只有符合filter的資料到一cursor

 
發表新主題   回覆主題    VFP 愛用者社區 首頁 -> VFP 討論區
上一篇主題 :: 下一篇主題  
發表人 內容
jms7275



註冊時間: 2005-01-08
文章: 65


第 1 樓

發表發表於: 星期四 二月 03, 2005 3:44 pm    文章主題: 如何Select 某個已有設filter的table裡,只有符合filter的資料到一cursor 引言回覆

是想要算原table中符合filter與not deleted()的資料總數

如果用reccount()會把所有資料通通算進去
如果直接count for 原table,指標會移動,
時時刻刻還要注意回溯,感覺頗麻煩也容易出錯

因此想要先Select 原table中符合filter與not deleted()的資料到cursor中,再用reccount()來算總數

謝謝
回頂端
檢視會員個人資料 發送私人訊息
朱育興



註冊時間: 2003-08-25
文章: 661
來自: 台中市大里區

第 2 樓

發表發表於: 星期四 二月 03, 2005 3:59 pm    文章主題: 引言回覆

SELECT ...到 CURSOR 後,_TALLY 系統變數就會告訴你有幾筆記錄了
_________________
希望有更多人來參與
VFP wiki - 需要大家一起完成的VFP電子書與FAQ
回頂端
檢視會員個人資料 發送私人訊息 發送電子郵件 MSN Messenger
jms7275



註冊時間: 2005-01-08
文章: 65


第 3 樓

發表發表於: 星期四 二月 03, 2005 4:05 pm    文章主題: 引言回覆

感謝朱大哥解說 Very Happy
回頂端
檢視會員個人資料 發送私人訊息
jms7275



註冊時間: 2005-01-08
文章: 65


第 4 樓

發表發表於: 星期五 二月 04, 2005 8:35 am    文章主題: 引言回覆

再請教大家

filter('tablename')這個函數的輸出型態是字元
弟嘗試把它寫在where的後面,但似乎不行,不知是否可以先做形態轉換?

因為弟這邊的filter情況會一直改變,如果可以直接用filter()來表示,似乎
便捷多了

Select count(*) as total from tablename where filter('tablename') into cursor tmp
回頂端
檢視會員個人資料 發送私人訊息
Le1015



註冊時間: 2004-08-06
文章: 30


第 5 樓

發表發表於: 星期五 二月 04, 2005 9:48 am    文章主題: 引言回覆

可以利用巨集
LOCAL tfilter
tfilter=filter('tablename')
Select count(*) as total from tablename where &tfilter. into cursor tmp
回頂端
檢視會員個人資料 發送私人訊息
syntech



註冊時間: 2003-05-16
文章: 4249
來自: Taipei,Taiwan

第 6 樓

發表發表於: 星期五 二月 04, 2005 10:15 am    文章主題: 引言回覆

應該是

select * from table1 where eval(filter('table1'))

這樣就可以了.
VFP 6.0以上適用.

_________________
如果公司有下列困擾:
1. 找不到便宜,快速,簡易的 生產排程軟體
2. 不知道如何快速排定 採購計劃
3. 成本抓不準,自己算比軟體算有用
4. 想學習系統規劃,想找系統架構的顧問

請聯絡我們,也許我們幫得上忙
回頂端
檢視會員個人資料 發送私人訊息 發送電子郵件 AIM Address
bin1x



註冊時間: 2004-08-27
文章: 462


第 7 樓

發表發表於: 星期五 二月 04, 2005 10:31 am    文章主題: 引言回覆

依據你的開題說法
我會選擇用
select count(*) as nCOUNT from table where expr1(是filter 的條件)
into cursor xxxxxx之中
看xxxxxx中的欄位ncount 就是你想要的東西
至於delete的問題
在系統初始設定時
就應解決的問題
回頂端
檢視會員個人資料 發送私人訊息 發送電子郵件 參觀發表人的個人網站 MSN Messenger
jms7275



註冊時間: 2005-01-08
文章: 65


第 8 樓

發表發表於: 星期五 二月 04, 2005 5:15 pm    文章主題: 引言回覆

bin1x 寫到:
依據你的開題說法
我會選擇用
select count(*) as nCOUNT from table where expr1(是filter 的條件)
into cursor xxxxxx之中
看xxxxxx中的欄位ncount 就是你想要的東西
至於delete的問題
在系統初始設定時
就應解決的問題


想請教 VFP6 help似乎找不到關於expr1()的解說

另外,如果filter有牽涉到表單之類的物件,用eval()也可以嗎?
似乎好像不行
guide_id=val(thisform.pageframe1.hisdata.combo_guideID.value) and (like("*"+alltrim(thisform.txtkeywd.value)+"*",headline))
回頂端
檢視會員個人資料 發送私人訊息
syntech



註冊時間: 2003-05-16
文章: 4249
來自: Taipei,Taiwan

第 9 樓

發表發表於: 星期五 二月 04, 2005 6:10 pm    文章主題: 引言回覆

try try see! Smile
只要不是do xxx.prg的話,
應該都可以

應該不是 expr1
而是
local expr1
store "你的filter 條件" to expr1
select count(*) as nCOUNT from table into cursor xxxxxx where expr1

_________________
如果公司有下列困擾:
1. 找不到便宜,快速,簡易的 生產排程軟體
2. 不知道如何快速排定 採購計劃
3. 成本抓不準,自己算比軟體算有用
4. 想學習系統規劃,想找系統架構的顧問

請聯絡我們,也許我們幫得上忙
回頂端
檢視會員個人資料 發送私人訊息 發送電子郵件 AIM Address
jms7275



註冊時間: 2005-01-08
文章: 65


第 10 樓

發表發表於: 星期五 二月 04, 2005 7:33 pm    文章主題: 引言回覆

syntech 寫到:
try try see! Smile
只要不是do xxx.prg的話,
應該都可以

應該不是 expr1
而是
local expr1
store "你的filter 條件" to expr1
select count(*) as nCOUNT from table into cursor xxxxxx where expr1


感謝syntech大
在expr1前面加&就可以了---> where &expr1
Wink

難怪試Le1015大的做法都沒有成功,
Local tfilter
那tfilter=filter('tablename') 和store filter('tablename') to tfilter
意思不同嗎? 看起來好像都一樣
tfilter==filter('tablename') 儲存時就不給過了
VFP6宣告變數好像都不用加變數型態,感覺有點不太習慣
回頂端
檢視會員個人資料 發送私人訊息
Le1015



註冊時間: 2004-08-06
文章: 30


第 11 樓

發表發表於: 星期六 二月 05, 2005 10:16 am    文章主題: 引言回覆

很抱歉阿!
小弟今天又學到一個觀念

可能是之前習慣用這種方式取得條件
Select tablename
tFilter=filter()
回頂端
檢視會員個人資料 發送私人訊息
bin1x



註冊時間: 2004-08-27
文章: 462


第 12 樓

發表發表於: 星期六 二月 05, 2005 10:19 am    文章主題: 引言回覆

其實好像還有一點
&巨集開始
.巨集結束
回頂端
檢視會員個人資料 發送私人訊息 發送電子郵件 參觀發表人的個人網站 MSN Messenger
jms7275



註冊時間: 2005-01-08
文章: 65


第 13 樓

發表發表於: 星期六 二月 05, 2005 11:38 am    文章主題: 引言回覆

bin1x 寫到:
其實好像還有一點
&巨集開始
.巨集結束


巨集結束的使用時機是?
是指使用完巨集,要把巨集結束比較好是嗎?
回頂端
檢視會員個人資料 發送私人訊息
bigear



註冊時間: 2004-12-19
文章: 162
來自: 網路的另一端

第 14 樓

發表發表於: 星期六 二月 05, 2005 11:42 am    文章主題: 引言回覆

jms7275 寫到:
bin1x 寫到:
其實好像還有一點
&巨集開始
.巨集結束


巨集結束的使用時機是?
是指使用完巨集,要把巨集結束比較好是嗎?


舉個例子
thisform.release

使用巨集的方式
cTmp="thisform"
&cTmp..release <== 注意看 有兩個點

這就是你的疑問了

_________________
以上淺見,歡迎批評指教
________________________________________________
山不轉路轉,路不轉人轉,人不轉頭轉,頭不轉眼睛轉,眼睛不轉眼珠轉
眼珠再不轉就去睡覺,睡起來繼續轉
回頂端
檢視會員個人資料 發送私人訊息 發送電子郵件 參觀發表人的個人網站
jms7275



註冊時間: 2005-01-08
文章: 65


第 15 樓

發表發表於: 星期六 二月 05, 2005 1:01 pm    文章主題: 引言回覆

bigear 寫到:
jms7275 寫到:
bin1x 寫到:
其實好像還有一點
&巨集開始
.巨集結束


巨集結束的使用時機是?
是指使用完巨集,要把巨集結束比較好是嗎?


舉個例子
thisform.release

使用巨集的方式
cTmp="thisform"
&cTmp..release <== 注意看 有兩個點

這就是你的疑問了


瞭解 Wink ,就是告知巨集要編譯到哪邊停住
回頂端
檢視會員個人資料 發送私人訊息
從之前的文章開始顯示:   
發表新主題   回覆主題    VFP 愛用者社區 首頁 -> VFP 討論區 所有的時間均為 台北時間 (GMT + 8 小時)
1頁(共1頁)

 
前往:  
無法 在這個版面發表文章
無法 在這個版面回覆文章
無法 在這個版面編輯文章
無法 在這個版面刪除文章
無法 在這個版面進行投票
無法 在這個版面附加檔案
無法 在這個版面下載檔案


Powered by phpBB © 2001, 2005 phpBB Group
正體中文語系由 phpbb-tw 維護製作