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 + -
显示快捷键?