| 上一篇主題 :: 下一篇主題   | 
	
	
	
		| 發表人 | 
		內容 | 
	
	
		蕭瑤
 
 
  註冊時間: 2005-04-09 文章: 4
 
  第 1 樓
  | 
		
			
				 發表於: 星期二 四月 12, 2005 10:14 pm    文章主題: 密碼檔之內容編碼 及 Grid 之資料顯示方式 | 
				     | 
			 
			
				
  | 
			 
			
				請問各位 '賢拜' 1.如何將輸入之密碼內容編碼後再寫入資料檔,及如何讀出比對 ?!
 
                    2.如何於Grid內邊輸入查詢條件,記錄資料跟著顯示到最接近之記錄.例如:客戶代號有如下:
 
                       A101, A103, B101, B102, B201, C200, C201 ......等等,當 輸入B 時記錄游標便指到 B101 處
 
                       又 於B之後輸入 2 時(此時已輸入兩字 B2) 則 游標便指到 B201 處.
 
         以上兩點 請求協助.   謝謝 ! | 
			 
		  | 
	
	
		| 回頂端 | 
		 | 
	
	
		  | 
	
	
		小賴
 
 
  註冊時間: 2004-12-27 文章: 477
 
  第 2 樓
  | 
		
			
				 發表於: 星期三 四月 13, 2005 10:05 am    文章主題:  | 
				     | 
			 
			
				
  | 
			 
			
				2.如何於Grid內邊輸入查詢條件.....
 
 
 
請問如何於同一Grid輸入資料又要求Grid移動指標 ?
 
您是有二個Grid還是輸入到其他物件如TextBox, ComBox .....等 ? | 
			 
		  | 
	
	
		| 回頂端 | 
		 | 
	
	
		  | 
	
	
		joyjoy
 
 
  註冊時間: 2003-09-29 文章: 24
 
  第 3 樓
  | 
		
			
				 發表於: 星期三 四月 13, 2005 12:27 pm    文章主題:  | 
				     | 
			 
			
				
  | 
			 
			
				第一點:
 
可用編碼方式有很多種,可用XOR、...或用MD5.DLL,
 
以MD5.DLL為例(站內有前輩貼過文,可找找),MD5(輸入的password)可得到加密過的編碼1,
 
將其寫入資料檔。
 
要比對時,再將使用者輸入的密碼以MD5()取得編碼2,比對編碼2與資料檔中的編碼1,若相同則為通過。
 
(MD5為不可逆編碼,所以用此方式比對)
 
 
第二點:
 
我也不會,但我應該能明白您的意思,我也有看過市面的軟體有此好用的操作介面。
 
"小賴"的疑問是:如何於同一Grid輸入資料又要求Grid移動指標 ?
 
我想該GRID不是用於輸入(存入)資料的,在上面按的按鍵是用來移動指標(相對於索引鍵值)
 
 
我本想用KEYPRESS事件去做,可是還未試出來,所以.....
 
如果您找到方法了,也教我一下吧(貼到這個討論區會更好)。 | 
			 
		  | 
	
	
		| 回頂端 | 
		 | 
	
	
		  | 
	
	
		小桑•無痕
 
  
  註冊時間: 2003-07-08 文章: 304 來自: Tainan, Taiwan
  第 4 樓
  | 
		
			
				 發表於: 星期三 四月 13, 2005 1:52 pm    文章主題:  | 
				     | 
			 
			
				
  | 
			 
			
				 	  | joyjoy 寫到: | 	 		  第一點:
 
可用編碼方式有很多種,可用XOR、...或用MD5.DLL,
 
以MD5.DLL為例(站內有前輩貼過文,可找找),MD5(輸入的password)可得到加密過的編碼1,
 
將其寫入資料檔。
 
要比對時,再將使用者輸入的密碼以MD5()取得編碼2,比對編碼2與資料檔中的編碼1,若相同則為通過。
 
(MD5為不可逆編碼,所以用此方式比對)
 
 
第二點:
 
我也不會,但我應該能明白您的意思,我也有看過市面的軟體有此好用的操作介面。
 
"小賴"的疑問是:如何於同一Grid輸入資料又要求Grid移動指標 ?
 
我想該GRID不是用於輸入(存入)資料的,在上面按的按鍵是用來移動指標(相對於索引鍵值)
 
 
我本想用KEYPRESS事件去做,可是還未試出來,所以.....
 
