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

多人版如何控制表單能鍵有人使用中其他人不能使用,請教各位先進
前往頁面 1, 2  下一頁
 
發表新主題   回覆主題    VFP 愛用者社區 首頁 -> VFP 討論區
上一篇主題 :: 下一篇主題  
發表人 內容
jtcom01



註冊時間: 2005-07-29
文章: 395


第 1 樓

發表發表於: 星期五 二月 01, 2019 10:22 am    文章主題: 多人版如何控制表單能鍵有人使用中其他人不能使用,請教各位先進 引言回覆

如標題
多人版,當有一表單功能鍵有人在使用時,其他人員無法使用
回頂端
檢視會員個人資料 發送私人訊息
garfield
Site Admin


註冊時間: 2003-01-30
文章: 2094


第 2 樓

發表發表於: 星期日 二月 03, 2019 10:04 pm    文章主題: 引言回覆

http://vfp.sunyear.com.tw/viewtopic.php?t=6680
_________________
利用>>搜尋<<的功能會比問的還要快得到答案.
回頂端
檢視會員個人資料 發送私人訊息 發送電子郵件
CPS0204



註冊時間: 2014-08-24
文章: 212


第 3 樓

發表發表於: 星期一 二月 04, 2019 1:33 pm    文章主題: 引言回覆

請問:什麼是 (表單功能鍵) ,表單嗎? 功能鍵 f1-f12嗎?
兩者組合是什麼?
回頂端
檢視會員個人資料 發送私人訊息
syntech



註冊時間: 2003-05-16
文章: 3880
來自: Taipei,Taiwan

第 4 樓

發表發表於: 星期一 二月 04, 2019 9:54 pm    文章主題: 引言回覆

我是覺得先想清楚為什麼再說怎麼做,
_________________
如果公司有下列困擾:
1. 找不到便宜,快速,簡易的 生產排程軟體
2. 不知道如何快速排定 採購計劃
3. 成本抓不準,自己算比軟體算有用
4. 想學習系統規劃,想找系統架構的顧問

請聯絡我們,也許我們幫得上忙
回頂端
檢視會員個人資料 發送私人訊息 發送電子郵件 AIM Address
jtcom01



註冊時間: 2005-07-29
文章: 395


第 5 樓

發表發表於: 星期二 二月 05, 2019 11:12 pm    文章主題: 引言回覆

謝謝樓上各位先進回覆..我的原意是.表單上設定一個command鍵,希望這command鍵在有人使用尚未釋放時.其他人不能使用.重點在於當有人輸入自動以連續代號存入的數筆資料時.若有其他人也使用此功能鍵時.必造成序號重複所以才有此一需求的設計..
請各位先進不吝指教.壽也祝福各位..新春愉快..
回頂端
檢視會員個人資料 發送私人訊息
syntech



註冊時間: 2003-05-16
文章: 3880
來自: Taipei,Taiwan

第 6 樓

發表發表於: 星期三 二月 06, 2019 12:45 am    文章主題: 引言回覆

這是一種應該會被釘在牆上M天N夜的想法
_________________
如果公司有下列困擾:
1. 找不到便宜,快速,簡易的 生產排程軟體
2. 不知道如何快速排定 採購計劃
3. 成本抓不準,自己算比軟體算有用
4. 想學習系統規劃,想找系統架構的顧問

請聯絡我們,也許我們幫得上忙
回頂端
檢視會員個人資料 發送私人訊息 發送電子郵件 AIM Address
perry



註冊時間: 2014-07-20
文章: 197


第 7 樓

發表發表於: 星期三 二月 06, 2019 12:14 pm    文章主題: 引言回覆

試試!!
建一個共用資料夾

proc cmd1.click
priv cmdus_tf
cmdus_tf=.T.
on error do cmdmsg
sele 0
cera dbf 共用資料夾.cmdused (mark c(1))
on error
if !cmd_ustf
retu &&別人使用中
endi
.
.
.
use in 共用資料夾.cmdused
endproc
proc cmdmsg
cmdus_tf=.F.
retu
回頂端
檢視會員個人資料 發送私人訊息
jtcom01



