| 上一篇主題 :: 下一篇主題   | 
	
	
	
		| 發表人 | 
		內容 | 
	
	
		koharu
 
 
  註冊時間: 2009-10-13 文章: 21
 
  第 1 樓
  | 
		
			
				 發表於: 星期日 十一月 29, 2009 11:52 am    文章主題: Grid與Alias的控制問題 | 
				     | 
			 
			
				
  | 
			 
			
				製作兩個form(form1, form2) , 兩個form內各有一個grid
 
兩個 Table (table1 ,table2 )
 
點選 form1.grid.column.text1 產生 form2
 
 ==code 如下==
 
form1.grid.recordsource = table1
 
<form1.grid.column.text1.click > 下加入
 
IF EMPTY(this.Value)
 
	DO FORM form2 WITH var1
 
ENDIF
 
 
<form2.init > 下加入
 
LPARAMETER var1
 
select * from table2 where name = var1 into cursor tmpTable
 
this.grid.recordsource = tmpTable 
 
 
小弟的問題是
 
1.
 
點選產生form2 後select結果 是正確的
 
但是 滑鼠再點選form2.grid 上的欄位後
 
出現 Variable 'var1' is not found 的錯誤訊息
 
form2.grid 上 select 的結果變成 table2的所有資料
 
2.
 
此時 form2一開始的Alias  為 tmpTable
 
但是 最後顯示 form2的 Alias 卻變為 table1 !?
 
檢查過在 form2內都沒用到 table1
 
不曉得為什麼 form2 的Alias 會出現 table1.? 
 
 
最近遇到很多問題
 
似乎都是與Grid 與 Alias 的操作有關
 
一些基本觀念有待加強...
 
 
麻煩給點 建議 或是 更好的想法 ~ 
 
thanks
  koharu 在 星期一 十一月 30, 2009 12:36 am 作了第 2 次修改 | 
			 
		  | 
	
	
		| 回頂端 | 
		 | 
	
	
		  | 
	
	
		LiuRambo
 
 
  註冊時間: 2007-11-27 文章: 481
 
  第 2 樓
  | 
		
			
				 發表於: 星期日 十一月 29, 2009 7:59 pm    文章主題:  | 
				     | 
			 
			
				
  | 
			 
			
				FORM裡面的GRID如果沒有指定哪個TABLE就會直接顯示現用的那一個TABLE
 
我猜測應該是FORM2裡的SELECT不正確沒產生出正確你想要的TABLE2
 
才會跑出TABLE1
 
 
你可以試試看在LOAD開一個TABLE
 
FORM裡面開一個GRID不指定看看會怎樣
 
 
<form2.init > 下加入
 
LPARAMETER var1
 
select * from table2 where name = var2 into cursor tmpTable
 
this.grid.recordsource = tmpTable
 
==============
 
WHY???
 
 
FORM1裡面也沒有指定出var1的值? | 
			 
		  | 
	
	
		| 回頂端 | 
		 | 
	
	
		  | 
	
	
		tinwhang
 
 
  註冊時間: 2009-11-08 文章: 104
 
  第 3 樓
  | 
		
			
				 發表於: 星期日 十一月 29, 2009 8:16 pm    文章主題:  | 
				     | 
			 
			
				
  | 
			 
			
				一、你的變數 定義非常不明確 , 是否要定義好? 不然很容易出錯 
 
 
二、select * from table2 where name = var2 into cursor tmpTable  其中的 var2 沒有定義,照說會失敗
 
        還是你有public var2 的指令存在 ? 
 
 
三、para var1 為何用 var2 ? 不解? | 
			 
		  | 
	
	
		| 回頂端 | 
		 | 
	
	
		  | 
	
	
		koharu
 
 
  註冊時間: 2009-10-13 文章: 21
 
  第 4 樓
  | 
		
			
				 發表於: 星期一 十一月 30, 2009 12:35 am    文章主題:  | 
				     | 
			 
			
				
  | 
			 
			
				抱歉~!
 
select * from table2 where name = var1 into cursor tmpTable 
 
才對~已經把文章修正過來
 
被這問題搞的頭昏腦脹~打錯造成誤會~
 
變數名稱 是發這篇文章暫用的名稱,想說這樣比較清楚
 
var2 是手殘 打錯~ XD
 
 
當form2產生時 , form2.grid 上的select 結果最初的顯示結果是正確的~
 
此時 foxpro視窗左下角顯示的 Alias 一開始為 tmpTable , 後來顯示為 table1
 
然後用滑鼠點選 form2.grid 上的欄位後  <---做這個動作後才有問題
 
才會 出現 Variable 'var1' is not found 的錯誤訊息
 
後來把 form2 上其他動作都先拿掉 , 問題還是一樣 . | 
			 
		  | 
	
	
		| 回頂端 | 
		 | 
	
	
		  | 
	
	
		andywilliams
 
 
  註冊時間: 2004-10-23 文章: 111
 
  第 5 樓
  | 
		
			
				 發表於: 星期一 十一月 30, 2009 1:06 am    文章主題:  | 
				     | 
			 
			
				
  | 
			 
			
				select * from table2 where name = var1 into cursor tmpTable 
 
this.grid.recordsource = "tmpTable" | 
			 
		  | 
	
	
		| 回頂端 | 
		 | 
	
	
		  | 
	
	
		koharu
 
 
  註冊時間: 2009-10-13 文章: 21
 
  第 6 樓
  | 
		
			
				 發表於: 星期一 十一月 30, 2009 1:33 am    文章主題:  | 
				     | 
			 
			
				
  | 
			 
			
				 	  | andywilliams 寫到: | 	 		  select * from table2 where name = var1 into cursor tmpTable 
 
