| 上一篇主題 :: 下一篇主題   | 
	
	
	
		| 發表人 | 
		內容 | 
	
	
		芝風
 
 
  註冊時間: 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那設定嗎?
 
 
真的不懂,請各位大大指點
 
 
多謝 _________________ 一籬一櫓一漁舟,一個艄公一釣勾 
 
一拍一呼還一笑,一人獨佔一江秋 
 
~清.紀昀~ | 
			 
		  | 
	
	
		| 回頂端 | 
		 | 
	
	
		  | 
	
	
		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,后面编译时,才知道有这个变量的存在。 | 
			 
		  | 
	
	
		| 回頂端 | 
		 | 
	
	
		  | 
	
	
		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    文章主題:  | 
				     | 
			 
			
				
  | 
			 
			
				謝謝回覆
 
 
我權限設定是設在表裡面的,謝謝 _________________ 一籬一櫓一漁舟,一個艄公一釣勾 
 
一拍一呼還一笑,一人獨佔一江秋 
 
~清.紀昀~ | 
			 
		  | 
	
	
		| 回頂端 | 
		 | 
	
	
		  | 
	
	
		 |