📄 unit1.pas
字号:
key:=#0;
dbedit3.SetFocus;
end;
end;
procedure TForm1.DBEdit3KeyPress(Sender: TObject; var Key: Char);
begin
if key=#13 then
begin
key:=#0;
dbedit4.SetFocus;
end;
end;
procedure TForm1.DBEdit4KeyPress(Sender: TObject; var Key: Char);
begin
if key=#13 then
begin
key:=#0;
dbedit5.SetFocus;
end;
end;
procedure TForm1.DBEdit5KeyPress(Sender: TObject; var Key: Char);
begin
if key=#13 then
begin
key:=#0;
dbedit6.SetFocus;
end;
end;
procedure TForm1.DBEdit6KeyPress(Sender: TObject; var Key: Char);
begin
if key=#13 then
begin
key:=#0;
dbedit7.SetFocus;
end;
end;
procedure TForm1.DBEdit7KeyPress(Sender: TObject; var Key: Char);
begin
if key=#13 then
begin
key:=#0;
dbedit8.SetFocus;
end;
end;
procedure TForm1.DBEdit8KeyPress(Sender: TObject; var Key: Char);
begin
if key=#13 then
begin
key:=#0;
dbedit9.SetFocus;
end;
end;
procedure TForm1.DBEdit9KeyPress(Sender: TObject; var Key: Char);
begin
if key=#13 then
begin
key:=#0;
dbedit10.SetFocus;
end;
end;
procedure TForm1.DBEdit10KeyPress(Sender: TObject; var Key: Char);
begin
if key=#13 then
begin
key:=#0;
dbedit11.SetFocus;
end;
end;
procedure TForm1.DBEdit11KeyPress(Sender: TObject; var Key: Char);
begin
if key=#13 then
begin
key:=#0;
dbedit12.SetFocus;
end;
end;
procedure TForm1.DBEdit12KeyPress(Sender: TObject; var Key: Char);
begin
if key=#13 then
begin
key:=#0;
dbedit13.SetFocus;
end;
end;
procedure TForm1.DBEdit13KeyPress(Sender: TObject; var Key: Char);
begin
if key=#13 then
begin
key:=#0;
dbedit14.SetFocus;
end;
end;
procedure TForm1.DBEdit14KeyPress(Sender: TObject; var Key: Char);
begin
if key=#13 then
begin
key:=#0;
dbedit15.SetFocus;
end;
end;
procedure TForm1.DBEdit15KeyPress(Sender: TObject; var Key: Char);
begin
if key=#13 then
begin
key:=#0;
dbedit16.SetFocus;
end;
end;
procedure TForm1.DBEdit16KeyPress(Sender: TObject; var Key: Char);
begin
if key=#13 then
begin
key:=#0;
dbedit17.SetFocus;
end;
end;
procedure TForm1.DBEdit17KeyPress(Sender: TObject; var Key: Char);
begin
if key=#13 then
begin
key:=#0;
dbedit18.SetFocus;
end;
end;
procedure TForm1.DBEdit18KeyPress(Sender: TObject; var Key: Char);
begin
if key=#13 then
begin
key:=#0;
dbedit19.SetFocus;
end;
end;
procedure TForm1.DBEdit19KeyPress(Sender: TObject; var Key: Char);
begin
if key=#13 then
begin
key:=#0;
dbedit20.SetFocus;
end;
end;
procedure TForm1.DBEdit20KeyPress(Sender: TObject; var Key: Char);
begin
if key=#13 then
begin
key:=#0;
dbedit21.SetFocus;
end;
end;
procedure TForm1.DBEdit21KeyPress(Sender: TObject; var Key: Char);
begin
if key=#13 then
begin
key:=#0;
dbedit22.SetFocus;
end;
end;
procedure TForm1.DBEdit22KeyPress(Sender: TObject; var Key: Char);
begin
if key=#13 then
begin
key:=#0;
dbmemo1.SetFocus;
end;
end;
procedure TForm1.Button7Click(Sender: TObject);
var
i:integer;
begin
adotable1.Edit;
dbmemo1.Enabled :=true;
DateTimePicker1.Enabled :=true;
button4.Enabled :=false;
button5.Enabled :=true;
button6.Enabled :=false;
button7.Enabled :=false;
for i:=1 to 22 do //将dbedit(1-22) enabled :=true
begin
(self.findcomponent('dbedit'+inttostr(i)) as tdbedit).enabled :=true;
end;
end;
procedure TForm1.Button8Click(Sender: TObject);
begin
drb(9999);
drb(100);
drb(50);
drb(10);
end;
procedure TForm1.RadioButton1Click(Sender: TObject);
begin
edit1.Enabled :=false;
button9.Enabled :=false;
edit1.Text :='全部';
adoquery1.Close ;
adoquery1.SQL.Clear ;
label8.Caption :='目前统计的有'+inttostr(adotable1.RecordCount)+'期';
adoquery1.SQL.add('select * from sstar_count where allnum<'+'20');
adoquery1.Open ;
label52.Caption :=findmaxmin(1,5,9999).min;
label53.Caption :=findmaxmin(1,5,9999).max;
label54.Caption :=findmaxmin(2,5,9999).min;
label55.Caption :=findmaxmin(2,5,9999).max;
label56.Caption :=findmaxmin(3,5,9999).min;
label57.Caption :=findmaxmin(3,5,9999).max;
label58.Caption :=findmaxmin(4,5,9999).min;
label59.Caption :=findmaxmin(4,5,9999).max;
label60.Caption :=findmaxmin(5,5,9999).min;
label61.Caption :=findmaxmin(5,5,9999).max;
label62.Caption :=findmaxmin(6,5,9999).min;
label63.Caption :=findmaxmin(6,5,9999).max;
label64.Caption :=findmaxmin(7,5,9999).min;
label65.Caption :=findmaxmin(7,5,9999).max;
allnumchart(9999);
end;
procedure TForm1.Button9Click(Sender: TObject);
begin
if strtoint(edit1.Text)<1 then
messagebox(form1.handle,'输入的期数必须大于0','提示',mb_ok)
else
begin
drb(strtoint(edit1.text));
label8.Caption :='目前统计的有'+edit1.text+'期';
adoquery1.Close ;
adoquery1.SQL.Clear ;
adoquery1.SQL.add('select * from sstar_count where allnum>='+'80'+' and allnum<'+'100');
adoquery1.Open ;
label52.Caption :=findmaxmin(1,5,strtoint(edit1.text)).min;
label53.Caption :=findmaxmin(1,5,strtoint(edit1.text)).max;
label54.Caption :=findmaxmin(2,5,strtoint(edit1.text)).min;
label55.Caption :=findmaxmin(2,5,strtoint(edit1.text)).max;
label56.Caption :=findmaxmin(3,5,strtoint(edit1.text)).min;
label57.Caption :=findmaxmin(3,5,strtoint(edit1.text)).max;
label58.Caption :=findmaxmin(4,5,strtoint(edit1.text)).min;
label59.Caption :=findmaxmin(4,5,strtoint(edit1.text)).max;
label60.Caption :=findmaxmin(5,5,strtoint(edit1.text)).min;
label61.Caption :=findmaxmin(5,5,strtoint(edit1.text)).max;
label62.Caption :=findmaxmin(6,5,strtoint(edit1.text)).min;
label63.Caption :=findmaxmin(6,5,strtoint(edit1.text)).max;
label64.Caption :=findmaxmin(7,5,strtoint(edit1.text)).min;
label65.Caption :=findmaxmin(7,5,strtoint(edit1.text)).max;
allnumchart(strtoint(edit1.text));
end;
end;
Function drb(i:integer):string; //数据统计函数(i:>0!)
var
j,k:integer;
tj1,accid:string;
begin
form1.StatusBar1.Panels[2].Text :='数据统计中……';
result:=inttostr(i);
case i of
9999:
begin
tj1:='allnum<10';
k:=0;
end;
100:
begin
tj1:='allnum>=20 and allnum<30';
k:=20;
end;
50:
begin
tj1:='allnum>=40 and allnum<50';
k:=40;
end;
10:
begin
tj1:='allnum>=60 and allnum<70';
k:=60;
end;
else
begin
tj1:='allnum>=80 and allnum<90';
k:=80;
end;
end;
form1.adoquery2.Close;
form1.adoquery2.SQL.Clear ;
form1.adoquery2.SQL.Add('select top '+inttostr(i)+' * from sstar_num');
form1.adoquery2.ExecSQL ;
form1.adoquery2.Close;
form1.adoquery2.Open;
form1.adoquery2.last;
accid:=form1.adoquery2.fields[0].value;
form1.adoquery2.close;
form1.adoquery2.SQL.Clear;
for j:=1 to 7 do
begin
form1.adoquery2.sql.add('update sstar_count');
form1.adoquery2.sql.add('set num'+inttostr(j)+'=(select count(*) from sstar_num where num'+inttostr(j)+'=allnum-'+inttostr(k)+' and accid>='+accid+')');
//form1.adoquery2.sql.add('where allnum<'+'10');
form1.adoquery2.sql.add('where '+tj1);
end;
form1.adoquery2.ExecSQL ;
form1.adoquery2.close;
form1.adoquery2.SQL.Clear;
for j:=1 to 7 do
begin
form1.adoquery2.SQL.add('update sstar_count');
form1.adoquery2.SQL.add('set num'+inttostr(j)+'='+'(select sum(num'+inttostr(j)+') from sstar_count ');
form1.adoquery2.SQL.add('where allnum='+inttostr(k+1)+' or allnum='+inttostr(k+3)+' or allnum='+inttostr(k+5)+' or allnum='+inttostr(k+7)+' or allnum='+inttostr(k+9)+') ');
form1.adoquery2.SQL.add('where allnum='+inttostr(k+10));
form1.adoquery2.SQL.add('update sstar_count');
form1.adoquery2.SQL.add('set num'+inttostr(j)+'='+'(select sum(num'+inttostr(j)+') from sstar_count ');
form1.adoquery2.SQL.add('where allnum='+inttostr(k)+' or allnum='+inttostr(k+2)+' or allnum='+inttostr(k+4)+' or allnum='+inttostr(k+6)+' or allnum='+inttostr(k+8)+') ');
form1.adoquery2.SQL.add('where allnum='+inttostr(k+11));
end;
form1.adoquery2.execsql ;
form1.adoquery2.close;
form1.adoquery2.SQL.Clear;
form1.adoquery2.SQL.Text :='select * from sstar_count';
form1.adoquery2.Open ;
form1.StatusBar1.Panels[2].Text :='数据统计,已完成!';
end;
Function findmaxmin(i,j,k:integer):recordresult; //数据排序函数
//i(1-7):位数;j(1-10):输出多少个数;k(9999,100,50,10,n):参加统计的期数
var
m,n:integer;
tj1:string;
begin
result.max :='';
result.min :='';
case k of
9999:
begin
tj1:='allnum<10';
n:=0;
end;
100:
begin
tj1:='allnum>=20 and allnum<30';
n:=20;
end;
50:
begin
tj1:='allnum>=40 and allnum<50';
n:=40;
end;
10:
begin
tj1:='allnum>=60 and allnum<70';
n:=60;
end;
else
begin
tj1:='allnum>=80 and allnum<90';
n:=80;
end;
end;
form1.adoquery2.Close;
form1.adoquery2.SQL.Clear;
form1.adoquery2.SQL.Add('select * from sstar_count where '+tj1+' order by num'+inttostr(i)+' asc');
form1.adoquery2.open ;
form1.adoquery2.First ;
for m:=1 to j do
begin
result.min :=result.min+inttostr(form1.adoquery2.Fields[0].Value-n)+',' ;
form1.ADOQuery2.Next;
end;
form1.adoquery2.Last;
for m:=1 to j do
begin
result.max :=result.max+inttostr(form1.adoquery2.Fields[0].Value-n)+',' ;
form1.ADOQuery2.Prior;
end;
end;
Function allnumchart(i:integer):string; //数字图形函数
var
j,k :integer;
// tj1:string;
tmp :array[0..9] of integer;
begin
{case i of
9999:
tj1:='allnum<10';
100:
tj1:='allnum>=20 and allnum<30';
50:
tj1:='allnum>=40 and allnum<50';
10:
tj1:='allnum>=60 and allnum<70';
else
tj1:='allnum>=80 and allnum<90';
end;
// form1.adoquery2.Close;
// form1.adoquery2.SQL.Clear;
// form1.adoquery2.SQL.Add('select * from sstar_count where '+tj1 );
// form1.adoquery2.open ;
// form1.adoquery2.First ;}
for j:=0 to 9 do tmp[j]:=0;
for j:=0 to 9 do
begin
for k:=0 to 6 do
begin
tmp[j]:=tmp[j]+form1.adoquery1.Fields[k+1].Value
end;
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -