📄 p_st_oper.pas
字号:
unit P_st_oper;
interface
uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, StdCtrls, Buttons, ExtCtrls, ComCtrls, DB, ADODB, Excel2000,
OleServer, DBTables;
type
Tst_oper = class(TForm)
PageControl1: TPageControl;
TabSheet1: TTabSheet;
TabSheet2: TTabSheet;
TabSheet3: TTabSheet;
ListView1: TListView;
Panel1: TPanel;
GroupBox1: TGroupBox;
GroupBox2: TGroupBox;
Label1: TLabel;
Edit1: TEdit;
BitBtn1: TBitBtn;
RadioButton1: TRadioButton;
RadioButton2: TRadioButton;
RadioButton3: TRadioButton;
RadioButton4: TRadioButton;
CheckBox1: TCheckBox;
RadioButton5: TRadioButton;
RadioButton6: TRadioButton;
ctk: TComboBox;
GroupBox3: TGroupBox;
Label2: TLabel;
Label3: TLabel;
ComboBox1: TComboBox;
ComboBox2: TComboBox;
BitBtn2: TBitBtn;
GroupBox4: TGroupBox;
GroupBox5: TGroupBox;
RadioGroup1: TRadioGroup;
BitBtn3: TBitBtn;
BitBtn4: TBitBtn;
ProgressBar1: TProgressBar;
ADOTable1: TADOTable;
SaveDialog1: TSaveDialog;
tj: TRadioGroup;
Label4: TLabel;
Edit2: TEdit;
Label5: TLabel;
ListView2: TListView;
RadioGroup2: TRadioGroup;
StatusBar1: TStatusBar;
BitBtn5: TBitBtn;
procedure st_query;
procedure BitBtn2Click(Sender: TObject);
procedure RadioButton1Click(Sender: TObject);
procedure RadioButton2Click(Sender: TObject);
procedure RadioButton3Click(Sender: TObject);
procedure RadioButton4Click(Sender: TObject);
procedure RadioButton5Click(Sender: TObject);
procedure RadioButton6Click(Sender: TObject);
procedure BitBtn1Click(Sender: TObject);
procedure FormShow(Sender: TObject);
procedure BitBtn3Click(Sender: TObject);
procedure tjClick(Sender: TObject);
procedure Edit2KeyPress(Sender: TObject; var Key: Char);
procedure BitBtn4Click(Sender: TObject);
procedure ListView1DblClick(Sender: TObject);
procedure BitBtn5Click(Sender: TObject);
private
procedure setstsql(q:Tadoquery);
procedure setparam(var q:Tadoquery;param:string);
procedure boxcheck;
procedure writetxt(const fname:string);
procedure writeexcel(fname:string);
procedure writedb(const fname:string);
procedure Check_;
{ Private declarations }
public
{ Public declarations }
end;
var
st_oper: Tst_oper;
implementation
{$R *.dfm}
uses P_st_update,main;
procedure Tst_oper.boxcheck;
begin
if RadioButton5.Checked then
begin
groupbox2.Visible:=true;
groupbox3.Visible:=false;
ctk.Visible:=true;
ctk.Left:=edit1.Left;
ctk.Top:=edit1.Top;
ctk.Width:=edit1.Width;
ctk.Height:=edit1.Height;
edit1.Visible:=false;
exit;
end;
if RadioButton6.Checked then
begin
groupbox2.Visible:=false;
groupbox3.Visible:=true;
groupbox3.Height:=groupbox2.Height;
exit;
end;
groupbox2.Visible:=true;
groupbox3.Visible:=false;
edit1.Visible:=true;
ctk.Visible:=false;
end;
procedure Tst_oper.setstsql(q:Tadoquery);
begin
q.SQL.Clear;
if RadioButton1.Checked then
q.SQL.Add('select * from 试题表 where 试题号=:st_id');
if RadioButton2.Checked then
q.SQL.Add('select * from 试题表 where 题目 like :st_tm');
if RadioButton3.Checked then
q.SQL.Add('select * from 试题表 where 难度=:st_nd');
if RadioButton4.Checked then
q.SQL.Add('select * from 试题表 where 分值=:st_fz');
if RadioButton5.Checked then
q.SQL.Add('select * from 试题表 where 所属题库=:st_tk');
if RadioButton6.Checked then
q.SQL.Add('select * from 试题表 where 知识点=:st_zsd');
end;
procedure Tst_oper.setparam(var q:Tadoquery;param:string);
var s:string;
begin
if CheckBox1.Checked then s:=param+'%';
if RadioButton1.Checked then
q.Parameters.ParamValues['st_id']:=strtoint(param);
if RadioButton2.Checked then
q.Parameters.ParamValues['st_tm']:=s;
if RadioButton3.Checked then
q.Parameters.ParamValues['st_nd']:=strtoint(param);
if RadioButton4.Checked then
q.Parameters.ParamValues['st_fz']:=strtoint(param);
if RadioButton5.Checked then
q.Parameters.ParamValues['st_tk']:=strtoint(param);
if RadioButton6.Checked then
q.Parameters.ParamValues['st_zsd']:=strtoint(param);
end;
procedure Tst_oper.st_query;
var
q,tq:Tadoquery;
i:integer;
s,ss:string;
begin
listview1.Items.Clear;
q:=Tadoquery.Create(nil);
q.Connection:=main.DataModule2.ADOConnection1;
tq:=Tadoquery.Create(nil);
tq.Connection:=main.DataModule2.ADOConnection1;
setstsql(q);
if RadioButton5.Checked then
begin
tq.Close;
tq.SQL.Clear;
tq.SQL.Add('select id from 题库表 where name='''+ctk.Text+'''');
tq.Open;
if tq.Eof then
begin
showmessage('题型出错');
exit;
end;
i:=tq.FieldValues['id'];
setparam(q,inttostr(i))
end
else
begin
if RadioButton6.Checked then
begin
tq.Close;
tq.SQL.Clear;
tq.SQL.Add('select id from 知识点表 where name=''' + ComboBox1.text+''' and subname='''+ComboBox2.text+'''');
tq.Open;
if tq.Eof then
begin
showmessage('知识点出错');
exit;
end;
i:=tq.FieldValues['id'];
setparam(q,inttostr(i));
end
else
begin
setparam(q,edit1.Text);
end;
end;
q.Open;
listview1.Clear;
while not q.Eof do
begin
with listview1.Items.Add do
begin
caption:=q.FieldValues['试题号'];
tq.Close;
tq.SQL.Clear;
i:=q.FieldValues['所属题库'];
tq.SQL.Add('select name from 题库表 where id='+inttostr(i));
tq.Open;
s:=tq.FieldValues['name'];
subitems.Add(s);
tq.Close;
tq.SQL.Clear;
i:=q.FieldValues['知识点'];
tq.SQL.Add('select name,subname from 知识点表 where id='+inttostr(i));
tq.Open;
s:=tq.FieldValues['name'];
ss:=tq.FieldValues['subname'];
subitems.Add(s);
subitems.Add(ss);
subitems.Add(q.FieldValues['难度']);
subitems.Add(q.FieldValues['分值']);
subitems.Add(q.FieldValues['题目']);
subitems.Add(q.FieldValues['选项1']);
subitems.Add(q.FieldValues['选项2']);
subitems.Add(q.FieldValues['选项3']);
subitems.Add(q.FieldValues['选项4']);
tq.Close;
tq.SQL.Clear;
i:=q.FieldValues['录入员号'];
tq.SQL.Add('select 姓名 from 人员信息表 where id='+inttostr(i));
tq.Open;
s:=tq.FieldValues['姓名'];
subitems.Add(s);
subitems.Add(q.FieldValues['录入时间']);
end;
q.Next;
end;
q.Close;
q.Free;
end;
procedure Tst_oper.BitBtn2Click(Sender: TObject);
begin
st_query;
end;
procedure Tst_oper.RadioButton1Click(Sender: TObject);
begin
boxcheck;
end;
procedure Tst_oper.RadioButton2Click(Sender: TObject);
begin
boxcheck;
end;
procedure Tst_oper.RadioButton3Click(Sender: TObject);
begin
boxcheck;
end;
procedure Tst_oper.RadioButton4Click(Sender: TObject);
begin
boxcheck;
end;
procedure Tst_oper.RadioButton5Click(Sender: TObject);
begin
boxcheck;
end;
procedure Tst_oper.RadioButton6Click(Sender: TObject);
begin
boxcheck;
end;
procedure Tst_oper.BitBtn1Click(Sender: TObject);
var i,code:integer;
begin
if ((radiobutton1.Checked)or(radiobutton3.Checked)or(radiobutton4.Checked)) then
begin
val(edit1.Text,i,code);
if code<>0 then
begin
messagedlg('你输入的字符串中包含非法字符',mtwarning,[mbok],0);
exit;
end;
end;
st_query;
end;
procedure Tst_oper.FormShow(Sender: TObject);
var
q:Tadoquery;
begin
q:=Tadoquery.Create(nil);
q.Connection:=main.DataModule2.ADOConnection1 ;
q.Close;
q.SQL.Clear;
q.SQL.Add('select distinct name from 题库表');
q.Open;
ctk.Clear;
while not q.Eof do
begin
ctk.Items.Add(q.FieldValues['name']);
q.Next;
end;
q.Close;
q.SQL.Clear;
q.SQL.Add('select distinct name from 知识点表');
q.Open;
combobox1.Clear;
while not q.Eof do
begin
combobox1.Items.Add(q.FieldValues['name']);
q.Next;
end;
q.Close;
q.SQL.Clear;
q.SQL.Add('select distinct subname from 知识点表');
q.Open;
combobox2.Clear;
while not q.Eof do
begin
combobox2.Items.Add(q.FieldValues['subname']);
q.Next;
end;
end;
procedure Tst_oper.writetxt(const fname:string);
var
tempmemo:Tmemo;
i,j:integer;
s:string;
begin
case tj.ItemIndex of
1:s:='题目';
2:s:='难度';
3:s:='分值';
4:s:='所属题库';
5:s:='试题号';
end;
adotable1.Close;
adotable1.Filter:=s+'='+edit2.Text;
adotable1.Filtered:=true;
adotable1.Open;
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -