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

📄 p_st_insert.pas

📁 学员管理的软件
💻 PAS
字号:
unit P_st_insert;

interface

uses
  Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
  Dialogs, Buttons, StdCtrls, ComCtrls;

type
  Tst_insert = class(TForm)
    PageControl1: TPageControl;
    TabSheet1: TTabSheet;
    TabSheet2: TTabSheet;
    Label1: TLabel;
    Label2: TLabel;
    Label3: TLabel;
    Label4: TLabel;
    Label5: TLabel;
    Label6: TLabel;
    Label7: TLabel;
    Label8: TLabel;
    Label9: TLabel;
    Label10: TLabel;
    tm: TEdit;
    x1: TEdit;
    x2: TEdit;
    x3: TEdit;
    x4: TEdit;
    tk: TComboBox;
    dzsd: TComboBox;
    Label11: TLabel;
    xzsd: TComboBox;
    nd: TEdit;
    fz: TEdit;
    tx: TComboBox;
    Label12: TLabel;
    pic: TEdit;
    Button1: TButton;
    Label13: TLabel;
    ans: TEdit;
    Label14: TLabel;
    lry: TComboBox;
    CheckBox1: TCheckBox;
    Label17: TLabel;
    dt: TDateTimePicker;
    CheckBox2: TCheckBox;
    GroupBox1: TGroupBox;
    BitBtn1: TBitBtn;
    CheckBox3: TCheckBox;
    BitBtn2: TBitBtn;
    UpDown1: TUpDown;
    UpDown2: TUpDown;
    OpenDialog1: TOpenDialog;
    SaveDialog1: TSaveDialog;
    Label15: TLabel;
    ComboBox1: TComboBox;
    BitBtn3: TBitBtn;
    procedure FormShow(Sender: TObject);
    procedure BitBtn1Click(Sender: TObject);
    procedure txChange(Sender: TObject);
    procedure Button1Click(Sender: TObject);
    procedure BitBtn2Click(Sender: TObject);
    procedure dzsdChange(Sender: TObject);
    procedure BitBtn3Click(Sender: TObject);
  private
    { Private declarations }
  public
    { Public declarations }
  end;

var
  st_insert: Tst_insert;

implementation

{$R *.dfm}
uses main;
procedure Tst_insert.FormShow(Sender: TObject);
begin
with main.DataModule2 do
begin
aq1.Close;
aq1.SQL.Clear;
aq1.SQL.Add('select distinct name from 题库表');
aq1.Open;
tk.Clear;
while not aq1.Eof do
begin
tk.Items.Add(aq1.FieldValues['name']);
aq1.Next;
end;

aq1.Close;
aq1.SQL.Clear;
aq1.SQL.Add('select * from 试卷表');
aq1.Open;
combobox1.Clear;
while not aq1.Eof do
begin
combobox1.Items.Add(trim(aq1.FieldValues['试卷名称'])+'【'+trim(aq1.FieldValues['出卷人'])+'】') ;
aq1.Next;
end;

aq1.Close;
aq1.SQL.Clear;
aq1.SQL.Add('select distinct name from 知识点表');
aq1.Open;
dzsd.Clear;
while not aq1.Eof do
begin
dzsd.Items.Add(aq1.FieldValues['name']);
aq1.Next;
end;

aq1.Close;
aq1.SQL.Clear;
aq1.SQL.Add('select distinct subname from 知识点表');
aq1.Open;
xzsd.Clear;
while not aq1.Eof do
begin
xzsd.Items.Add(aq1.FieldValues['subname']);
aq1.Next;
end;

aq1.Close;
aq1.SQL.Clear;
aq1.SQL.Add('select distinct name from 题型表');
aq1.Open;
tx.Clear;
while not aq1.Eof do
begin
tx.Items.Add(aq1.FieldValues['name']);
aq1.Next;
end;

aq1.Close;
aq1.SQL.Clear;
aq1.SQL.Add('select distinct 姓名 from 人员信息表');
aq1.Open;
lry.Items.Clear;
while not aq1.Eof do
begin
lry.Items.Add(aq1.FieldValues['姓名']);
aq1.Next;
end;
end;
end;

