員工工號抽獎(急,馬上要廠慶啦!公司等用。) |
尚未結案
|
guohua_fu
一般會員 發表:44 回覆:50 積分:18 註冊:2003-06-19 發送簡訊給我 |
各位前輩:
1、現有一數據表A001,主要有以下字段:
工號(4) 姓名(10) 部門(10) 職稱10()
2、現我想用這個表中的數據進行員工工號隨機抽獎,從而產生一個數據表中存在的4位工號,並且一個工號只能出現一次。
3、畫面一按[開始]所有數據開始跳動,一按[停]就取出一個工號;
不知道以上功能如何實現,請大家幫幫忙! ======================
^_^ 相信自己,你是最棒的!
jacky
====================== 發表人 - guohua_fu 於 2004/07/12 16:52:42
------
jacky |
Fishman
尊榮會員 發表:120 回覆:1949 積分:2163 註冊:2006-10-28 發送簡訊給我 |
Hi guohua_fu, 將再職員工連接至 ClientDataSet
TTable(TQuery) --> DataSetProvider --> TClientDataSet
然後
procedure TForm1.Button5Click(Sender: TObject); Var No : Integer; begin Randomize; ClientDataSet1.First; No := Random(ClientDataSet1.RecordCount 1); //亂數產生號碼 ClientDataSet1.MoveBy(No); ShowMessage(ClientDataSet1.FieldByName('ID').AsString); // Display 抽中者 ClientDataSet1.Delete; //抽中刪除 end;---------------------------------- 小弟才疏學淺,若有謬誤尚請不吝指教 ----------------------------------
------
Fishman |
guohua_fu
一般會員 發表:44 回覆:50 積分:18 註冊:2003-06-19 發送簡訊給我 |
|
richtop
資深會員 發表:122 回覆:646 積分:468 註冊:2003-06-10 發送簡訊給我 |
|
hagar
版主 發表:143 回覆:4056 積分:4445 註冊:2002-04-14 發送簡訊給我 |
試試如下行不行?
假設 DBGrid1 顯示 ClientDataset1 的資料
按下 Button2 開始抽
按下 Button1 表要停止
此時DBGrid1 上 Cursor 停的那一筆就是中獎那筆
var IsStop: Boolean = False; procedure TForm1.Button1Click(Sender: TObject); begin IsStop := True; end; procedure TForm1.Button2Click(Sender: TObject); // 開始抽 begin while True do begin ClientDataSet1.Next; Application.Processmessages; Sleep(10); if IsStop then Exit; if ClientDataset1.Eof then ClientDataset1.First; end; end;-- 西瓜生食能解渴生津、利尿、降血壓,有「天生白虎湯」之稱。 |
guohua_fu
一般會員 發表:44 回覆:50 積分:18 註冊:2003-06-19 發送簡訊給我 |
|
cxh17895
初階會員 發表:13 回覆:37 積分:25 註冊:2003-03-19 發送簡訊給我 |
|
Fishman
尊榮會員 發表:120 回覆:1949 積分:2163 註冊:2006-10-28 發送簡訊給我 |
Hi guohua_fu, 將 hagar 版大的程式碼加上以下紅色字體分,即可達到數據跳動功能
procedure TForm1.Button2Click(Sender: TObject); // 開始抽 begin while True do begin ClientDataSet1.Next; Application.Processmessages; Edit1.Text := ClientDataSet1.FieldByName('id').AsString; Sleep(10); if IsStop then Exit; if ClientDataset1.Eof then ClientDataset1.First; end; end;另一種方法,與 richtop 大大所言類似,範例如下 http://delphi.ktop.com.tw/loadfile.php?TOPICID=16630955&CC=371945 ---------------------------------- 小弟才疏學淺,若有謬誤尚請不吝指教 ----------------------------------
------
Fishman |
本站聲明 |
1. 本論壇為無營利行為之開放平台,所有文章都是由網友自行張貼,如牽涉到法律糾紛一切與本站無關。 2. 假如網友發表之內容涉及侵權,而損及您的利益,請立即通知版主刪除。 3. 請勿批評中華民國元首及政府或批評各政黨,是藍是綠本站無權干涉,但這裡不是政治性論壇! |