⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 editdwunit.pas

📁 人事管理源码 Delphi+ADO+Acce
💻 PAS
字号:
unit EditDWunit;

interface

uses
  Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
  Dialogs, StdCtrls, Grids, DBGrids, Buttons,dataunit;

type
  TEditDWForm = class(TForm)
    GroupBox1: TGroupBox;
    dwgrid: TDBGrid;
    DWIDedt: TEdit;
    BMedt: TEdit;
    DWedt: TEdit;
    AddBtn: TBitBtn;
    DElBtn: TBitBtn;
    OKbtn: TBitBtn;
    EditBtn: TBitBtn;
    procedure FormClose(Sender: TObject; var Action: TCloseAction);
    procedure FormCreate(Sender: TObject);
    procedure FormShow(Sender: TObject);
    procedure EditBtnClick(Sender: TObject);
    procedure AddBtnClick(Sender: TObject);
    procedure DElBtnClick(Sender: TObject);
    procedure OKbtnClick(Sender: TObject);
  private
    { Private declarations }
  public
    { Public declarations }
    procedure CheckDWedit;

  end;

var
  EditDWForm: TEditDWForm;

implementation

uses barunit;

{$R *.dfm}

Function DWIDexist(dwid:string):boolean;  //单位ID是否存在
  begin
    result :=  dataform.selquy.Locate('单位编号',trim(dwid),[]);
  end;

Procedure TEditDWForm.CheckDWedit;
begin
  if trim(DWIDedt.Text) = '' then
    begin
      messagebox(application.Handle,'单位编号 不能为空!','提示',MB_OK+MB_ICONWARNING);
      DWIDedt.SetFocus;
      abort;
    end;

  if trim(bmedt.Text) = '' then
    begin
      messagebox(application.Handle,'部门 不能为空!','提示',MB_OK+MB_ICONWARNING);
      bmedt.SetFocus;
      abort;
    end;

    if trim(DWedt.Text) = '' then
    begin
      messagebox(application.Handle,'单位 不能为空!','提示',MB_OK+MB_ICONWARNING);
      DWedt.SetFocus;
      abort;
    end;
end;

procedure TEditDWForm.FormClose(Sender: TObject; var Action: TCloseAction);
begin
  dataform.selquy.Close;
  dataform.selquy.SQL.Clear;
  action := cafree;
  editdwform := nil;
end;

procedure TEditDWForm.FormCreate(Sender: TObject);
begin
  dwgrid.DataSource := dataform.seldata;
  with dataform.selquy do
  begin
    close;
    sql.Clear;
    sql.Add('select dw.dwtable_id,dw.dw_id as 单位编号,dw.bm as 部门,dw.dw as 单位 from dw order by dw.dw_id');
    open;
  end;    // with
  dwgrid.Columns.Items[0].Visible := false;
end;

procedure TEditDWForm.FormShow(Sender: TObject);
begin
    dataform.selquy.First;

end;

procedure TEditDWForm.EditBtnClick(Sender: TObject);
var
  tableid : integer;
  i: variant;
begin
  CheckDWedit;
  tableid := dataform.selquy.Fields.fieldbyname('dwtable_id').AsInteger;
  i := dataform.selquy.Lookup('单位编号',trim(DWIDedt.Text),'dwtable_id');
  if (i <> null) and (integer(i) = tableid) then
    begin
      with dataform.CMD do
        begin
          commandtext := 'update dw set dw.dw_id=:dwid,dw.bm=:bm,dw.dw=:dw where dw.dwtable_id=:tableid';
          parameters.ParamByName('dwid').Value := trim(DWIDedt.Text);
          parameters.ParamByName('bm').Value := trim(BMedt.Text);
          parameters.ParamByName('dw').Value := trim(DWedt.Text);
          parameters.ParamByName('tableid').Value := tableid;
          execute;
        end;    // with
    end
  else
    begin
      messagebox(application.Handle,'单位编号 冲突,请重新输入!','提示',MB_OK+MB_ICONWARNING);
      DWIDedt.SetFocus;
      abort;
    end;
//重新定位记录
  dataform.selquy.Requery();
  dataform.selquy.Locate('dwtable_id',tableid,[]);
end;

procedure TEditDWForm.AddBtnClick(Sender: TObject);
begin
  CheckDWedit;
  if DWIDexist(DWIDedt.Text) then
    begin
      messagebox(application.Handle,'单位编号 冲突,请重新输入!','提示',MB_OK+MB_ICONWARNING);
      DWIDedt.SetFocus;
      abort;
    end
  else
    begin
      with dataform.CMD do
        begin
          commandtext := 'insert into dw (dw_id,bm,dw)values(:dwid,:bm,:dw)';
          parameters.ParamByName('dwid').Value := trim(DWIDedt.Text);
          parameters.ParamByName('bm').Value := trim(BMedt.Text);
          parameters.ParamByName('dw').Value := trim(DWedt.Text);
          execute;
        end;    // with
      dataform.selquy.Requery();
      dataform.selquy.Locate('单位编号',trim(DWIDedt.Text),[]);
    end;
