📄 formdepatment.pas
字号:
//建立部门资料
unit formdepatment;
interface
uses
Windows, Messages, SysUtils, Classes, Graphics, Controls, Forms, Dialogs,
StdCtrls, Buttons, DBCtrls, Grids, DBGrids, ExtCtrls, Db, DBTables, ADODB,
Menus, Mask, ComCtrls, ToolWin, ImgList;
type
Tformdept = class(TForm)
Panel1: TPanel;
DataSource2: TDataSource;
ADOTable2: TADOTable;
DBGrid1: TDBGrid;
Panel2: TPanel;
Label1: TLabel;
Label2: TLabel;
Label3: TLabel;
Label4: TLabel;
Label5: TLabel;
Label6: TLabel;
Label7: TLabel;
Label8: TLabel;
Label9: TLabel;
Label10: TLabel;
Label11: TLabel;
Button1: TButton;
Button2: TButton;
DBEdit1: TDBEdit;
DBEdit2: TDBEdit;
DBCheckBox1: TDBCheckBox;
DBEdit3: TDBEdit;
DBEdit4: TDBEdit;
DBEdit5: TDBEdit;
DBEdit6: TDBEdit;
DBEdit7: TDBEdit;
DBEdit8: TDBEdit;
DBEdit9: TDBEdit;
DBEdit10: TDBEdit;
ImageList1: TImageList;
PopupMenu1: TPopupMenu;
N1: TMenuItem;
N2: TMenuItem;
N4: TMenuItem;
N3: TMenuItem;
ToolBar1: TToolBar;
ToolButton1: TToolButton;
ToolButton5: TToolButton;
ToolButton6: TToolButton;
tbnsort: TToolButton;
tbnfind: TToolButton;
ToolButton7: TToolButton;
ToolButton4: TToolButton;
DBNavigator2: TDBNavigator;
Splitter1: TSplitter;
Panel3: TPanel;
Label12: TLabel;
DBEdit11: TDBEdit;
Label13: TLabel;
DBEdit12: TDBEdit;
Label14: TLabel;
DBEdit13: TDBEdit;
Label15: TLabel;
DBEdit14: TDBEdit;
Label16: TLabel;
DBEdit15: TDBEdit;
procedure FormClose(Sender: TObject; var Action: TCloseAction);
procedure BtnExitClick(Sender: TObject);
procedure DBGrid1KeyPress(Sender: TObject; var Key: Char);
procedure FormCreate(Sender: TObject);
procedure Button2Click(Sender: TObject);
procedure Button1Click(Sender: TObject);
procedure DBGrid1TitleClick(Column: TColumn);
procedure FormActivate(Sender: TObject);
procedure ToolButton4Click(Sender: TObject);
procedure ToolButton6Click(Sender: TObject);
procedure ToolButton5Click(Sender: TObject);
procedure tbnfindClick(Sender: TObject);
procedure N1Click(Sender: TObject);
procedure N2Click(Sender: TObject);
procedure N4Click(Sender: TObject);
procedure N3Click(Sender: TObject);
procedure tbnsortClick(Sender: TObject);
procedure FormKeyPress(Sender: TObject; var Key: Char);
procedure DBEdit11Change(Sender: TObject);
procedure DBEdit11Exit(Sender: TObject);
procedure DBNavigator2BeforeAction(Sender: TObject;
Button: TNavigateBtn);
procedure FormKeyUp(Sender: TObject; var Key: Word;
Shift: TShiftState);
procedure DBEdit12Exit(Sender: TObject);
private
{ Private declarations }
manyfield:boolean;
findex:array[1..5] of integer;
fsort:array[1..5] of string;
fcount:0..5;
f:string; //排序的字段
public
{ Public declarations }
end;
var
formdept: Tformdept;
implementation
uses formdeptchart,datamol,publicfunction;
{$R *.DFM}
procedure Tformdept.FormClose(Sender: TObject; var Action: TCloseAction);
begin
setdbgridwidth(dbgrid1,'p'+'depatment');
datamod.ADOdept.Close;
action:=cafree;
formdept:=nil;
end;
procedure Tformdept.BtnExitClick(Sender: TObject);
begin
close;
end;
procedure Tformdept.DBGrid1KeyPress(Sender: TObject; var Key: Char);
begin
dbgrid_keypress(sender,key);
end;
procedure Tformdept.FormCreate(Sender: TObject);
begin
datamod.ADOdept.Close;
datamod.ADOdept.CursorType:=ctKeyset;
datamod.ADOdept.LockType :=ltPessimistic;
datamod.ADOdept.Open;
end;
procedure Tformdept.Button2Click(Sender: TObject);
begin
panel2.visible:=false;
end;
procedure Tformdept.Button1Click(Sender: TObject);
begin
if (adotable2.FieldByName('sumpart').asstring<'1') or (adotable2.FieldByName('sumpart').asstring>'9') then
begin
Application.messagebox('编码有几部份组成是必须填的','Warning',mb_ok+mb_iconwarning);
exit;
end;
if (adotable2.FieldByName('wei').asstring<'1') or (adotable2.FieldByName('wei').asstring>'9') then
begin
Application.messagebox('编码有多少位组成是必须填的','Warning',mb_ok+mb_iconwarning);
exit;
end;
if adotable2.CanModify then
adotable2.Post
else
adotable2.CancelUpdates;
panel2.Visible :=false;
adotable2.Close;
end;
procedure Tformdept.DBGrid1TitleClick(Column: TColumn);
begin
if f='DESC' then
f:='ASC'
else
f:='DESC';
datamod.ADOdept.Sort :=column.FieldName+' '+f;
end;
procedure Tformdept.FormActivate(Sender: TObject);
begin
getdbgridwidth(dbgrid1,'p'+'depatment');
end;
procedure Tformdept.ToolButton4Click(Sender: TObject);
begin
close;
end;
procedure Tformdept.ToolButton6Click(Sender: TObject);
begin
if not assigned(formdchart) then //调用显示formdchart,显示公司组织表
formdchart:=tformdchart.create(application);
formdchart.show;
end;
//设定部门编号特征
procedure Tformdept.ToolButton5Click(Sender: TObject);
begin
panel2.visible:=true;
adotable2.Open;
if adotable2.Eof and adotable2.bof then
begin
adotable2.Append ;
adotable2.FieldByName('id').asinteger:=1;
end;
end;
procedure Tformdept.tbnfindClick(Sender: TObject);
begin
findrecorder(datamod.adodept,'Adodept','pub05010');
end;
procedure Tformdept.N1Click(Sender: TObject);
var i:integer;
begin
for i:=1 to fcount do
if dbgrid1.SelectedIndex =findex[i] then
begin
fsort[i]:='ASC';
exit;
end;
if fcount<5 then
begin
fcount:=fcount+1;
findex[fcount]:=dbgrid1.selectedindex;
fsort[fcount]:='ASC';
dbgrid1.Columns[dbgrid1.selectedindex].Color :=clgray;
end;
end;
procedure Tformdept.N2Click(Sender: TObject);
var i:integer;
begin
for i:=1 to fcount do
if dbgrid1.SelectedIndex =findex[i] then
begin
fsort[i]:='DESC';
exit;
end;
if fcount<5 then
begin
fcount:=fcount+1;
findex[fcount]:=dbgrid1.selectedindex;
fsort[fcount]:='DESC';
dbgrid1.Columns[dbgrid1.selectedindex].Color :=clgray;
end;
end;
procedure Tformdept.N4Click(Sender: TObject);
var i:1..5;
begin
datamod.ADOdept.Sort:='';
for i:=1 to fcount do
begin
if dbgrid1.Columns[findex[i]].Color=clgray then
begin
datamod.ADOdept.Sort :=datamod.ADOdept.Sort+dbgrid1.Columns[findex[i]].FieldName+' '+fsort[i];
if i<fcount then datamod.ADOdept.Sort:=datamod.ADOdept.Sort+',';
end;
end;
end;
procedure Tformdept.N3Click(Sender: TObject);
var i:1..5;
begin
for i:=1 to fcount do
dbgrid1.Columns[findex[i]].Color :=clwindow;
fcount:=0;
end;
procedure Tformdept.tbnsortClick(Sender: TObject);
var i:1..5;
begin
if manyfield then
begin
manyfield:=false;
tbnsort.hint:='设定多字段排序';
popupmenu1.Items[0].Enabled :=false;
popupmenu1.Items[1].Enabled :=false;
popupmenu1.Items[2].Enabled :=false;
popupmenu1.Items[3].Enabled :=false;
end
else begin
manyfield:=true;
tbnsort.hint:='取消多字段排序'; //说明现在dbgrid1正处于多字段排序中
f:='';
popupmenu1.Items[0].Enabled :=true;
popupmenu1.Items[1].Enabled :=true;
popupmenu1.Items[2].Enabled :=true;
popupmenu1.Items[3].Enabled :=true;
fcount:=0;
for i:=1 to 5 do
begin
findex[i]:=0;
fsort[i]:='';
end;
end;
end;
procedure Tformdept.FormKeyPress(Sender: TObject; var Key: Char);
begin
if activecontrol=dbgrid1 then
exit;
if key=#13 then
begin
key:=#0;
if (activecontrol=dbedit13) then
begin
if (datamod.Adodept.State =dsinsert) then
begin
datamod.Adodept.Post;
datamod.Adodept.Append;
end;
dbedit11.SetFocus;
end
else
selectnext(activecontrol,true,true);
end;
end;
procedure Tformdept.DBEdit11Change(Sender: TObject);
begin
if datamod.adodept.state=dsinsert then
if dbedit11.text<>'' then
with datamod.adoquery2 do
begin
close;
SQL.Clear;
SQL.Add('select * from pub05010 where dno like '''+dbedit11.text+'''+''%'' ');
Open;
if not eof then
datamod.Adodept.FieldByName('dept').asstring:=fieldbyname('dept').asstring;
Close;
end
else
datamod.Adodept.FieldByName('dept').asstring:='';
end;
procedure Tformdept.DBEdit11Exit(Sender: TObject);
begin
if datamod.adodept.state=dsinsert then
with datamod.ADOQuery1 do
begin
close;
sql.text:='select * from pub05010 where dno='''+datamod.adodept.fieldbyname('dno').asstring+''' ';
open;
if not eof then
Application.messagebox('对不起,您输入了一个存在的部门编号,请改正.','Error',mb_ok+mb_iconerror);
close;
end;
end;
procedure Tformdept.DBNavigator2BeforeAction(Sender: TObject;
Button: TNavigateBtn);
begin
if button=nbinsert then
dbedit11.setfocus;
end;
procedure Tformdept.FormKeyUp(Sender: TObject; var Key: Word;
Shift: TShiftState);
begin
if key=VK_F1 then
begin
//showmessage('ok!')
//MessageDlg(Key + ' has been pressed', mtInformation, [mbOK], 0);
Application.HelpFile :=Extractfilepath(application.ExeName)+ 'help\pasahelp.hlp';
application.HelpJump('SHM_CONTENTS0050');
end;
end;
procedure Tformdept.DBEdit12Exit(Sender: TObject);
begin
if dbedit12.Text<>'' then
dbedit12.Text:=dbedit12.Text+'.';
end;
end.
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -