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

📄 unitarrange.pas

📁 教务管理系统
💻 PAS
字号:
unit UnitArrange;

interface

uses
  Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
  Dialogs, ActnMan, ActnColorMaps, StdCtrls, DBCtrls, DB, ADODB, Grids,
  DBGrids, ComCtrls;

type
  TfrmArrange = class(TForm)
    GroupBox1: TGroupBox;
    btnDel: TButton;
    btnClose: TButton;
    qryLV: TADOQuery;
    lv: TListView;
    GroupBox2: TGroupBox;
    Label1: TLabel;
    Label2: TLabel;
    Label3: TLabel;
    btnAdd: TButton;
    qry: TADOQuery;
    cmbT: TComboBox;
    cmbR: TComboBox;
    cmbC: TComboBox;
    procedure btnCloseClick(Sender: TObject);
    procedure FormShow(Sender: TObject);
    procedure cmbTChange(Sender: TObject);
    procedure cmbRChange(Sender: TObject);
    procedure cmbCChange(Sender: TObject);
    procedure btnAddClick(Sender: TObject);
    procedure btnDelClick(Sender: TObject);
  private
    { Private declarations }
    procedure FreshList;
    procedure FreshCombo;
  public
    { Public declarations }
  end;

var
  frmArrange: TfrmArrange;

implementation

uses UnitData;

{$R *.dfm}

procedure TfrmArrange.FreshList;
var
  item: TListItem;
  qry: TADOQuery;
begin
  lv.Clear;
  qryLV.Close;
  qryLV.SQL.Clear;
  qryLV.SQL.Add('select * from ARRANGE');
  qryLV.Open;
  if not qryLV.Eof then begin
    qry := TADOQuery.Create(self);
    qry.Connection := data.adoc;
    qryLV.First;
    while not qryLV.Eof do begin
      item := lv.Items.Add;
      qry.Close;
      qry.SQL.Clear;
      qry.SQL.Add('select name from TEACHER where id=' + qryLV.FieldByName('teacher').AsString);
      qry.Open;
      item.Caption := qry.FieldByName('name').AsString;
      item.Data := Pointer(qryLV.FieldByName('id').AsInteger);
      qry.Close;
      qry.SQL.Clear;
      qry.SQL.Add('select name from ROOM where id=' + qryLV.FieldByName('room').AsString);
      qry.Open;
      item.SubItems.Add(qry.FieldByName('name').AsString);
      qry.Close;
      qry.SQL.Clear;
      qry.SQL.Add('select name from COURSE where id=' + qryLV.FieldByName('course').AsString);
      qry.Open;
      item.SubItems.Add(qry.FieldByName('name').AsString);
      qryLV.Next;
    end;
  end;
  btnDel.Enabled := lv.Items.Count <> 0;
end;

procedure TfrmArrange.FreshCombo;
begin
  // 刷新教师
  cmbT.Clear;
  qry.Close;
  qry.SQL.Clear;
  qry.SQL.Add('select id,name from TEACHER');
  qry.Open;
  while not qry.Eof do begin
    cmbT.AddItem(qry.FieldByName('name').AsString, TObject(qry.FieldByName('id').AsInteger));
    qry.Next;
  end;
  // 刷新教室
  cmbR.Clear;
  qry.Close;
  qry.SQL.Clear;
  qry.SQL.Add('select id,name from ROOM');
  qry.Open;
  while not qry.Eof do begin
    cmbR.AddItem(qry.FieldByName('name').AsString, TObject(qry.FieldByName('id').AsInteger));
    qry.Next;
  end;
  // 刷新课程
  cmbC.Clear;
  qry.Close;
  qry.SQL.Clear;
  qry.SQL.Add('select id,name from COURSE');
  qry.Open;
  while not qry.Eof do begin
    cmbC.AddItem(qry.FieldByName('name').AsString, TObject(qry.FieldByName('id').AsInteger));
    qry.Next;
  end;
end;

procedure TfrmArrange.btnCloseClick(Sender: TObject);
begin
  Close;
end;

procedure TfrmArrange.FormShow(Sender: TObject);
begin
  FreshList;
  FreshCombo;
end;

procedure TfrmArrange.cmbTChange(Sender: TObject);
begin
  btnAdd.Enabled := (cmbT.ItemIndex <> -1) and (cmbR.ItemIndex <> -1) and (cmbC.ItemIndex <> -1);
end;

procedure TfrmArrange.cmbRChange(Sender: TObject);
begin
  btnAdd.Enabled := (cmbT.ItemIndex <> -1) and (cmbR.ItemIndex <> -1) and (cmbC.ItemIndex <> -1);
end;

procedure TfrmArrange.cmbCChange(Sender: TObject);
begin
  btnAdd.Enabled := (cmbT.ItemIndex <> -1) and (cmbR.ItemIndex <> -1) and (cmbC.ItemIndex <> -1);
end;

procedure TfrmArrange.btnAddClick(Sender: TObject);
begin
  qry.Close;
  qry.SQL.Clear;
  qry.SQL.Add('insert into ARRANGE(teacher,room,course) values(' + inttostr(integer(cmbT.Items.Objects[cmbT.ItemIndex])) + ',' + inttostr(integer(cmbR.Items.Objects[cmbR.ItemIndex])) + ',' + inttostr(integer(cmbC.Items.Objects[cmbC.ItemIndex])) + ')');
  qry.ExecSQL;
  cmbT.ItemIndex := -1;
  cmbR.ItemIndex := -1;
  cmbC.ItemIndex := -1;
  btnAdd.Enabled := FALSE;
  FreshList;
end;

procedure TfrmArrange.btnDelClick(Sender: TObject);
begin
  qry.Close;
  qry.SQL.Clear;
  qry.SQL.Add('delete from ARRANGE where id=' + inttostr(integer(lv.Selected.Data)));
  qry.ExecSQL;
  FreshList;
end;

end.

⌨️ 快捷键说明

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