如果您找到方法了,也教我一下吧(貼到這個討論區會更好)。 | 	  
 
 
我有不同的想法,大家參考看看:
 
1不建議使用MD5,因為MD5為不可逆編碼,如果密碼忘記,連管理者或密碼查詢機制也無法告知使用者原來的密碼。
 
 建議使用3DES,我覺得對一般的資料而言,他的強度已經夠了,而且可解回原來的資料(我自己則是使用自己的編法方式,沒使用DES   )。
 
2建議使用text輸入,配合text.KeyPress移動Grid內的資料指標。 _________________ 用力 Try 一下...可以發現很多好玩的事.... | 
			 
		  | 
	
	
		| 回頂端 | 
		 | 
	
	
		  | 
	
	
		bin1x
 
 
  註冊時間: 2004-08-27 文章: 462
 
  第 5 樓
  | 
		
			
				 發表於: 星期三 四月 13, 2005 2:03 pm    文章主題:  | 
				     | 
			 
			
				
  | 
			 
			
				[2.如何於Grid內邊輸入查詢條件,記錄資料跟著顯示到最接近之記錄.例如:客戶代號有如下: 
 
A101, A103, B101, B102, B201, C200, C201 ......等等,當 輸入B 時記錄游標便指到 B101 處 
 
又 於B之後輸入 2 時(此時已輸入兩字 B2) 則 游標便指到 B201 處. ]
 
 
假設以combobox來做v5.0
 
好像無法達到要求
 
但vb combobox可以,何故?
 
曾有個天才想法,把vb物件,拉到foxpro來做!!!!
 
不曉得怎麼做,所以多好幾個! | 
			 
		  | 
	
	
		| 回頂端 | 
		 | 
	
	
		  | 
	
	
		小桑•無痕
 
  
  註冊時間: 2003-07-08 文章: 304 來自: Tainan, Taiwan
  第 6 樓
  | 
		
			
				 發表於: 星期三 四月 13, 2005 2:11 pm    文章主題:  | 
				     | 
			 
			
				
  | 
			 
			
				參考看看吧
 
 	  | 代碼: | 	 		  
 
Text.KeyPress:
 
 
 
LPARAMETERS nKeyCode, nShiftAltCtrl
 
SET   NEAR   ON   &&   習慣設成 Near Off,所以這裡要設成on
 
DODEFAULT()
 
WITH   This
 
*!*         ?   ALLTRIM(.Value) + "*" + SPACE(40)   &&   檢視輸入資料
 
      SEEK ALLTRIM(.Value)  ORDER TagName  IN  cTableAlias
 
      WITH   .Parent.Grid
 
            .SetFocus()
 
            .Refresh()
 
      ENDWITH
 
      .SetFocus()
 
ENDWITH
 
SET   NEAR   OFF   &&   習慣設成 Near Off,所以這裡要設回去
 
NODEFAULT
 
 | 	  
 
 
 
SEEK Command
 
Searches a table for the first occurrence of a record whose index key matches a general expression, then moves the record pointer to the matching record.
 
 
SEEK eExpression   [ORDER nIndexNumber | IDXIndexFileName
 
    | [TAG] TagName [OF CDXFileName]    [ASCENDING | DESCENDING]]
 
   [IN nWorkArea | cTableAlias]
 
 
 
 
SET NEAR Command
 
Determines where the record pointer is positioned after FIND or SEEK unsuccessfully searches for a record.
 
 
SET NEAR ON | OFF
 
Parameters
 
ON 
 
Positions the record pointer on the closest matching record if a record search using FIND or SEEK is unsuccessful. With this setting, RECNO( ) returns the record number of the closest matching record, FOUND( ) returns false (.F.), and EOF( ) returns false (.F.). 
 
OFF 
 
(Default) Positions the record pointer at the end of the table if a record search using FIND or SEEK is unsuccessful. With this setting, RECNO( ) returns the number of records in the table plus 1, FOUND( ) returns false (.F.), and EOF( ) returns true (.T.). _________________ 用力 Try 一下...可以發現很多好玩的事.... | 
			 
		  | 
	
	
		| 回頂端 | 
		 | 
	
	
		  | 
	
	
		小桑•無痕
 
  
  註冊時間: 2003-07-08 文章: 304 來自: Tainan, Taiwan
  第 7 樓
  | 
		
			
				 發表於: 星期三 四月 13, 2005 2:14 pm    文章主題:  | 
				     | 
			 
			
				
  | 
			 
			
				 	  | bin1x 寫到: | 	 		  [2.如何於Grid內邊輸入查詢條件,記錄資料跟著顯示到最接近之記錄.例如:客戶代號有如下: 
 
A101, A103, B101, B102, B201, C200, C201 ......等等,當 輸入B 時記錄游標便指到 B101 處 
 
又 於B之後輸入 2 時(此時已輸入兩字 B2) 則 游標便指到 B201 處. ]
 
 
假設以combobox來做v5.0
 
