| 上一篇主題 :: 下一篇主題   | 
	
	
	
		| 發表人 | 
		內容 | 
	
	
		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 樓
  | 
		 | 
	
	
		| 回頂端 | 
		 | 
	
	
		  | 
	
	
		jms7275
 
 
  註冊時間: 2005-01-08 文章: 65
 
  第 3 樓
  | 
		
			
				 發表於: 星期四 二月 03, 2005 4:05 pm    文章主題:  | 
				     | 
			 
			
				
  | 
			 
			
				感謝朱大哥解說   | 
			 
		  | 
	
	
		| 回頂端 | 
		 | 
	
	
		  | 
	
	
		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 文章: 4252 來自: Taipei,Taiwan
  第 6 樓
  | 
		
			
				 發表於: 星期五 二月 04, 2005 10:15 am    文章主題:  | 
				     | 
			 
			
				
  | 
			 
			
				應該是
 
 
select * from table1 where eval(filter('table1'))
 
 
這樣就可以了.
 
VFP 6.0以上適用. _________________ 如果公司有下列困擾:
 
1. 找不到便宜,快速,簡易的 生產排程軟體
 
2. 不知道如何快速排定 採購計劃
 
3. 成本抓不準,自己算比軟體算有用
 
4. 想學習系統規劃,想找系統架構的顧問
 
 
請聯絡我們,也許我們幫得上忙 | 
			 
		  | 
	
	
		| 回頂端 | 
		 | 
	
	
		  | 
	
	
		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的問題
 
在系統初始設定時
 
就應解決的問題 | 
			 
		  | 
	
	
		| 回頂端 | 
		 | 
	
	
		  | 
	
	
		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 文章: 4252 來自: Taipei,Taiwan
  第 9 樓
  | 
		
			
				 發表於: 星期五 二月 04, 2005 6:10 pm    文章主題:  | 
				     | 
			 
			
				
  | 
			 
			
				try try see!  
 
只要不是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. 想學習系統規劃,想找系統架構的顧問
 
 
請聯絡我們,也許我們幫得上忙 | 
			 
		  | 
	
	
		| 回頂端 | 
		 | 
	
	
		  | 
	
	
		jms7275
 
 
  註冊時間: 2005-01-08 文章: 65
 
  第 10 樓
  | 
		
			
				 發表於: 星期五 二月 04, 2005 7:33 pm    文章主題:  | 
				     | 
			 
			
				
  | 
			 
			
				 	  | syntech 寫到: | 	 		  try try see!  
 
只要不是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
 
  
 
 
難怪試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    文章主題:  | 
				     | 
			 
			
				
  | 
			 
			
				其實好像還有一點
 
&巨集開始
 
.巨集結束 | 
			 
		  | 
	
	
		| 回頂端 | 
		 | 
	
	
		  | 
	
	
		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  <== 注意看  有兩個點
 
 
這就是你的疑問了 | 	  
 
 
瞭解   ,就是告知巨集要編譯到哪邊停住 | 
			 
		  | 
	
	
		| 回頂端 | 
		 | 
	
	
		  | 
	
	
		 |