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

Grid與Alias的控制問題

 
發表新主題   回覆主題    VFP 愛用者社區 首頁 -> VFP 討論區
上一篇主題 :: 下一篇主題  
發表人 內容
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的值?
回頂端
檢視會員個人資料 發送私人訊息 MSN Messenger
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到底有無資料
回頂端
檢視會員個人資料 發送私人訊息 MSN Messenger
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 就已經做完?
目前還是 沒辦法解決 Crying or Very sad .

有任何問題 ,都可以指正
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 就已經做完?
目前還是 沒辦法解決 Crying or Very sad .

有任何問題 ,都可以指正
thanks

這樣說好了,可以把程式POST 上來,讓高手們幫你測一測就好了,
回頂端
檢視會員個人資料 發送私人訊息
nelsonchuang



註冊時間: 2003-09-04
文章: 563
來自: 臺灣

第 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 內

但是還是不曉得 原本作法的盲點 Sad
請高手 指點!
回頂端
檢視會員個人資料 發送私人訊息
從之前的文章開始顯示:   
發表新主題   回覆主題    VFP 愛用者社區 首頁 -> VFP 討論區 所有的時間均為 台北時間 (GMT + 8 小時)
1頁(共1頁)

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


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