📄 yaojiangunit.~pas
字号:
end;
with JiangQry do
begin
Active :=False;
SQL.Clear;
SQL.Add('select * from Jiang where J_type=0 and J_Sum>J_Kai_NUm ');
Active :=True;
if RecordCount<1 then
begin
showmessage('对不起,特等奖已经开完了,不能再开!');
Exit;
end;
end;
button1.Enabled :=False;
Button3.Enabled := False;
Button2.Enabled := True;
I0:=1;
while I0<>0 do
begin
label6.Caption := TeQry.fieldbyname('Name_id').asString;
Label7.Caption := TeQry.FieldByname('Name_code').AsString;
Label8.Caption :=JiangQry.fieldbyname('J_name').AsString;
label6.Refresh;
Label7.Refresh;
Label8.Refresh;
application.ProcessMessages;
if I0=0 then
Break;
I0:=I0+1;
TeQry.Next;
JiangQry.Next;
if TeQry.Eof then
TeQry.First;
if JiangQry.Eof then
JiangQry.First;
end;
end;
procedure TForm1.Button2Click(Sender: TObject);
Var
J_Rkey:integer;
Y_Rkey:integer;
KaiNum,NoKaiNum:integer;
begin
I0:=0;
Button1.Enabled :=True;
Button2.Enabled :=False;
Button3.Enabled :=True;
Button31.Enabled :=True;
with J_FlagQry do
begin //如果中奖了则奖中奖数字段值加1
Active:=False;
Sql.Clear;
Sql.Add('update Jiang set J_Kai_num=J_Kai_num+1 ');
SQl.Add(' where J_Type=0 and Rkey=:J_Rkey' );
sql.Add(' select * from Jiang where J_type=1');
//if J_Ding<>0 then
// Parameters.ParamByName('J_Rkey').Value :=J_Ding
//else
Parameters.ParamByName('J_Rkey').Value :=JiangQry.fieldbyname('rkey').AsInteger ;
Active:=true;
Active:=False;
end;
J_Rkey:=JiangQry.fieldbyname('rkey').AsInteger ;
Y_Rkey:=TeQry.fieldbyname('rkey').asInteger;
with J_FlagQry do
begin //将中奖的奖品赋值给中奖之人,并标记该人已中过奖了
Active:=False;
Sql.Clear;
Sql.Add('update yuan set Yuan.J_code=Jiang.J_code,Yuan.J_name=Jiang.J_name,Yuan.J_type=Jiang.J_type,Yuan.J_Flag=1 from yuan ,Jiang ' );
Sql.Add('where Jiang.Rkey=:J_key and Yuan.Rkey=:Y_key ');
J_FlagQry.Parameters.ParamByName('J_key').Value :=J_Rkey;
J_FlagQry.Parameters.ParamByName('Y_key').Value :=Y_Rkey;
Sql.Add(' select * from Yuan ');
Active:=true;
end;
with JiangNumQry do //取得当前中奖的情况
begin
Active:=False;
Sql.Clear;
Sql.Add('select J_Kai_Num,(J_Sum-J_Kai_Num) Wei from Jiang where J_type=0');
Active:=True;
First;
KaiNum:=0;
NoKaiNum:=0;
while not eof do
begin
KaiNum:=KaiNum+fieldbyName('J_Kai_Num').AsInteger;//已经中奖数
NoKaiNum:=NoKaiNum+fieldbyName('Wei').AsInteger;//还没有中奖之数
Next;
end;
Label69.Caption :=IntToStr(KaiNum)+'名';
Label70.Caption :=IntToStr(NoKaiNum)+'名';
Active:=False;
end;
end;
procedure TForm1.Button3Click(Sender: TObject);
begin
Close;
end;
procedure TForm1.FormCreate(Sender: TObject);
Var
VarSetIni :TiniFile;
VarStr:String;
I:integer;
begin
VarHRASum:=0;
VarSetIni := TiniFile.Create(ExtractFilePath(Application.ExeName)
+'Database.ini');
VarStr:=VarSetIni.ReadString('Common','UseLink','');
Self.ADOConnection1.Connected := False;
Self.ADOConnection1.ConnectionString:='';
Self.ADOConnection1.ConnectionString:=VarStr;
Try
Self.ADOConnection1.Connected :=True;
Except
MessageDlg('数据库连接失败!请您检查数据库连接!',mtError,[mbOK],0);
Halt;
end;
with ConnNumQry do
begin
Active:=False;
Sql.Clear;
Sql.Add('select Rkey from ConnectNum');
Active:=True;
First;
if self.ConnNumQry.FieldByName('rkey').AsInteger>0 then
begin
Showmessage('温馨提示:'+#13#10#13#10+' 对不起,本程序已经有人在另外一台电脑上运行!'+
'需要等对方退出后,您才可以运行!');
Halt;
end;
end;
with self.ConnNumQry do
begin
Active:=False;
SQL.Clear;
SqL.Add('update connectNum set rkey=Rkey+1');
SQL.Add('select * from connectNum');
Active:=True;
Active:=False;
end;
VarSetIni.Free;
Button2.Enabled :=False;
Button5.Enabled :=False;
Button8.Enabled :=False;
//Button20.Enabled :=False;
Button11.Enabled :=False;
Button14.Enabled :=False;
Button17.Enabled :=False;
TeQry.Active :=False;
TeQry.Active :=False;
I:=0;
while I<30 do
begin
TLabel(FindComponent('Label'+intToStr(100+3*i))).Caption :='';
TLabel(FindComponent('Label'+intToStr(101+3*i))).Caption :='';
TLabel(FindComponent('Label'+intToStr(102+3*i))).Caption :='';
I:=I+1;
end;
with JiangNumQry do
begin
Active:=False;
SQl.Clear;
Sql.Add('select Sum(J_Kai_Num) J_Kai_Num,Sum(J_Sum-J_Kai_Num) Wei from Jiang where J_type=0 ');
Active:=True;
end;
Label69.Caption :=IntToStr(JiangNumQry.fieldbyName('J_Kai_Num').AsInteger)+'名';
Label70.Caption :=IntToStr(JiangNumQry.fieldbyName('Wei').AsInteger)+'名';
JiangNumQry.Active :=False;
with self.TeQry do
begin
Active:=False;
SQL.Clear;
SQL.Add(' select Rkey from yuan where id_type='+''''+'A'+'''');
Active:=True;
VarHRASum:=TeQry.RecordCount;
end;
end;
procedure TForm1.PageControl1Change(Sender: TObject);
Var
I:integer;
J_Sum,KaiNum,NoKaiNum:integer;
begin
for i:=1 to 6 do
begin
TButton(FindComponent('button3'+IntToStr(i))).Enabled := False;
end;
Button20.Enabled :=False;
Button29.Enabled :=False;
Edit36.Text:='';
Edit37.Text:='';
I0:=0;
I1:=0;
I2:=0;
I3:=0;
I4:=0;
I5:=0;
I6:=0;
IEW:=0;
I:=0;
while I<10 do
begin
Key[i]:=0;
YKey[i]:=0;
I:=I+1;
end;
TeQry.Active :=False;
J_FlagQry.Active :=False;
JiangQry.Active :=False;
JiangNumQry.Active :=False;
for I:=0 to 9 do
begin //给各TabSheet控件中的工号,姓名,奖品的Label.caption赋空值
TLabel(FindComponent('Label'+intToStr(39+i*3))).Caption := '';
TLabel(FindComponent('Label'+intToStr(40+i*3))).Caption := '';
TLabel(FindComponent('Label'+intToStr(41+i*3))).Caption := '';
TLabel(FindComponent('Label'+intToStr(100+i*3))).Caption := '';
TLabel(FindComponent('Label'+intToStr(101+i*3))).Caption := '';
TLabel(FindComponent('Label'+intToStr(102+i*3))).Caption := '';
TLabel(FindComponent('Label'+intToStr(130+i*3))).Caption := '';
TLabel(FindComponent('Label'+intToStr(131+i*3))).Caption := '';
TLabel(FindComponent('Label'+intToStr(132+i*3))).Caption := '';
label160.Caption := '';
Label161.Caption := '';
Label162.Caption := '';
label166.Caption := '';
Label167.Caption := '';
Label168.Caption := '';
label163.Caption := '';
Label164.Caption := '';
Label165.Caption := '';
label6.Caption := '';
Label7.Caption := '';
Label8.Caption := '';
EDIT30.Text :='';
eDIT31.Text:='';
Edit36.Text :='';
Edit37.Text:='';
end;
if PageControl1.ActivePage = Tabsheet2 then
begin
with JiangNumQry do //取得当前中奖的情况
begin
Active:=False;
Sql.Clear;
Sql.Add('select J_Sum,J_Kai_Num,(J_Sum-J_Kai_Num) Wei from Jiang where J_type=1');
Active:=True;
First;
J_Sum:=0;
KaiNum:=0;
NoKaiNum:=0;
while not eof do
begin
J_Sum:=J_Sum+fieldbyName('J_Sum').AsInteger;
KaiNum:=KaiNum+fieldbyName('J_Kai_Num').AsInteger;//已经中奖数
NoKaiNum:=NoKaiNum+fieldbyName('Wei').AsInteger;//还没有中奖之数
Next;
end;
Edit1.Text :=IntToStr(J_Sum)+'名';
Edit2.Text :=IntToStr(KaiNum)+'名';
Edit3.Text :=IntToStr(NoKaiNum)+'名';
Active:=False;
end;
end;
if PageControl1.ActivePage = TabSheet1 then
begin
with JiangNumQry do
begin
Active:=False;
SQl.Clear;
Sql.Add('select Sum(J_Sum) J_sum,Sum(J_Kai_Num) J_Kai_Num,Sum(J_Sum-J_Kai_Num) Wei from Jiang where J_type=0');
Active:=True;
end;
Label22.Caption :=IntTostr(JiangNumQry.fieldByname('J_Sum').AsInteger)+'名';
Label69.Caption :=IntToStr(JiangNumQry.fieldbyName('J_Kai_Num').AsInteger)+'名';
Label70.Caption :=IntToStr(JiangNumQry.fieldbyName('Wei').AsInteger)+'名';
JiangNumQry.Active :=False;
end;
if PageControl1.ActivePage = TabSheet3 then
begin
with JiangNumQry do
begin
Active:=False;
SQl.Clear;
Sql.Add('select J_Sum,J_Kai_Num,(J_Sum-J_Kai_Num) Wei from Jiang where J_type=2');
Active:=True;
First;
J_Sum:=0;
KaiNum:=0;
NoKaiNum:=0;
while not eof do
begin
J_Sum:=J_Sum+fieldbyName('J_Sum').AsInteger;
KaiNum:=KaiNum+fieldbyName('J_Kai_Num').AsInteger;
NoKaiNum:=NoKaiNum+fieldbyName('Wei').AsInteger;
Next;
end;
end;
Edit9.Text :=IntToStr(J_Sum)+'名';
Edit8.Text :=IntToStr(KaiNum)+'名';
Edit7.Text :=IntToStr(NoKaiNum)+'名';
JiangNumQry.Active :=False;
end;
if PageControl1.ActivePage = TabSheet4 then
begin
with JiangNumQry do
begin
Active:=False;
SQl.Clear;
Sql.Add('select J_Sum,J_Kai_Num,(J_Sum-J_Kai_Num) Wei from Jiang where J_type=3');
Active:=True;
First;
J_Sum:=0;
KaiNum:=0;
NoKaiNum:=0;
while not eof do
begin
J_Sum:=J_Sum+fieldbyName('J_Sum').AsInteger;
KaiNum:=KaiNum+fieldbyName('J_Kai_Num').AsInteger;
NoKaiNum:=NoKaiNum+fieldbyName('Wei').AsInteger;
Next;
end;
end;
Edit15.Text:=IntToStr(J_Sum)+'名';
Edit14.Text :=IntToStr(KaiNum)+'名';
Edit13.Text :=IntToStr(NoKaiNum)+'名';
JiangNumQry.Active :=False;
end;
if PageControl1.ActivePage = TabSheet5 then
begin
with JiangNumQry do
begin
Active:=False;
SQl.Clear;
Sql.Add('select J_Sum,J_Kai_Num,(J_Sum-J_Kai_Num) Wei from Jiang where J_type=4');
Active:=True;
end;
Edit19.Text:=IntToStr(JiangNumQry.fieldByName('J_Sum').AsInteger )+'名';
Edit20.Text :=IntToStr(JiangNumQry.fieldbyName('J_Kai_Num').AsInteger)+'名';
Edit21.Text :=IntToStr(JiangNumQry.fieldbyName('Wei').AsInteger)+'名';
JiangNumQry.Active :=False;
end;
if PageControl1.ActivePage = TabSheet6 then
begin
with JiangNumQry do
begin
Active:=False;
SQl.Clear;
Sql.Add('select J_Sum,J_Kai_Num,(J_Sum-J_Kai_Num) Wei from Jiang where J_type=5');
Active:=True;
First;
J_Sum:=0;
KaiNum:=0;
NoKaiNum:=0;
while not eof do
begin
J_Sum:=J_Sum+fieldbyName('J_Sum').AsInteger;
KaiNum:=KaiNum+fieldbyName('J_Kai_Num').AsInteger;
NoKaiNum:=NoKaiNum+fieldbyName('Wei').AsInteger;
Next;
end;
end;
Edit25.Text:=IntToStr(J_Sum)+'名';
Edit22.Text :=IntToStr(KaiNum)+'名';
Edit24.Text :=IntToStr(NoKaiNum)+'名';
JiangNumQry.Active :=False;
end;
if PageControl1.ActivePage = TabSheet7 then
begin
Button19.SetFocus;
with JiangNumQry do
begin
Active:=False;
SQl.Clear;
Sql.Add('select J_Sum,J_Kai_Num,(J_Sum-J_Kai_Num) Wei from Jiang where J_type=6');
Active:=True;
First;
J_Sum:=0;
KaiNum:=0;
NoKaiNum:=0;
while not eof do
begin
J_Sum:=J_Sum+fieldbyName('J_Sum').AsInteger;
KaiNum:=KaiNum+fieldbyName('J_Kai_Num').AsInteger;
NoKaiNum:=NoKaiNum+fieldbyName('Wei').AsInteger;
Next;
end;
end;
Edit33.Text:=IntToStr(J_Sum)+'名';
Edit39.Text :=IntToStr(KaiNum)+'名';
Edit41.Text :=IntToStr(NoKaiNum)+'名';
JiangNumQry.Active :=False;
end;
end;
procedure TForm1.Button19Click(Sender: TObject);
var
Z_J_N:integer;//用来存储中奖的管理人员数量
I:integer;//用来取得随机数的控制变量
X:integer;//循环变量
K:integer;//控制循环10次
J_Flag:integer;//标记抽奖是否完成.
begin //开六等奖
Button19.Enabled :=False;
Button20.Enabled :=True;
Button21.Enabled :=False;
Button36.Enabled :=False;
J_Flag:=0;
Z_J_N:=0;
with TeQry do
begin //取得已中奖的管理人员数量
Active:=False;
Sql.Clear;
Sql.Add('select * from yuan where J_Flag=1 and ID_TYPE='+''''+'A'+'''');
Active:=True;
Z_J_N:=RecordCount;
end;
with TeQry do //取得未抽中奖的人员
begin
active:=False;
Sql.Clear;
if Z_J_N>(VarHRASum-30) then//还剩30个A类人不准拿六等奖 B表示一般员工
begin
SQL.Add('select * from Yuan where J_Flag=0 and J_EW_Flag=0 and and ID_type='+''''+'B'+'''');
SQL.Add(' order by NewId() ');//NewId()在一个数据表中随机地选取出数据来
end
else //
begin
Sql.Add('select * from yuan where J_Flag=0 and J_EW_Flag=0 ');
SQL.Add(' order by NewId() ');//NewId()在一个数据表中随机地选取出数据来
end;
Active:=True;
if Recordcount<1 then
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -