📄 sj_four_rand.~pas
字号:
unit sj_four_rand;
interface
uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, ComCtrls, StdCtrls,math,DB,ADODB, ExtCtrls, TeeProcs, TeEngine,
Chart, Series, Buttons, BubbleCh,Printers;
type
TT_txtj = class(TForm)
Chart1: TChart;
GroupBox1: TGroupBox;
GroupBox2: TGroupBox;
GroupBox3: TGroupBox;
BitBtn1: TBitBtn;
BitBtn2: TBitBtn;
BitBtn3: TBitBtn;
BitBtn4: TBitBtn;
rb_zz: TRadioButton;
rb_bt: TRadioButton;
RadioButton1: TRadioButton;
RadioButton2: TRadioButton;
RadioButton3: TRadioButton;
Series1: TBarSeries;
Chart2: TChart;
Series2: TPieSeries;
SaveDialog1: TSaveDialog;
procedure BitBtn2Click(Sender: TObject);
procedure BitBtn3Click(Sender: TObject);
procedure BitBtn4Click(Sender: TObject);
procedure BitBtn1Click(Sender: TObject);
private
{ Private declarations }
public
{ Public declarations }
end;
var
T_txtj: TT_txtj;
implementation
{$R *.dfm}
uses main;
procedure TT_txtj.BitBtn2Click(Sender: TObject);
var
t:Tadoquery;
i:Integer;
data_sum:array[1..6]of integer;
pie_pic:boolean;
begin
if rb_bt.Checked then
begin
pie_pic:=true;
chart1.Visible:=false;
chart2.Visible:=true;
end
else
begin
pie_pic:=false;
chart2.Visible:=false;
end;
chart1.Visible:=true;
if RadioButton1.Checked then
begin
for i:=1 to 6 do data_sum[i]:=0;
t:=Tadoquery.Create(nil);
t.Connection:=main.DataModule2.ADOConnection1;
t.SQL.Clear;
t.Close;
t.SQL.Add('select 类别 from 人员信息表');
t.Open;
while not t.Eof do
begin
if t.FieldByName('类别').AsString='考试人' then
data_sum[1]:=data_sum[1]+1;
if t.FieldByName('类别').AsString='操作员' then
data_sum[2]:=data_sum[2]+1;
if t.FieldByName('类别').AsString='管理员' then
data_sum[3]:=data_sum[3]+1;
t.Next;
end;
Series1.Clear;
series2.Clear;
if not pie_pic then
begin
chart1.Title.Text[0]:=radiobutton1.Caption;
series1.Add(data_sum[1],'考试人数',clTeeColor);
series1.Add(data_sum[2],'操作员人数',clblue);
series1.Add(data_sum[3],'管理员人数',clred)
end
else
begin
series2.Title:=radiobutton1.Caption;
series2.Add(data_sum[1],'考试人数',clTeeColor);
series2.Add(data_sum[2],'操作员人数',clblue);
series2.Add(data_sum[3],'管理员人数',clred);
end;
t.Close;
t.Free;
end;
if RadioButton2.Checked then
begin
for i:=1 to 6 do data_sum[i]:=0;
t:=Tadoquery.Create(nil);
t.Connection:=main.DataModule2.ADOConnection1;
t.SQL.Clear;
t.Close;
t.SQL.Add('select 题型 from 试题表');
t.Open;
while not t.Eof do
begin
if t.FieldByName('题型').AsInteger =1 then
data_sum[1]:=data_sum[1]+1;
if t.FieldByName('题型').AsInteger =2 then
data_sum[2]:=data_sum[2]+1;
if t.FieldByName('题型').AsInteger =3 then
data_sum[3]:=data_sum[3]+1;
if t.FieldByName('题型').AsInteger =4 then
data_sum[4]:=data_sum[4]+1;
if t.FieldByName('题型').AsInteger =5 then
data_sum[5]:=data_sum[5]+1;
if t.FieldByName('题型').AsInteger =6 then
data_sum[6]:=data_sum[6]+1;
t.Next;
end;
Series1.Clear;
series2.Clear;
if not pie_pic then
begin
chart1.Title.Text[0]:=radiobutton2.Caption;
series1.Add(data_sum[1],'单选题',clTeeColor);
series1.Add(data_sum[2],'多选题',clblue);
series1.Add(data_sum[3],'填空题',clred);
series1.Add(data_sum[4],'问答题',clTeeColor);
series1.Add(data_sum[5],'作文题',clblue);
series1.Add(data_sum[6],'判断题',clred)
end
else
begin
series2.Title:=radiobutton2.Caption;
series2.Add(data_sum[1],'单选题',clTeeColor);
series2.Add(data_sum[2],'多选题',clblue);
series2.Add(data_sum[3],'填空题',clred);
series2.Add(data_sum[4],'问答题',clTeeColor);
series2.Add(data_sum[5],'作文题',clblue);
series2.Add(data_sum[6],'判断题',clred);
end;
t.Close;
t.Free;
end;
if RadioButton3.Checked then
begin
for i:=1 to 6 do data_sum[i]:=0;
t:=Tadoquery.Create(nil);
t.Connection:=main.DataModule2.ADOConnection1;
t.SQL.Clear;
t.Close;
t.SQL.Add('select 性别 from 人员信息表');
t.Open;
while not t.Eof do
begin
if t.FieldByName('性别').AsString = '男' then
data_sum[1]:=data_sum[1]+1;
if t.FieldByName('性别').Asstring = '女' then
data_sum[2]:=data_sum[2]+1;
t.Next;
end;
series1.Clear;
series2.Clear;
if not pie_pic then
begin
chart1.Title.Text[0]:=radiobutton3.Caption;
series1.Add(data_sum[1],'男',clTeeColor);
series1.Add(data_sum[2],'女',clblue)
end
else
begin
series2.Title:=radiobutton3.Caption;
series2.Add(data_sum[1],'男',clTeeColor);
series2.Add(data_sum[2],'女',clblue);
end;
t.Close;
t.Free;
end;
end;
procedure TT_txtj.BitBtn3Click(Sender: TObject);
begin
with Printer do
begin
BeginDoc;
Canvas.TextRect(Rect(200,200,PageWidth-200,PageHeight-200),
200, 200,'远程教育考试平台--图形打印');
chart1.Print;
EndDoc;
end;
end;
procedure TT_txtj.BitBtn4Click(Sender: TObject);
begin
if savedialog1.Execute then
chart1.SaveToBitmapFile(savedialog1.FileName);
end;
procedure TT_txtj.BitBtn1Click(Sender: TObject);
begin
close;
end;
end.
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -