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

📄 formdepatment.pas

📁 pasa人力资源考勤管理系统
💻 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 + -