好像無法達到要求
 
但vb combobox可以,何故?
 
曾有個天才想法,把vb物件,拉到foxpro來做!!!!
 
不曉得怎麼做,所以多好幾個! | 	  
 
 
VFP 的 combobox也可以,不過我不喜歡用。 _________________ 用力 Try 一下...可以發現很多好玩的事.... | 
			 
		  | 
	
	
		| 回頂端 | 
		 | 
	
	
		  | 
	
	
		bin1x
 
 
  註冊時間: 2004-08-27 文章: 462
 
  第 8 樓
  | 
		
			
				 發表於: 星期三 四月 13, 2005 2:47 pm    文章主題:  | 
				     | 
			 
			
				
  | 
			 
			
				| 那註點停住時,自動展開呢? | 
			 
		  | 
	
	
		| 回頂端 | 
		 | 
	
	
		  | 
	
	
		joyjoy
 
 
  註冊時間: 2003-09-29 文章: 24
 
  第 9 樓
  | 
		
			
				 發表於: 星期四 四月 14, 2005 4:32 pm    文章主題:  | 
				     | 
			 
			
				
  | 
			 
			
				關於第二點:我曾在別的軟體看過該功能,也一直想要,但不會做。今天再度嘗試,結果可以了。
 
這是初版(拙作),已可運作,剩下的有空再加強它,您試試看吧。
 
關鍵內容如下:
 
 
THISFORM.INIT()中加入
 
	THISFORM.KeyPreview=.T.
 
	PUBLIC MY_SEEK
 
	MY_SEEK=""
 
 
 
THISFORM.KEYPRESS()中加入下列
 
If THISFORM.GRDM1.VISIBLE=.T.	&&先確認該GRID是焦點所在,再分按鍵作用,以作索引。
 
	If CHR(nKeyCode)$"ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789"
 
		MY_RECNO=RECNO()
 
		MY_SEEK=MY_SEEK+CHR(nKeyCode)
 
		Seek MY_SEEK
 
		If !FOUND()
 
			WAIT WINDOWS "找不到符合者"
 
			Go MY_RECNO	&&停在最後找到紀錄的
 
		Endif
 
	Else
 
		MY_SEEK=""		&&重設搜索鍵
 
	Endif
 
Endif | 
			 
		  | 
	
	
		| 回頂端 | 
		 | 
	
	
		  | 
	
	
		小桑•無痕
 
  
  註冊時間: 2003-07-08 文章: 304 來自: Tainan, Taiwan
  第 10 樓
  | 
		
			
				 發表於: 星期六 四月 16, 2005 12:08 am    文章主題:  | 
				     | 
			 
			
				
  | 
			 
			
				 	  | sanchi 寫到: | 	 		  偶都是用一個grid外面的textbox之
 
interactivechange event來   處理
 
xpar=alltrim(this.value)
 
if len(xpar)>0
 
   select xxxxx from yyy...
 
..
 
..
 
endif | 	  
 
 
 
to sanchi:我覺得用Select應該是無法移動Grid的指標。  
 
 
不過...我跟你一樣...都是用一個grid外面的textbox來當輸入介面   _________________ 用力 Try 一下...可以發現很多好玩的事.... | 
			 
		  | 
	
	
		| 回頂端 | 
		 | 
	
	
		  | 
	
	
		小桑•無痕
 
  
  註冊時間: 2003-07-08 文章: 304 來自: Tainan, Taiwan
  第 11 樓
  | 
		
			
				 發表於: 星期六 四月 16, 2005 12:43 am    文章主題:  | 
				     | 
			 
			
				
  | 
			 
			
				TO 蕭瑤:下載範例試試看。   _________________ 用力 Try 一下...可以發現很多好玩的事.... | 
			 
		  | 
	
	
		| 回頂端 | 
		 | 
	
	
		  | 
	
	
		 |