註冊時間: 2005-07-29
文章: 395


第 8 樓

發表發表於: 星期三 二月 06, 2019 4:24 pm    文章主題: 引言回覆

感謝Syntech大大 PERRY大大..有想過p大的方式.只想知道是否有其他方式..謝謝兩位..
回頂端
檢視會員個人資料 發送私人訊息
yctsai



註冊時間: 2003-04-11
文章: 170


第 9 樓

發表發表於: 星期六 二月 09, 2019 10:08 am    文章主題: 引言回覆

這應該要思考序號不重覆的方法
但是方向上不能想按鈕不能按吧

我會設計控制檔,抓取目前值,回寫+1,2台同時抓取的機會,幾乎為0,至少沒遇過
保險起見,抓取序號+亂數
回頂端
檢視會員個人資料 發送私人訊息
syntech



註冊時間: 2003-05-16
文章: 3880
來自: Taipei,Taiwan

第 10 樓

發表發表於: 星期日 二月 10, 2019 12:07 am    文章主題: 引言回覆

我的方法說簡單也很簡單,
想辦法製造一個"錯誤",
就可以捕捉(catch)這個錯誤做後續新號碼的處理.

這個做法在只有dbase的時代就有了,
網路上討論比傳說中的"紅狐"還要再早.


沒有什麼 99.999..........% 的成功率,
就是100%

_________________
如果公司有下列困擾:
1. 找不到便宜,快速,簡易的 生產排程軟體
2. 不知道如何快速排定 採購計劃
3. 成本抓不準,自己算比軟體算有用
4. 想學習系統規劃,想找系統架構的顧問

請聯絡我們,也許我們幫得上忙
回頂端
檢視會員個人資料 發送私人訊息 發送電子郵件 AIM Address
ezpos



註冊時間: 2011-04-20
文章: 300


第 11 樓

發表發表於: 星期日 八月 25, 2019 9:43 pm    文章主題: 引言回覆

jtcom01 寫到:
謝謝樓上各位先進回覆..我的原意是.表單上設定一個command鍵,希望這command鍵在有人使用尚未釋放時.其他人不能使用.重點在於當有人輸入自動以連續代號存入的數筆資料時.若有其他人也使用此功能鍵時.必造成序號重複所以才有此一需求的設計..
請各位先進不吝指教.壽也祝福各位..新春愉快..


系統首先要有一個檢查碼(Y可用/N不可用)!!
當有人使用就存入這個檢查碼(N)媕Y
其他人要用時就就去判斷是否可以用....

除非這個人,確定用完,那麼檢查碼(Y) 再次做更新

_________________
ezPos收銀機 簡單好用低成本 http://www.ezpos.info
全新美觀的POS收銀機.POS軟硬體耗材.
軟體客制化.網站規劃....能賺錢的都可以找我

http://www.twelife.com 台灣生活網
回頂端
檢視會員個人資料 發送私人訊息 參觀發表人的個人網站
CPS0204



註冊時間: 2014-08-24
文章: 212


第 12 樓

發表發表於: 星期一 八月 26, 2019 4:39 pm    文章主題: d 引言回覆

其實發文者只是要
當網路多人連續輸入時,其他的人不要插斷也寫入相同的號碼
跟 ,表單按紐沒有關係!

請問發文者:
你的問題是1或2
1.當有人連續輸入10筆時,別人絕對不可佔用此10個連續流水號,直到第一個人按輸入完閉時才能作業

2.當有人連續輸入10筆時,其他人也可以同時搶號,但是不重覆為原則,多人可同時新增存檔!
回頂端
檢視會員個人資料 發送私人訊息
jtcom01



註冊時間: 2005-07-29
文章: 395


第 13 樓

發表發表於: 星期四 八月 29, 2019 12:48 pm    文章主題: 引言回覆

