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

請問recno和public變數的問題,抱歉,一直發問

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



註冊時間: 2006-08-09
文章: 45
來自: 台灣,巴西

第 1 樓

發表發表於: 星期六 九月 02, 2006 7:50 am    文章主題: 請問recno和public變數的問題,抱歉,一直發問 引言回覆

是這樣的,我想說在新增->儲存完或是新增->放棄完之後,能夠回到新增前的那一筆資料

我查了一下,有查到以下這些:

local ln_oldrecno
ln_oldrecno=recno() && save the position
*
* do something what you want.....
*
go ln_oldrecno && restore the position


是的,我也這樣做了

先在form.init() 設一個變數 public recNum

在grid.afterrowcolchange()中設定 recNum=recno()


然後在放棄,跟儲存那執行go recNum,但是仍是沒有反應

是不是我沒有設定成要回指向grid??


還有另一個好玩的問題(其實一點也不好玩,對我來講很痛苦)

我因為有設定權限限制,有些form是不讓人存取的除了admin之外

所以在一開始我也設了一個plublic變數ud,來讀取這人的權限(0就是可全部,1是部份而已)

然後在每一個form的開端,都會先執行判斷權限

if ud=1
thisform.command1.enabled=.f.
endif

類似之類的

可是當我build之後,要執行竟然出現一個錯誤:

檔案ud.prg不存在…

難道要build的話,所有的變數都得先在code那設定嗎?

真的不懂,請各位大大指點

多謝

_________________
一籬一櫓一漁舟,一個艄公一釣勾
一拍一呼還一笑,一人獨佔一江秋
~清.紀昀~
回頂端
檢視會員個人資料 發送私人訊息 MSN Messenger
liangszpt



註冊時間: 2004-11-18
文章: 263
來自: な东省深圳市

第 2 樓

發表發表於: 星期六 九月 02, 2006 2:50 pm    文章主題: Re: 請問recno和public變數的問題,抱歉,一直發問 引言回覆

芝風 寫到:
是這樣的,我想說在新增->儲存完或是新增->放棄完之後,能夠回到新增前的那一筆資料
我查了一下,有查到以下這些:
local ln_oldrecno
ln_oldrecno=recno() && save the position
*
* do something what you want.....
*
go ln_oldrecno && restore the position
是的,我也這樣做了
先在form.init() 設一個變數 public recNum
在grid.afterrowcolchange()中設定 recNum=recno()
然後在放棄,跟儲存那執行go recNum,但是仍是沒有反應
是不是我沒有設定成要回指向grid??


在你GO RECNUM之前,要确保你当前的TABLE就是你想GO的那个
然后可以执行一下Grid.Refresh
我不太喜欢用PUBLIC的全部变量的,定义PUBLIC的变量,应该是真正是为整系系统而用的。例如登用的用户名,系统的执行目录路径,临时文件目录路径之类是为整个系统所共用的变量。你在一个FORM去定义一个PUBLIC,而仅仅是为此FORM用的,那不如新建一个PROPTERY,因为PROPTERY会在FORM的RELEASE时会消失,而PUBLIC变量不会,如果你别的地方用到一样的名字的变量名时,可能就会出错了。
至于用GO RECNUM这种方法,一般我不这样做,每条记录应该用一个KEY可以用来区别其它记录的(实在没的放话,加一个FIELD:RecID C(10),用SYS(2015)来给它赋值),在做操作之前,先把当前记录的KEY记录下来,你想回来的话,可以用LOCATE 重新找回来。

芝風 寫到:

還有另一個好玩的問題(其實一點也不好玩,對我來講很痛苦)

我因為有設定權限限制,有些form是不讓人存取的除了admin之外

所以在一開始我也設了一個plublic變數ud,來讀取這人的權限(0就是可全部,1是部份而已)

然後在每一個form的開端,都會先執行判斷權限

if ud=1
thisform.command1.enabled=.f.
endif

類似之類的

可是當我build之後,要執行竟然出現一個錯誤:

檔案ud.prg不存在…

難道要build的話,所有的變數都得先在code那設定嗎?

真的不懂,請各位大大指點

多謝


这个UD,你应该在SET MAIN的那个PRG文件里面定义(就是文件名是加粗的那个PRG),因为编译就是从那个文件开始的,要在那里定义了PUBLIC,后面编译时,才知道有这个变量的存在。
回頂端
檢視會員個人資料 發送私人訊息 發送電子郵件 MSN Messenger
KKKLYNN



註冊時間: 2004-09-17
文章: 357


第 3 樓

發表發表於: 星期一 九月 04, 2006 4:47 pm    文章主題: 引言回覆

您好
1.要宣告公用變數,請在主檔裡宣告(主form)
如此公用變數就可於任何地方,重覆的使用與給值
用起來比較方便

2.新增後 grid 必須refrsh,才有辦法立即顯示出資料

3.請用 seek 或 seek() 來搜尋資料,不要再用local

4.權限使用請設立資料表格來儲存相關權限資訊,寫死在程式,不就一天到晚在重新compiler
很麻煩的

以上您參考
回頂端
檢視會員個人資料 發送私人訊息
芝風



註冊時間: 2006-08-09
文章: 45
來自: 台灣,巴西

第 4 樓

發表發表於: 星期三 九月 06, 2006 9:58 am    文章主題: 引言回覆

謝謝回覆

我權限設定是設在表裡面的,謝謝

_________________
一籬一櫓一漁舟,一個艄公一釣勾
一拍一呼還一笑,一人獨佔一江秋
~清.紀昀~
回頂端
檢視會員個人資料 發送私人訊息 MSN Messenger
從之前的文章開始顯示:   
發表新主題   回覆主題    VFP 愛用者社區 首頁 -> VFP 討論區 所有的時間均為 台北時間 (GMT + 8 小時)
1頁(共1頁)

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


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