📄 departmentunit.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 + -