procedure Tst_insert.BitBtn1Click(Sender: TObject);
var
mytkid:integer;
myzsdid:integer;
mytxid:integer;
mylryid:integer;
mypf:boolean;
mydt:Tdatetime;
spath,mydes,mysource:string;
F:textfile;
tempstr:string;
begin
if tk.Text = '' then
begin
showmessage('所属题库没填写');
exit;
end;
if dzsd.Text = '' then
begin
showmessage('大类知识点没填写');
exit;
end;
if xzsd.Text = '' then
begin
showmessage('小类知识点没填写');
exit;
end;
if nd.Text = '' then
begin
showmessage('难度没填写');
exit;
end;
if fz.Text = '' then
begin
showmessage('分值没填写');
exit;
end;
if tx.Text = '' then
begin
showmessage('题型没填写');
exit;
end;
if tm.Text = '' then
begin
showmessage('题目没填写');
exit;
end;
if ans.Text = '' then
begin
showmessage('标准答案没填写');
exit;
end;
if combobox1.Text = '' then
begin
showmessage('请选择所属试卷');
exit;
end;

//打开试题表
//题库号
with main.DataModule2 do
begin
aq1.Close;
aq1.SQL.Clear;
aq1.SQL.Add('select id from 题库表 where name='''+trim(tk.Text)+'''');
aq1.Open;
if aq1.Eof then
begin
messagebox(handle,'题库录入时出错','错误',MB_OK);
exit;
end;
mytkid:=aq1.FieldValues['id'];

//知识点号
aq1.Close;
aq1.SQL.Clear;
aq1.SQL.Add('select id from 知识点表 where name='''+dzsd.Text+''' and subname='''+xzsd.Text+'''');
aq1.Open;
if aq1.Eof then
begin
messagebox(handle,'知识点录入时出错','错误',MB_OK);
exit;
end;
myzsdid:=aq1.FieldValues['id'];

//题型号
aq1.Close;
aq1.SQL.Clear;
aq1.SQL.Add('select id from 题型表 where name='''+tx.Text+'''');
aq1.Open;
if aq1.Eof then
begin
messagebox(handle,'题型录入时出错','错误',MB_OK);
exit;
end;
mytxid:=aq1.FieldValues['id'];

//录入员号录入
if lry.Text<>'' then
begin
aq1.Close;
aq1.SQL.Clear;
aq1.SQL.Add('select id from 人员信息表 where 姓名='''+trim(lry.Text)+'''');
aq1.Open;
if aq1.Eof then
begin
messagebox(handle,'请核对你的名字','错误',MB_OK);
exit;
end;
mylryid:=aq1.FieldValues['id'];
end;

if (CheckBox2.Checked) then
mydt:=now
else
mydt:=dt.DateTime;

if (CheckBox1.Checked) then
mypf:=true
else
mypf:=false;

//开始录入
aq1.Close;
aq1.SQL.Clear;
aq1.SQL.Add('select * from 试题表');
aq1.Open;
aq1.Insert;
aq1.FieldByName('所属题库').AsInteger:=mytkid;
aq1.FieldByName('知识点').AsInteger:=myzsdid;
aq1.FieldByName('题型').AsInteger:=mytxid;
aq1.FieldByName('难度').AsInteger:=strtoint(nd.Text);
aq1.FieldByName('分值').AsInteger:=strtoint(fz.Text);
aq1.FieldByName('题目').AsString:=tm.Text;
aq1.FieldByName('选项1').AsString:=x1.Text;
aq1.FieldByName('选项2').AsString:=x2.Text;
aq1.FieldByName('选项3').AsString:=x3.Text;
aq1.FieldByName('选项4').AsString:=x4.Text;
aq1.FieldByName('标准答案').AsString:=ans.Text;
aq1.FieldByName('所属试卷').Asinteger:=combobox1.itemindex;
if (lry.text<>'') then
aq1.FieldByName('录入员号').AsInteger:=mylryid;
spath:=extractfilepath(application.ExeName);
mysource:= pic.Text;
mydes:=spath+'ques_pic\'+extractfilename(mysource);
copyfile(pchar(mysource),pchar(mydes),true);
aq1.FieldByName('图片').AsString:='ques_pic\'+extractfilename(mysource);
aq1.FieldByName('录入时间').AsDateTime:=mydt;
aq1.Post;
messagedlg('试题录入成功',mtConfirmation,[mbOK],0);
end;
if (CheckBox3.Checked) then
begin
if savedialog1.Execute then
  spath:=savedialog1.FileName;
assignfile(F,spath);
rewrite(f);
writeln(f,'试题录入');
writeln(f,'----------------------------');
tempstr:=tk.Text;
writeln(f,'所属题库:'+tempstr);
tempstr:=fz.Text;
writeln(f,'分值:'+tempstr);
tempstr:=nd.Text;
writeln(f,'难度:'+tempstr);
tempstr:=tm.Text;
writeln(f,'题目:'+tempstr);
tempstr:=ans.Text;
writeln(f,'答案:'+tempstr);
closefile(f);
end;
close;
end;

procedure Tst_insert.txChange(Sender: TObject);
begin
if ((trim(tx.Text) = '单选题')or(trim(tx.Text) = '多选题')) then
begin
x1.Enabled:=true;
x2.Enabled:=true;
x3.Enabled:=true;
x4.Enabled:=true;
x1.Color:=clwhite;
x2.Color:=clwhite;
x3.Color:=clwhite;
x4.Color:=clwhite;
exit;
end;
x1.Enabled:=False;
x2.Enabled:=false;
x3.Enabled:=false;
x4.Enabled:=false;
x1.Color:=clbtnface;
x2.Color:=clbtnface;
x3.Color:=clbtnface;
x4.Color:=clbtnface;
end;

procedure Tst_insert.Button1Click(Sender: TObject);
begin
if OpenDialog1.Execute then
pic.Text:=OpenDialog1.FileName;
end;

procedure Tst_insert.BitBtn2Click(Sender: TObject);
begin
close;
end;

procedure Tst_insert.dzsdChange(Sender: TObject);
begin
with main.DataModule2 do
begin
aq1.Close;
aq1.SQL.Clear;
aq1.SQL.Add('select * from 知识点表 where name='''+trim(dzsd.Text)+'''');
aq1.Open;
xzsd.Clear;
while not aq1.Eof do
begin
xzsd.Items.Add(aq1.FieldValues['subname']);
aq1.Next;
end;
end;
end;

procedure Tst_insert.BitBtn3Click(Sender: TObject);
var
s1,s2:string;
i:integer;
begin
s1:=inputbox('请输入试卷名称','请输入试卷名称','');
s2:=inputbox('请输入出卷人姓名','请输入出卷人姓名','');
with main.DataModule2 do
begin
  aq1.Close;
  aq1.SQL.Clear;
  aq1.SQL.Add('select * from 试卷表 where 试卷名称='''+trim(s1)+''' and 出卷人='''+trim(s2)+'''');
  aq1.Open;
  if not aq1.Eof then
  begin
    messagebox(handle,'已经有这个试卷号了,请选择','错误信息',MB_OK);
    exit;
  end;
aq1.Close;
aq1.SQL.Clear;
aq1.SQL.Add('select count(*) as num from 试卷表');
aq1.Open;
i:=aq1.FieldValues['num'];
if ((trim(s1)<>'')and(trim(s2)<>'')) then
begin
aq1.Close;
aq1.SQL.Clear;
aq1.SQL.Add('select * from 试卷表');
aq1.Open;
aq1.Append;
//aq1.Insert;
aq1.FieldByName('试卷号').AsInteger:=i;
aq1.FieldByName('试卷名称').AsString:=trim(s1);
aq1.FieldByName('出卷人').AsString:=trim(s2);
aq1.Post;
messagebox(handle,'试卷名称添加成功','信息',MB_OK);
end;
aq1.Close;
aq1.SQL.Clear;
aq1.SQL.Add('select * from 试卷表');
aq1.Open;
combobox1.Clear;
while not aq1.Eof do
begin
combobox1.Items.Add(trim(aq1.FieldValues['试卷名称'])+'【'+trim(aq1.FieldValues['出卷人'])+'】') ;
aq1.Next;
end;
end;
end;

end.

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -