📄 undept.pas
字号:
unit UnDept;
interface
uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs,AdoDB,DB, StdCtrls, Grids, DBGrids, Buttons;
type
TDept_frm = class(TForm)
DS: TDataSource;
DBGrid1: TDBGrid;
Edit1: TEdit;
Label2: TLabel;
AdoQdept: TADOQuery;
SpeedButton1: TSpeedButton;
SpeedButton2: TSpeedButton;
SpeedButton3: TSpeedButton;
BitBtn1: TBitBtn;
procedure FormCreate(Sender: TObject);
procedure DBGrid1DblClick(Sender: TObject);
procedure FormClose(Sender: TObject; var Action: TCloseAction);
procedure SpeedButton1Click(Sender: TObject);
procedure SpeedButton2Click(Sender: TObject);
procedure SpeedButton3Click(Sender: TObject);
procedure BitBtn1Click(Sender: TObject);
procedure DBGrid1DrawColumnCell(Sender: TObject; const Rect: TRect;
DataCol: Integer; Column: TColumn; State: TGridDrawState);
procedure Edit1Enter(Sender: TObject);
procedure FormMouseMove(Sender: TObject; Shift: TShiftState; X,
Y: Integer);
private
{ Private declarations }
adocn:TADOConnection;
public
{ Public declarations }
end;
var
Dept_frm: TDept_frm;
implementation
uses Undm, UnFuntion, UnMain;
{$R *.dfm}
procedure TDept_frm.FormCreate(Sender: TObject);
begin
adocn:=TADOConnection.Create(self);
adocn.ConnectionString:=Connstr;
adocn.LoginPrompt:=False;
adocn.Connected:=true;
with AdoQdept do begin
Connection:=adocn;
SQL.Text:='select * from T_dept order by deptno';
Prepared:=True;
Open;
end;
if DS.DataSet.RecordCount>0 then
Edit1.Text:=DS.DataSet.fieldbyname('deptname').AsString;
end;
procedure TDept_frm.DBGrid1DblClick(Sender: TObject);
begin
if DS.DataSet.RecordCount<=0 then exit;
Edit1.Text:=DS.DataSet.fieldbyname('deptname').AsString;
end;
procedure TDept_frm.FormClose(Sender: TObject; var Action: TCloseAction);
begin
main_frm.panel4.Caption:=''; Action:=cafree; Dept_frm:=nil;
end;
procedure TDept_frm.SpeedButton1Click(Sender: TObject);
var
sql:string;
adoTmp:TADOQuery;
i_d:integer;
begin
i_d:=0;sql:='';
adotmp:=TADOQuery.Create(nil);
with adoTmp do begin
try
Connection:=DM.AdoConn;
SQL.Clear;
SQL.Text:='select * from T_dept where deptname='+quotedstr(edit1.Text);
Prepared:=True;
Open;
if not eof then
i_d:=1;
finally
Free;
end;
end;
if i_d=1 then
begin
Application.MessageBox('对不起,此专业已经存在,请重试','提示',MB_OK+MB_ICONEXCLAMATION);
Exit;
end;
with AdoQdept do begin
try
adocn.BeginTrans;
Append;
FieldByName('deptno').AsString:=FormatMe(Qbh('T_dept','deptno'),2);
FieldByName('deptname').AsString:=edit1.Text;
Update;
Refresh;
adocn.CommitTrans;
Application.MessageBox('专业增加成功!','提示',MB_OK+MB_ICONINFORMATION);
except
Cancel;
adocn.RollbackTrans;
Application.MessageBox('数据库操作失败,请退出重新打开程序再试!','提示',MB_OK+MB_ICONERROR);
end;
end;
end;
procedure TDept_frm.SpeedButton2Click(Sender: TObject);
var
sql:string;
adoTmp:TADOQuery;
i_d:integer;
begin
sql:='';
if AdoQdept.Recordset.RecordCount<= 0 then exit;
i_d:=0;
adotmp:=TADOQuery.Create(nil);
with adoTmp do begin
try
Connection:=DM.AdoConn;
SQL.Clear;
SQL.Text:='select * from T_employee where deptno='+quotedstr(ds.DataSet.fieldbyname('deptno').AsString);
Prepared:=True;
Open;
if not eof then
i_d:=1;
finally
Free;
end;
end;
if i_d=1 then
begin
Application.MessageBox('对不起,此专业有人员信息,不能删除','提示',MB_OK+MB_ICONEXCLAMATION);
Exit;
end;
if Application.MessageBox('你真的想删除此专业么?','删除提示',MB_YESNO+MB_ICONQUESTION)=idno then exit;
with adoqdept do
begin
try
adocn.BeginTrans;
Delete;
Refresh;
adocn.CommitTrans;
except
adocn.RollbackTrans;
Application.MessageBox('数据库操作失败,请退出重新打开程序再试!','提示',MB_OK+MB_ICONERROR);
end;
end;
if DS.DataSet.RecordCount>0 then
Edit1.Text:=DS.DataSet.fieldbyname('deptname').AsString;
end;
procedure TDept_frm.SpeedButton3Click(Sender: TObject);
var
sql:string;
adoTmp:TADOQuery;
i_d:integer;
begin
sql:='';
if AdoQdept.Recordset.RecordCount<=0 then exit;
i_d:=0;
adotmp:=TADOQuery.Create(nil);
with adoTmp do begin
try
Connection:=DM.AdoConn;
SQL.Clear;
SQL.Text:='select * from T_dept where deptname='+quotedstr(edit1.Text);
Prepared:=True;
Open;
if not eof then
i_d:=1;
finally
Free;
end;
end;
if i_d=1 then
begin
Application.MessageBox('对不起,此专业已经存在,请重试','提示',MB_OK+MB_ICONEXCLAMATION);
Exit;
end;
with AdoQdept do begin
try
adocn.BeginTrans;
Edit;
FieldByName('deptname').AsString:=edit1.Text;
Update;
Refresh;
adocn.CommitTrans;
Application.MessageBox('专业修改成功!','提示',MB_OK+MB_ICONINFORMATION);
except
Cancel;
adocn.RollbackTrans;
Application.MessageBox('数据库操作失败,请退出重新打开程序再试!','提示',MB_OK+MB_ICONERROR);
end;
end;
end;
procedure TDept_frm.BitBtn1Click(Sender: TObject);
begin
Close;
end;
procedure TDept_frm.DBGrid1DrawColumnCell(Sender: TObject;
const Rect: TRect; DataCol: Integer; Column: TColumn;
State: TGridDrawState);
begin
if gdSelected in State then exit;
if AdoQdept.RecNo mod 2 = 0 then
(Sender as TDBGrid).Canvas.Brush.Color := rgb(225,249,255)//rgb(253,255,253),clinfobk , RGB(226, 253, 254);
else
(Sender as TDBGrid).Canvas.Brush.Color := rgb(255,255,240);//
DBGrid1.DefaultDrawColumnCell(Rect,DataCol,Column,State);
end;
procedure TDept_frm.Edit1Enter(Sender: TObject);
begin
Main_Frm.Panel4.Caption:=Edit1.Hint;
end;
procedure TDept_frm.FormMouseMove(Sender: TObject; Shift: TShiftState; X,
Y: Integer);
begin
Main_Frm.Panel4.Caption:='专业设置';
end;
end.
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -