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

📄 departmentunit.pas

📁 学费管理系统,学校使用
💻 PAS
字号:
unit DepartmentUnit;

interface

uses
  Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
  Dialogs, cxStyles, cxCustomData, cxGraphics, cxFilter, cxData,
  cxDataStorage, cxEdit, DB, cxDBData, StdCtrls, ADODB, Buttons, ExtCtrls,
  cxGridLevel, cxClasses, cxControls, cxGridCustomView,
  cxGridCustomTableView, cxGridTableView, cxGridDBTableView, cxGrid;

type
  TScholar=record
    Id:integer;
    Scholar:string;
  end;


  TDepartmentform = class(TForm)
    cxGrid1: TcxGrid;
    cxGrid1DBTableView1: TcxGridDBTableView;
    cxGrid1Level1: TcxGridLevel;
    Panel1: TPanel;
    Label1: TLabel;
    new_button: TBitBtn;
    ok_button: TBitBtn;
    cancel_button: TBitBtn;
    del_button: TBitBtn;
    close_button: TBitBtn;
    list_adoquery: TADOQuery;
    DataSource1: TDataSource;
    oper_adoquery: TADOQuery;
    Scholar_ComboBox: TComboBox;
    Label2: TLabel;
    Department_edit: TEdit;
    cxGrid1DBTableView1department: TcxGridDBColumn;
    cxGrid1DBTableView1scholar: TcxGridDBColumn;
    scholar_edit: TEdit;
    procedure close_buttonClick(Sender: TObject);
    procedure new_buttonClick(Sender: TObject);
    procedure DataSource1DataChange(Sender: TObject; Field: TField);
    procedure cancel_buttonClick(Sender: TObject);
    procedure del_buttonClick(Sender: TObject);
    procedure FormCreate(Sender: TObject);
    procedure ok_buttonClick(Sender: TObject);
    procedure Scholar_ComboBoxChange(Sender: TObject);
    procedure FormClose(Sender: TObject; var Action: TCloseAction);
  private
    { Private declarations }
    NewScholar:array of TScholar;
    procedure clearContent;
    procedure ButtonUse(CanUse:boolean);
    procedure CloseWindow(var Msg:TMessage);message wm_user;
  public
    { Public declarations }

  end;

var
  Departmentform: TDepartmentform;

implementation

uses DMUnit, MainformUnit;

{$R *.dfm}

{ TDepartmentform }

procedure TDepartmentform.ButtonUse(CanUse: boolean);
begin
  new_button.Enabled :=canuse;
  del_button.Enabled :=false;
  ok_button.Enabled :=not canuse;
  cancel_button.Enabled :=not canuse;
end;

procedure TDepartmentform.clearContent;
begin
  Scholar_ComboBox.ItemIndex:=-1;
  scholar_edit.Text :='';
  Department_edit.Text :='';
end;

procedure TDepartmentform.close_buttonClick(Sender: TObject);
begin
  if new_button.Enabled  then
  begin
    self.Close ;
    exit;
  end;
  if messagebox(handle,pchar('当前正在进行新增操作,请确认是否退出'),'请选择',MB_ICONQUESTION	+MB_YESNO)=6 then
    self.Close ;
end;

procedure TDepartmentform.new_buttonClick(Sender: TObject);
begin
  clearcontent;
  panel1.Enabled :=true;
  Scholar_combobox.SetFocus ;
  cxGrid1.Enabled :=false;
  buttonuse(false);
end;

procedure TDepartmentform.DataSource1DataChange(Sender: TObject;
  Field: TField);
begin
  clearcontent;
  with list_adoquery do
  begin
    del_button.Enabled :=not IsEmpty;
    if not isempty then
    begin
      Scholar_ComboBox.ItemIndex:=Scholar_ComboBox.Items.IndexOf(fieldbyname('scholar').AsString );
      Scholar_edit.Text :=fieldbyname('scholarid').asstring ;
      Department_edit.Text :=fieldbyname('department').AsString ;
    end;
  end;
end;

procedure TDepartmentform.cancel_buttonClick(Sender: TObject);
var
  BookMark:TBookMark;