end;

procedure TEditDWForm.DElBtnClick(Sender: TObject);
var
  i,tableid,mainid: Integer;
  dwid:string;
begin
  tag := 1;

  tableid := dataform.selquy.Fields.fieldbyname('dwtable_id').AsInteger;
  dwid := dataform.selquy.Fields.fieldbyname('单位编号').AsString;
  i := messagebox(application.Handle,
                  '删除此单位,是否同时删除此单位的所有人员?',
                  '提示',mb_yesnocancel+mb_iconquestion);
case i of
  2: begin       //cancel
       tag := 0;
       dataform.selquy.EnableControls;
     end;
  6: begin      //yes
       with dataform do
         begin
           selquy.DisableControls;

           cmd.commandtext := 'delete from dw where dwtable_id=:tableid';
           cmd.Parameters.ParamByName('tableid').Value := tableid;
           cmd.execute;

           cmd.commandtext := 'delete from main where dw_id=:dwid';
           cmd.parameters.ParamByName('dwid').Value := dwid;
           cmd.execute;

           with barform do
             begin
               initzztree;
               inittree('nt',NTTree);
               InitTree('ty',TYTree);
               InitTree('tx',TXTree);
               InitTree('js',JSTree);

             end;    // with
           mainid := zzquy.Fields.fieldbyname('main_id').AsInteger;
           zzquy.DisableControls;
           zzquy.Requery();
           zzquy.EnableControls;
           zzquy.Locate('main_id',mainid,[]);

           mainid := ntquy.Fields.fieldbyname('main_id').AsInteger;
           ntquy.DisableControls;
           ntquy.Requery();
           ntquy.EnableControls;
           ntquy.Locate('main_id',mainid,[]);

           mainid := tyquy.Fields.fieldbyname('main_id').AsInteger;
           tyquy.DisableControls;
           tyquy.Requery();
           tyquy.EnableControls;
           tyquy.Locate('main_id',mainid,[]);

           mainid := txquy.Fields.fieldbyname('main_id').AsInteger;
           txquy.DisableControls;
           txquy.Requery();
           txquy.EnableControls;
           txquy.Locate('main_id',mainid,[]);

           mainid := jsquy.Fields.fieldbyname('main_id').AsInteger;
           jsquy.DisableControls;
           jsquy.Requery();
           jsquy.Enablecontrols;
           jsquy.Locate('main_id',mainid,[]);

           tag := 0;
           selquy.EnableControls;
           selquy.SQL.Clear;
           selquy.SQL.Add('select dw.dwtable_id,dw.dw_id as 单位编号,dw.bm as 部门,dw.dw as 单位 from dw order by dw.dw_id');
           selquy.open;
         end;    // with

     end;
  7: begin      //no
       with dataform do
         begin
           cmd.commandtext := 'delete from dw where dwtable_id=:tableid';
           cmd.Parameters.ParamByName('tableid').Value := tableid;
           cmd.execute;

           mainid := zzquy.Fields.fieldbyname('main_id').AsInteger;
           zzquy.DisableControls;
           zzquy.Requery();
           zzquy.EnableControls;
           zzquy.Locate('main_id',mainid,[]);

           mainid := ntquy.Fields.fieldbyname('main_id').AsInteger;
           ntquy.DisableControls;
           ntquy.Requery();
           ntquy.EnableControls;
           ntquy.Locate('main_id',mainid,[]);

           mainid := tyquy.Fields.fieldbyname('main_id').AsInteger;
           tyquy.DisableControls;
           tyquy.Requery();
           tyquy.EnableControls;
           tyquy.Locate('main_id',mainid,[]);

           mainid := txquy.Fields.fieldbyname('main_id').AsInteger;
           txquy.DisableControls;
           txquy.Requery();
           txquy.EnableControls;
           txquy.Locate('main_id',mainid,[]);

           mainid := jsquy.Fields.fieldbyname('main_id').AsInteger;
           jsquy.DisableControls;
           jsquy.Requery();
           jsquy.Enablecontrols;
           jsquy.Locate('main_id',mainid,[]);

           tag := 0;
           selquy.EnableControls;
           selquy.SQL.Clear;
           selquy.SQL.Add('select dw.dwtable_id,dw.dw_id as 单位编号,dw.bm as 部门,dw.dw as 单位 from dw order by dw.dw_id');
           selquy.open;
         end;    // with
     end;
end;    // case

end;

procedure TEditDWForm.OKbtnClick(Sender: TObject);
begin
  close;
end;

end.

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -