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

📄 u_gwlb.~pas

📁 试卷管理系统
💻 ~PAS
字号:
unit U_gwlb;

interface

uses
  Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
  Dialogs, DB, DBTables, Grids, DBGrids, StdCtrls, Buttons, ExtCtrls;

type
  Tfrm_gwlb = class(TForm)
    DBGrid1: TDBGrid;
    tbl_gwlb: TTable;
    DataSource1: TDataSource;
    tbl_gwlbGWLBMC: TStringField;
    tbl_zy: TTable;
    tbl_gwlbzymc: TStringField;
    tbl_gwlbZYXH: TSmallintField;
    GroupBox1: TGroupBox;
    Label2: TLabel;
    ComboBox1: TComboBox;
    Label1: TLabel;
    Edit1: TEdit;
    tbl_gwlbGWLBXH: TSmallintField;
    btn_insert: TButton;
    btn_delete: TButton;
    btn_edit: TButton;
    btn_save: TButton;
    btn_cancel: TButton;
    procedure FormCreate(Sender: TObject);
    procedure FormClose(Sender: TObject; var Action: TCloseAction);
    procedure ComboBox1Change(Sender: TObject);
    procedure tbl_gwlbAfterScroll(DataSet: TDataSet);
    procedure btn_insertClick(Sender: TObject);
    procedure btn_deleteClick(Sender: TObject);
    procedure FormShow(Sender: TObject);
    procedure btn_editClick(Sender: TObject);
    procedure btn_saveClick(Sender: TObject);
    procedure btn_cancelClick(Sender: TObject);
  private
    { Private declarations }
    xh:integer;
    appending:boolean;
  public
    { Public declarations }
  end;

var
  frm_gwlb: Tfrm_gwlb;

implementation

{$R *.dfm}

procedure Tfrm_gwlb.FormCreate(Sender: TObject);
begin
  tbl_zy.First;
  while not tbl_zy.Eof do
  begin
    ComboBox1.Items.AddObject(tbl_zy.fieldbyname('zymc').AsString,TObject(tbl_zy.fieldbyname('zyxh').AsInteger));
    tbl_zy.Next;
  end;
  ComboBox1.ItemIndex:=0;
  ComboBox1Change(self);
end;

procedure Tfrm_gwlb.FormClose(Sender: TObject; var Action: TCloseAction);
begin
  tbl_zy.Close;
  tbl_gwlb.Close;
end;

procedure Tfrm_gwlb.ComboBox1Change(Sender: TObject);
begin
  tbl_gwlb.Filter:='zyxh='+inttostr(integer(ComboBox1.Items.Objects[ComboBox1.ItemIndex]));
end;

procedure Tfrm_gwlb.tbl_gwlbAfterScroll(DataSet: TDataSet);
begin
  if tbl_gwlb.RecordCount=0 then
  begin
    Edit1.Text:='';
    exit;
  end;
  if appending then exit;
  Edit1.Text:=tbl_gwlb.fieldbyname('gwlbmc').AsString;
end;

procedure Tfrm_gwlb.btn_insertClick(Sender: TObject);
var
  n,max,i:integer;
begin
  tbl_gwlb.DisableControls;

  n:=tbl_gwlb.RecordCount;
  max:=0;
  tbl_gwlb.First;
  while not tbl_gwlb.Eof do
  begin
    if max<tbl_gwlb.fieldbyname('gwlbxh').AsInteger then max:=tbl_gwlb.fieldbyname('gwlbxh').AsInteger;
    tbl_gwlb.Next;
  end;

  xh:=1;
  if n<max then
  begin
    for i:=1 to max do
    begin
      if not tbl_gwlb.Locate('gwlbxh',i,[]) then
      begin
        xh:=i;
        break;
      end;
    end;
  end
  else
    xh:=n+1;

  tbl_gwlb.Append;

  tbl_gwlb.EnableControls;

  btn_insert.Enabled:=false;

  btn_save.Enabled:=true;
  btn_cancel.Enabled:=true;

  appending:=true;

  Edit1.SetFocus;
end;

procedure Tfrm_gwlb.btn_deleteClick(Sender: TObject);
begin
  if tbl_gwlb.RecordCount=0 then exit;
  tbl_gwlb.Delete;
end;

procedure Tfrm_gwlb.FormShow(Sender: TObject);
begin
  Edit1.SetFocus;
end;

procedure Tfrm_gwlb.btn_editClick(Sender: TObject);
begin
  if tbl_gwlb.RecordCount=0 then exit;

  btn_edit.Enabled:=false;

  btn_save.Enabled:=true;
  btn_cancel.Enabled:=true;

  tbl_gwlb.Edit;
  Edit1.SetFocus;
end;

procedure Tfrm_gwlb.btn_saveClick(Sender: TObject);
var
  s:string;
  n:integer;
begin
  s:=trim(Edit1.Text);
  n:=length(s);
  if n=0 then
  begin
    MessageBox(0,'岗位类别名称不能为空!','岗位类别',MB_OK+MB_ICONSTOP);
    tbl_gwlb.EnableControls;
    Edit1.SetFocus;
    exit;
  end
  else
  if n>10 then
  begin
    MessageBox(0,'岗位类别名称不能超过5个汉字!','岗位类别',MB_OK+MB_ICONSTOP);
    tbl_gwlb.EnableControls;
    Edit1.SetFocus;
    exit;
  end;

  if appending then
  begin
     if tbl_gwlb.Locate('gwlbmc',s,[loCaseInsensitive]) then
     begin
       MessageBox(0,'岗位类别名称重复!','岗位类别',MB_OK+MB_ICONSTOP);
       tbl_gwlb.EnableControls;
       Edit1.SetFocus;
       exit;
     end;
     tbl_gwlb.Append;
     appending:=false;
     tbl_gwlb.FieldByName('gwlbxh').AsInteger:=xh;
     tbl_gwlb.FieldByName('zyxh').AsInteger:=integer(ComboBox1.Items.Objects[ComboBox1.ItemIndex]);
  end
  else
     tbl_gwlb.Edit;

  tbl_gwlb.FieldByName('gwlbmc').AsString:=s;
  tbl_gwlb.Post;

  btn_insert.Enabled:=true;
  btn_edit.Enabled:=true;
  btn_save.Enabled:=false;
  btn_cancel.Enabled:=false;

  tbl_gwlb.EnableControls;

  Edit1.SetFocus;

  tbl_gwlbAfterScroll(tbl_gwlb);
end;

procedure Tfrm_gwlb.btn_cancelClick(Sender: TObject);
begin
  tbl_gwlb.Cancel;
  btn_insert.Enabled:=true;
  btn_edit.Enabled:=true;
  btn_save.Enabled:=false;
  btn_cancel.Enabled:=false;
  Edit1.SetFocus;
  tbl_gwlbAfterScroll(tbl_gwlb);
end;

end.

⌨️ 快捷键说明

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