CPS0204先進謝謝您的回覆..我的問題需求在1.
回頂端
檢視會員個人資料 發送私人訊息
andywilliams



註冊時間: 2004-10-23
文章: 110


第 14 樓

發表發表於: 星期五 八月 30, 2019 2:45 am    文章主題: 引言回覆

你應該把程式寫成「會排隊」,RLOCK(),UNLOCK 可幫你實現.
表單可多人同時使用,但寫入資料時(有唯一編號的)就得排隊

建立一個dbf,儲存要lock的檔名,寫入資料時要先RLOCK()

PROCEDURE num_lock && 鎖定編號
LPARAMETERS Mdbf_name
...
Mlock = .F.
MtimeUp = 0
DO WHILE !Mlock .AND. MtimeUp < 5 .AND. !EOF()
Mlock = RLOCK()
IF Mlock
EXIT
ENDIF
INKEY(1)
MtimeUp = MtimeUp +1
ENDDO
RETURN(Mlock)
回頂端
檢視會員個人資料 發送私人訊息 發送電子郵件
syntech



註冊時間: 2003-05-16
文章: 3880
來自: Taipei,Taiwan

第 15 樓

發表發表於: 星期五 八月 30, 2019 2:13 pm    文章主題: 引言回覆

我是這樣搞的.

找一個TABLE1,其中FIELD1 是用來核對唯一值的欄位,
建立 CANDIDATE 索引檔 <=== 不是 UNIQUE, 可以去查UNIQUE 的用法
代碼:

INDEX ON FIELD1 TAG INDEX_A  CANDIDATE


建立 ON ERROR 函式,這個也可以用物件的ERROR事件代替
代碼:

PUBLIC NOT_UNIQUE  && 檢查是不是唯一

&& 系統錯誤處理PROCEDURE。
ON ERROR DO errHandler WITH ;   
   ERROR( ), MESSAGE( ), MESSAGE(1), PROGRAM( ), LINENO( )


PROCEDURE errHandler
   PARAMETER merror, mess, mess1, mprog, mlineno

   DO CASE
   CASE  MERROR = 1884   && 索引獨一性被石皮壞
      NOT_UNIQUE = .T.
   OTHERWISE
   ENDCASE
ENDPROC



所以要測試有沒有唯一性,
代碼:

   NOT_UNIQUE = .F.
   INSERT INTO TABLE1 (FIELD1) VALUES ("XXXXXXX")
   && 發生INSERT錯誤時,會執行 errHandler ,把 NOT_UNIQUE 改為 .T.
   IF NOT_UNIQUE
       =MESSAGEBOX("此號碼已佔用")
   ELSE
       =MESSAGEBOX("此號碼未佔用")
   ENDIF



這個方法,只要沒有硬體問題,例如DBF或INDEX壞掉,
偵測率就是100%
如果要搬到SQL 去,
就是建立為Primary Key,
一樣在INSERT錯誤時,VFP可以接收到一個錯誤,
那就可以偵測唯一性
要用來讓其他人不能進去某功能,可以把功能代號丟進去,
要用來讓其他人不能使用某種代號,可以把貨品代號,客戶廠商代號,單據號碼,發票號碼,....放進去,
要用來讓其他人不能使用某檔名或是資料夾名,應該不需要用這個. Laughing Laughing Laughing


當然後面還要做很多工作,
例如清除TABLE1的舊資料等等

_________________
如果公司有下列困擾:
1. 找不到便宜,快速,簡易的 生產排程軟體
2. 不知道如何快速排定 採購計劃
3. 成本抓不準,自己算比軟體算有用
4. 想學習系統規劃,想找系統架構的顧問

請聯絡我們,也許我們幫得上忙
回頂端
檢視會員個人資料 發送私人訊息 發送電子郵件 AIM Address
從之前的文章開始顯示:   
發表新主題   回覆主題    VFP 愛用者社區 首頁 -> VFP 討論區 所有的時間均為 台北時間 (GMT + 8 小時)
前往頁面 1, 2  下一頁
1頁(共2頁)

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


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