dwszfrm.pas
来自「本人编写的有关军队营房工作的管理系统」· PAS 代码 · 共 300 行
PAS
300 行
unit dwszfrm;
interface
uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, ExtCtrls, StdCtrls, Buttons, ComCtrls, dxtree, dxdbtree, ImgList,
Grids, DBGrids, Mask, DBCtrls, DBCtrlsEh,db, DBGridEh;
type
Tdwsz = class(TForm)
Panel1: TPanel;
Panel2: TPanel;
Splitter1: TSplitter;
Panel3: TPanel;
Panel4: TPanel;
SpeedButton1: TSpeedButton;
Label1: TLabel;
dxDBTreeView1: TdxDBTreeView;
ImageList1: TImageList;
Panel5: TPanel;
Panel6: TPanel;
SpeedButton2: TSpeedButton;
SpeedButton3: TSpeedButton;
SpeedButton4: TSpeedButton;
SpeedButton5: TSpeedButton;
SpeedButton6: TSpeedButton;
SpeedButton7: TSpeedButton;
SpeedButton9: TSpeedButton;
SpeedButton10: TSpeedButton;
SpeedButton11: TSpeedButton;
SpeedButton14: TSpeedButton;
SpeedButton8: TSpeedButton;
Panel7: TPanel;
Label2: TLabel;
Label3: TLabel;
Label4: TLabel;
Label5: TLabel;
Label6: TLabel;
Label7: TLabel;
Label8: TLabel;
Label13: TLabel;
Label9: TLabel;
Label10: TLabel;
Label11: TLabel;
DBEdit1: TDBEdit;
DBEdit2: TDBEdit;
DBEdit3: TDBEdit;
DBEdit4: TDBEdit;
DBEdit5: TDBEdit;
DBEdit6: TDBEdit;
DBEdit7: TDBEdit;
DBMemo1: TDBMemo;
DBEdit8: TDBEdit;
DBEdit9: TDBEdit;
DBEdit10: TDBEdit;
Label12: TLabel;
DBEdit11: TDBEdit;
Label14: TLabel;
DBEdit12: TDBEdit;
DBGridEh1: TDBGridEh;
procedure Splitter1Moved(Sender: TObject);
procedure SpeedButton2Click(Sender: TObject);
procedure SpeedButton3Click(Sender: TObject);
procedure SpeedButton14Click(Sender: TObject);
procedure SpeedButton1Click(Sender: TObject);
procedure SpeedButton11Click(Sender: TObject);
procedure SpeedButton4Click(Sender: TObject);
procedure SpeedButton5Click(Sender: TObject);
procedure SpeedButton6Click(Sender: TObject);
procedure SpeedButton7Click(Sender: TObject);
procedure FormActivate(Sender: TObject);
procedure dxDBTreeView1Click(Sender: TObject);
procedure SpeedButton8Click(Sender: TObject);
procedure SpeedButton9Click(Sender: TObject);
procedure SpeedButton10Click(Sender: TObject);
private
procedure dwshow;
procedure deltree(key:string);
{ Private declarations }
public
{ Public declarations }
function getnchild(key:ttreenode; keyvalue:string):integer;
end;
var
dwsz: Tdwsz;
implementation
uses datafrm,tjdwfrm,xgdwfrm;
{$R *.dfm}
procedure Tdwsz.Splitter1Moved(Sender: TObject);
begin
dwsz.SpeedButton1.Left:=dwsz.Panel4.Width-20;
end;
procedure Tdwsz.SpeedButton2Click(Sender: TObject);
begin
dwsz.Panel6.Visible:=false;
dwsz.Panel7.Visible:=true;
end;
procedure Tdwsz.SpeedButton3Click(Sender: TObject);
begin
dwsz.Panel6.Visible:=true;
dwsz.Panel7.Visible:=false;
end;
procedure Tdwsz.SpeedButton14Click(Sender: TObject);
begin
yfgldata.dw.First;
close;
end;
procedure Tdwsz.SpeedButton1Click(Sender: TObject);
begin
dwsz.Panel1.Visible:=false;
end;
procedure Tdwsz.SpeedButton11Click(Sender: TObject);
begin
dwsz.Panel1.Visible:=not dwsz.Panel1.Visible
end;
procedure Tdwsz.SpeedButton4Click(Sender: TObject);
begin
yfgldata.dw.First;
dwsz.dwshow;
end;
procedure Tdwsz.SpeedButton5Click(Sender: TObject);
begin
yfgldata.dw.Prior;
dwsz.dwshow;
end;
procedure Tdwsz.SpeedButton6Click(Sender: TObject);
begin
yfgldata.dw.Next;
dwsz.dwshow;
end;
procedure Tdwsz.SpeedButton7Click(Sender: TObject);
begin
yfgldata.dw.Last;
dwsz.dwshow;
end;
procedure tdwsz.dwshow;
begin
dwsz.SpeedButton4.Enabled:=(yfgldata.dw.RecordCount>0) and (yfgldata.dw.RecNo<>1);
dwsz.SpeedButton5.Enabled:=(yfgldata.dw.RecordCount>0) and (yfgldata.dw.RecNo<>1);
dwsz.SpeedButton6.Enabled:=(yfgldata.dw.RecordCount>0) and (yfgldata.dw.RecNo<>yfgldata.dw.RecordCount);
dwsz.SpeedButton7.Enabled:=(yfgldata.dw.RecordCount>0) and (yfgldata.dw.RecNo<>yfgldata.dw.RecordCount);
dwsz.SpeedButton9.Enabled:=yfgldata.dw.RecordCount>0;
dwsz.SpeedButton10.Enabled:=yfgldata.dw.RecordCount>0;
end;
procedure Tdwsz.FormActivate(Sender: TObject);
begin
dwsz.dwshow;
end;
procedure Tdwsz.dxDBTreeView1Click(Sender: TObject);
begin
dwsz.dwshow;
end;
procedure Tdwsz.SpeedButton8Click(Sender: TObject);
var
nchild:integer;
schild,str0:string;
key:ttreenode;
begin
dwsz.Panel1.Visible:=true;
dwsz.dxDBTreeView1.SetFocus;
key:=dwsz.dxDBTreeView1.Selected;
str0:=yfgldata.dw.FieldByName('单位代码').AsString;
if length(yfgldata.dw.Fields[0].asstring)>18 then
messagebox(dwsz.handle,'本单位代码长度已经达到最大,不能添加下级单位。','营房工作管理系统',16)
else
begin
nchild:=key.Count;
if nchild>=99 then
messagebox(dwsz.handle,'下级单位数量已经达到最大,不能添加下级单位。','营房工作管理系统',16)
else
begin
nchild:=dwsz.getnchild(key,str0);
if nchild<10 then
schild:=str0+'0'+inttostr(nchild)
else
schild:=str0+inttostr(nchild);
application.CreateForm(ttjdw,tjdw);
try
begin
tjdw.str0:=str0;
tjdw.edit1.text:=schild;
tjdw.ShowModal;
end;
finally
tjdw.Free;
end;
end;
end;
end;
procedure Tdwsz.SpeedButton9Click(Sender: TObject);
var
str0:string;
key:ttreenode;
begin
dwsz.Panel1.Visible:=true;
dwsz.dxDBTreeView1.SetFocus;
key:=dwsz.dxDBTreeView1.Selected;
str0:=yfgldata.dw.FieldByName('单位代码').AsString;
if key.Level=0 then
messagebox(dwsz.handle,'本单位为主单位,只能修改,不能被删除。','营房工作管理系统',16)
else
if messagebox(dwsz.handle,'单位一经删除便不能恢复,请确认要删除本单位及其下属单位吗。','营房工作管理系统',33)=1 then
begin
dwsz.deltree(str0);
end;
end;
procedure Tdwsz.SpeedButton10Click(Sender: TObject);
var
key:ttreenode;
str0:string;
begin
dwsz.Panel1.Visible:=true;
dwsz.dxDBTreeView1.SetFocus;
key:=dwsz.dxDBTreeView1.Selected;
str0:=yfgldata.dw.FieldByName('单位代码').AsString;
application.CreateForm(txgdw,xgdw);
try
begin
yfgldata.dw.Locate('单位代码',str0,[loCaseInsensitive]);
xgdw.Edit1.Text:=yfgldata.dw.FieldByName('单位代码').AsString;
xgdw.Edit2.Text:=yfgldata.dw.FieldByName('单位名称').AsString;
xgdw.Edit3.Text:=yfgldata.dw.FieldByName('单位责任人').AsString;
xgdw.Edit4.Text:=yfgldata.dw.FieldByName('电话').AsString;
xgdw.DBNumberEditEh1.Value:=yfgldata.dw.FieldByName('军职以上干部编制数').AsInteger;
xgdw.DBNumberEditEh2.Value:=yfgldata.dw.FieldByName('师职干部编制数').AsInteger;
xgdw.DBNumberEditEh3.Value:=yfgldata.dw.FieldByName('团职干部编制数').AsInteger;
xgdw.DBNumberEditEh4.Value:=yfgldata.dw.FieldByName('营职干部编制数').AsInteger;
xgdw.DBNumberEditEh5.Value:=yfgldata.dw.FieldByName('连排职干部编制数').AsInteger;
xgdw.DBNumberEditEh6.Value:=yfgldata.dw.FieldByName('学员人数').AsInteger;
xgdw.DBNumberEditEh7.Value:=yfgldata.dw.FieldByName('战士编制数').AsInteger;
xgdw.DBNumberEditEh8.Value:=yfgldata.dw.FieldByName('职工编制数').AsInteger;
xgdw.Memo1.Lines.Text:=yfgldata.dw.FieldByName('备注').AsString;
if (key.Level=0) and (key.Count=0)then
xgdw.Edit1.ReadOnly:=false
else
xgdw.Edit1.ReadOnly:=true;
xgdw.ShowModal;
end;
finally
xgdw.Free;
end;
end;
function tdwsz.getnchild(key:ttreenode; keyvalue:string):integer;
var
i,n:integer;
str,m:string;
begin
n:=0;
for i:=1 to key.Count do
begin
if i<10 then
m:='0'+trim(inttostr(i))
else
m:=trim(inttostr(i));
str:=trim(keyvalue)+m;
if not yfgldata.dw.Locate('单位代码',str,[loCaseInsensitive]) then
n:=i;
end;
if n=0 then
n:=key.Count+1;
result:=n;
end;
procedure tdwsz.deltree(key:string);
var
str1:string;
begin
yfgldata.dw.Locate('单位代码',key,[loCaseInsensitive]);
yfgldata.dw.Delete;
while yfgldata.dw.Locate('上级代码',key,[loCaseInsensitive]) do
begin
str1:=yfgldata.dw.FieldValues['单位代码'];
dwsz.deltree(str1);
end;
end;
end.
⌨️ 快捷键说明
复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?