begin
  panel1.Enabled :=false;
  cxGrid1.Enabled :=true;
  buttonuse(true);
  try
    bookmark:=list_adoquery.GetBookmark ;
    list_adoquery.Close;
    list_adoquery.Open;
    list_adoquery.GotoBookmark(bookmark);
  except
  end;

end;

procedure TDepartmentform.del_buttonClick(Sender: TObject);
begin
  with oper_adoquery do
  begin
    close;
    sql.Clear;
    sql.Add('select * from spec where departmentid=:departmentid');
    Parameters.ParamByName('departmentid').Value :=List_adoquery.FieldValues['ID'];
    open;
    if not isempty then
    begin
      MessageBox(application.handle,pchar('该记录信息已被引用,无法删除!'),'错误',MB_ICONWARNING+MB_OK);
      exit;
    end;
  end;
  if messagebox(handle,pchar('请确认是否删除当前记录信息!'),'请选择',MB_ICONQUESTION +MB_yesno)=6 then
  begin
    with oper_adoquery do
    begin
      close;
      sql.Clear;
      sql.Add('delete from Department where Id=:ID');
      Parameters.ParamByName('ID').Value :=List_adoquery.FieldValues['ID'];
      ExecSQL ;
    end;
    list_adoquery.Close;
    list_adoquery.Open;
  end;
end;

procedure TDepartmentform.FormCreate(Sender: TObject);
var
  i:integer;
begin
  with oper_adoquery do
  begin
    close;
    sql.Clear;
    sql.Add('select * from Scholar order by id');
    open;
    if not isempty then
    begin
      setlength(NewScholar,RecordCount);
      for i := 0 to RecordCount-1 do
      begin
        NewScholar[i].Id :=fieldbyname('id').AsInteger ;
        NewScholar[i].Scholar:=fieldbyname('Scholar').AsString ;
        scholar_combobox.Items.Add(fieldbyname('Scholar').AsString) ;
        Next;
      end;
    end;
  end;
  list_adoquery.Open;
end;

procedure TDepartmentform.ok_buttonClick(Sender: TObject);
var
  BookMark:TBookMark;
begin
  if trim(Scholar_ComboBox.Text )='' then
  begin
    MessageBox(application.handle,pchar('学历类型名称没有选择!'),'错误',MB_ICONWARNING+MB_OK);
    Scholar_ComboBox.SetFocus ;
    exit;
  end;
  if trim(department_Edit.Text )='' then
  begin
    MessageBox(application.handle,pchar('院系名称没有填写!'),'错误',MB_ICONWARNING+MB_OK);
    department_Edit.SetFocus ;
    exit;
  end;
  with Oper_adoquery do
  begin
    close;
    sql.Clear;
    sql.Add('insert into department (ScholarId,Department)  values (:ScholarId,:Department)');
    Parameters.ParamByName('ScholarId').Value :=trim(scholar_edit.Text );
    Parameters.ParamByName('Department').Value := trim(department_edit.Text );
    try
      ExecSQL ;
    except
      on e:exception do
        MessageBox(application.handle,pchar(e.Message),'错误',MB_ICONWARNING+MB_OK);
    end;
  end;
  panel1.Enabled :=false;
  cxGrid1.Enabled :=true;
  buttonuse(true);
  try
    bookmark:=list_adoquery.GetBookmark ;
    list_adoquery.Close;
    list_adoquery.Open;
    list_adoquery.GotoBookmark(bookmark);
  except
  end;

end;

procedure TDepartmentform.Scholar_ComboBoxChange(Sender: TObject);
begin
  scholar_edit.Text :='';
  if scholar_combobox.ItemIndex>-1 then
    scholar_Edit.Text :=inttostr(NewScholar[scholar_combobox.itemindex].id);
end;

procedure TDepartmentform.CloseWindow(var Msg: TMessage);
begin
  FreeAndNil(Departmentform);
end;

procedure TDepartmentform.FormClose(Sender: TObject;
  var Action: TCloseAction);
begin
  action:=cafree;
  postmessage(handle,wm_user,0,0);
end;

end.

⌨️ 快捷键说明

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