⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 p_st_oper.pas

📁 学员管理的软件
💻 PAS
📖 第 1 页 / 共 2 页
字号:
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 + -