上一篇主題 :: 下一篇主題 |
發表人 |
內容 |
蕭瑤
註冊時間: 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 文章: 476
第 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 一下...可以發現很多好玩的事.... |
|
回頂端 |
|
 |
|