this.grid.recordsource = "tmpTable" | 	  
 
 
感謝 andy 大~
 
我 在程式裡面的確是這樣寫沒錯
 
this.grid.recordsource = "tmpTable"
 
發文太過大意  
 
後來不斷測試 各種方式 , 
 
發現似乎 當滑鼠點選 form2.grid 內的欄位後
 
select * from table2 where name = var1 into cursor tmpTable
 
就會重做 ? | 
			 
		  | 
	
	
		| 回頂端 | 
		 | 
	
	
		  | 
	
	
		ckp6250
 
 
  註冊時間: 2004-07-30 文章: 1645
 
  第 7 樓
  | 
		
			
				 發表於: 星期一 十一月 30, 2009 8:43 am    文章主題:  | 
				     | 
			 
			
				
  | 
			 
			
				抱歉,插句不相干的話,
 
發文若常打錯字,會誤導解題方向及浪費解決時間 | 
			 
		  | 
	
	
		| 回頂端 | 
		 | 
	
	
		  | 
	
	
		LiuRambo
 
 
  註冊時間: 2007-11-27 文章: 481
 
  第 8 樓
  | 
		
			
				 發表於: 星期一 十一月 30, 2009 8:59 am    文章主題:  | 
				     | 
			 
			
				
  | 
			 
			
				1.form1裡面還是沒有看到var1的資料來源,form2的lpara最好也不要用"var1"以免日後產生問題
 
或者就乾脆不要傳遞 DO FORM form2
 
或是真的改成
 
LPARA var2
 
select .............. where name = var2............
 
 
2.既然已經知道滑鼠點選會不斷重做
 
那問題就一定是出在IF EMPTY(this.Value)這一行
 
建議在這行之前弄個messagebox看一下this.value到底有無資料 | 
			 
		  | 
	
	
		| 回頂端 | 
		 | 
	
	
		  | 
	
	
		koharu
 
 
  註冊時間: 2009-10-13 文章: 21
 
  第 9 樓
  | 
		
			
				 發表於: 星期二 十二月 01, 2009 10:35 am    文章主題:  | 
				     | 
			 
			
				
  | 
			 
			
				感謝各位高手的幫忙.
 
自己疏忽造成困擾 , 相當抱歉!
 
 
目前 , 將一些 可能造成問題的地方修正過 ,
 
還是出現同樣的 錯誤訊息
 
 
程式過程為
 
1. 開始 form1.grid.column.text1.click
 
2. 開始form2.init
 
3. 結束form2.init
 
4. 結束 form1.grid.column.text1.click
 
 
錯誤訊息出現的時間點是在 
 
做完 form2.init 回到 form1.grid.column.text1.click 時
 
但是 select 應該在 form2.init 就已經做完?
 
目前還是 沒辦法解決    .
 
 
有任何問題 ,都可以指正
 
thanks | 
			 
		  | 
	
	
		| 回頂端 | 
		 | 
	
	
		  | 
	
	
		tinwhang
 
 
  註冊時間: 2009-11-08 文章: 104
 
  第 10 樓
  | 
		
			
				 發表於: 星期三 十二月 02, 2009 6:28 pm    文章主題:  | 
				     | 
			 
			
				
  | 
			 
			
				 	  | koharu 寫到: | 	 		  感謝各位高手的幫忙.
 
自己疏忽造成困擾 , 相當抱歉!
 
 
目前 , 將一些 可能造成問題的地方修正過 ,
 
還是出現同樣的 錯誤訊息
 
 
程式過程為
 
1. 開始 form1.grid.column.text1.click
 
2. 開始form2.init
 
3. 結束form2.init
 
4. 結束 form1.grid.column.text1.click
 
 
錯誤訊息出現的時間點是在 
 
做完 form2.init 回到 form1.grid.column.text1.click 時
 
但是 select 應該在 form2.init 就已經做完?
 
目前還是 沒辦法解決    .
 
 
有任何問題 ,都可以指正
 
thanks | 	  
 
這樣說好了,可以把程式POST 上來,讓高手們幫你測一測就好了, | 
			 
		  | 
	
	
		| 回頂端 | 
		 | 
	
	
		  | 
	
	
		nelsonchuang
 
 
  註冊時間: 2003-09-04 文章: 564 來自: 臺灣
  第 11 樓
  | 
		
			
				 發表於: 星期三 十二月 02, 2009 7:49 pm    文章主題:  | 
				     | 
			 
			
				
  | 
			 
			
				看起來,你的GRID是從FORM1 複製到FORM2的吧~
 
那你有檢查一下,FORM 2的GIRD底下的TEXT.CLICK的部份是空的嗎? _________________ 大家好,請多指教 | 
			 
		  | 
	
	
		| 回頂端 | 
		 | 
	
	
		  | 
	
	
		koharu
 
 
  註冊時間: 2009-10-13 文章: 21
 
  第 12 樓
  | 
		
			
				 發表於: 星期五 十二月 04, 2009 4:36 pm    文章主題:  | 
				     | 
			 
			
				
  | 
			 
			
				謝謝各位!
 
因為整個程式還有其它東西,怕整個post 出來更難說的清楚
 
所以才挑問題部份出來.
 
 
nelsonchuang大 說Gird部分 . form2 是新增上去的.
 
後來也重新做過 . 確認過text1.click 是空白
 
 
目前用其他方式替代 , 在form1上 增加button 來做Do form2
 
而不是在原本 form1.grid.column.text1.click 內
 
 
但是還是不曉得 原本作法的盲點     
 
請高手 指點! | 
			 
		  | 
	
	
		| 回頂端 | 
		 | 
	
	
		  | 
	
	
		 |