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

📄 atdchange.pas

📁 pasa人力资源考勤管理系统
💻 PAS
字号:
unit atdchange;

interface

uses
  Windows, Messages, SysUtils, Classes, Graphics, Controls, Forms, Dialogs,
  Grids, DBGrids, ImgList, DBCtrls, ComCtrls, ToolWin, ExtCtrls, StdCtrls,
  Buttons, Menus, Db, ADODB, Mask, ppCtrls, ppPrnabl, ppClass, ppBands,
  ppCache, ppDB, ppProd, ppReport, ppComm, ppRelatv, ppDBPipe, ppDBBDE,
  ppVar, myChkBox;

type
  TFormatdchange = class(TForm)
    ToolBar2: TToolBar;
    ToolButton7: TToolButton;
    ToolButton8: TToolButton;
    tbnsort: TToolButton;
    tbnfind: TToolButton;
    tbnprint: TToolButton;
    ToolButton10: TToolButton;
    DBNavigator1: TDBNavigator;
    ImageList1: TImageList;
    DBGrid1: TDBGrid;
    Panel1: TPanel;
    Label1: TLabel;
    Label2: TLabel;
    Label3: TLabel;
    Label4: TLabel;
    Label5: TLabel;
    Label6: TLabel;
    Edit1: TEdit;
    Edit2: TEdit;
    MaskEdit1: TMaskEdit;
    DateTimePicker1: TDateTimePicker;
    MaskEdit2: TMaskEdit;
    DateTimePicker2: TDateTimePicker;
    Edit3: TEdit;
    ADOatdtemp1: TADODataSet;
    Dsatdtemp1: TDataSource;
    ADOatdtemp1workno: TStringField;
    ADOatdtemp1cardno: TStringField;
    ADOatdtemp1rq: TDateTimeField;
    ADOatdtemp1scheno: TStringField;
    ADOatdtemp1dothing: TStringField;
    ADOatdtemp1itemtime: TIntegerField;
    ADOatdtemp1mustgo: TStringField;
    ADOatdtemp1factgo: TDateTimeField;
    ADOatdtemp1mustout: TStringField;
    ADOatdtemp1factout: TDateTimeField;
    ADOatdtemp1musthours: TBCDField;
    ADOatdtemp1addtime: TBooleanField;
    ADOatdtemp1continuetime: TBooleanField;
    ADOatdtemp1decrease: TBCDField;
    ADOatdtemp1ot: TBooleanField;
    ADOatdtemp1otkind: TStringField;
    ADOatdtemp1users: TStringField;
    ADOatdtemp1newsche: TStringField;
    ADOatdtemp1newmustgo: TStringField;
    ADOatdtemp1newfactgo: TDateTimeField;
    ADOatdtemp1newmustout: TStringField;
    ADOatdtemp1newfactout: TDateTimeField;
    ADOatdtemp1name: TStringField;
    PopupMenu1: TPopupMenu;
    N1: TMenuItem;
    N2: TMenuItem;
    N4: TMenuItem;
    N3: TMenuItem;
    ppBDEPipeline1: TppBDEPipeline;
    ppReport1: TppReport;
    ppHeaderBand1: TppHeaderBand;
    ppDetailBand1: TppDetailBand;
    ppFooterBand1: TppFooterBand;
    ppTitleBand1: TppTitleBand;
    ppDBText1: TppDBText;
    ppLabel2: TppLabel;
    ppDBText2: TppDBText;
    ppLabel3: TppLabel;
    ppDBText3: TppDBText;
    ppLabel4: TppLabel;
    ppDBText4: TppDBText;
    ppLabel5: TppLabel;
    ppDBText6: TppDBText;
    ppLabel7: TppLabel;
    ppDBText8: TppDBText;
    ppLabel9: TppLabel;
    ppDBText10: TppDBText;
    ppLabel11: TppLabel;
    ppDBText12: TppDBText;
    ppLabel13: TppLabel;
    ppDBText14: TppDBText;
    ppLabel15: TppLabel;
    ppDBText16: TppDBText;
    ppLabel17: TppLabel;
    ppDBText17: TppDBText;
    ppLabel18: TppLabel;
    ppLabel19: TppLabel;
    ppLabel1: TppLabel;
    ppLabel25: TppLabel;
    ppLabel26: TppLabel;
    ppLabel27: TppLabel;
    ppLabel28: TppLabel;
    ppLabel29: TppLabel;
    ppLabel30: TppLabel;
    ppSystemVariable1: TppSystemVariable;
    ppLabel31: TppLabel;
    ppSystemVariable2: TppSystemVariable;
    ppShape1: TppShape;
    ppShape2: TppShape;
    myDBCheckBox1: TmyDBCheckBox;
    ADOatdtemp1qianka: TStringField;
    ADOatdtemp1qianka2: TStringField;
    ADOatdtemp1qianka3: TStringField;
    procedure FormClose(Sender: TObject; var Action: TCloseAction);
    procedure ToolButton10Click(Sender: TObject);
    procedure FormCreate(Sender: TObject);
    procedure tbnfindClick(Sender: TObject);
    procedure FormKeyPress(Sender: TObject; var Key: Char);
    procedure DateTimePicker2CloseUp(Sender: TObject);
    procedure DateTimePicker1CloseUp(Sender: TObject);
    procedure ToolButton7Click(Sender: TObject);
    procedure ToolButton8Click(Sender: TObject);
    procedure Edit3Exit(Sender: TObject);
    procedure Edit2Exit(Sender: TObject);
    procedure Edit1Exit(Sender: TObject);
    procedure MaskEdit2Exit(Sender: TObject);
    procedure DBGrid1TitleClick(Column: TColumn);
    procedure tbnsortClick(Sender: TObject);
    procedure N1Click(Sender: TObject);
    procedure N2Click(Sender: TObject);
    procedure N4Click(Sender: TObject);
    procedure N3Click(Sender: TObject);
    procedure formkeyup(Sender: TObject; var Key: Word;
      Shift: TShiftState);
    procedure ppReport1AfterPrint(Sender: TObject);
    procedure ppReport1BeforePrint(Sender: TObject);
    procedure ppReport1PreviewFormCreate(Sender: TObject);
    procedure tbnprintClick(Sender: TObject);
    procedure Edit1KeyPress(Sender: TObject; var Key: Char);
    procedure Edit2KeyPress(Sender: TObject; var Key: Char);
    procedure Edit3KeyPress(Sender: TObject; var Key: Char);
    procedure MaskEdit1KeyPress(Sender: TObject; var Key: Char);
    procedure MaskEdit2KeyPress(Sender: TObject; var Key: Char);
  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
  Formatdchange: TFormatdchange;
  adoqry:string;
implementation

uses main,datamol,atddata,publicfunction;
{$R *.DFM}

procedure TFormatdchange.FormClose(Sender: TObject;
  var Action: TCloseAction);
begin
  adoatdtemp1.close;
  action:=cafree;
  formatdchange:=nil;
end;

procedure TFormatdchange.ToolButton10Click(Sender: TObject);
begin
  close;
end;

procedure TFormatdchange.FormCreate(Sender: TObject);
begin
    datetimepicker1.Date:=date;
    datetimepicker2.Date:=date;
    maskedit1.Text:=datetostr(date);
    maskedit2.Text:=datetostr(date);
    getdata2;
    adoatdtemp1.open;
    adoatdtemp1.filtered:=false;
    adoatdtemp1.filter :='rq<='''+maskedit2.text+''' and rq>='''+maskedit1.text+''' ';
    adoatdtemp1.filtered:=true;
end;

procedure TFormatdchange.tbnfindClick(Sender: TObject);
begin
  findrecorder(Adoatdtemp1,'Adoatdtemp1','vtempatd1');
end;

procedure TFormatdchange.FormKeyPress(Sender: TObject; var Key: Char);
begin
  if key=#13 then
    begin
      key:=#0;
      selectnext(activecontrol,true,true);
    end;
end;

procedure TFormatdchange.DateTimePicker2CloseUp(Sender: TObject);
begin
  maskedit2.Text :=datetostr(datetimepicker2.date);
end;

procedure TFormatdchange.DateTimePicker1CloseUp(Sender: TObject);
begin
  maskedit1.Text :=datetostr(datetimepicker1.date);
end;

procedure TFormatdchange.ToolButton7Click(Sender: TObject);
var fmat1:string;
begin
  if fmat='/' then
    fmat1:='    /  /  ';
  if fmat='-' then
    fmat1:='    -  -  ';
  adoatdtemp1.filtered:=false;
  adoatdtemp1.filter:='';
  adoatdtemp1.filtered:=true;
  maskedit1.Text:=fmat1;
  maskedit2.Text:=fmat1;
end;

procedure TFormatdchange.ToolButton8Click(Sender: TObject);
begin
    if toolbutton8.down then  
    begin
       adoatdtemp1.close;
       adoatdtemp1.commandtext:='Select distinct  * from vatdtransbk';
       adoatdtemp1.Open;
    end else
    begin
       adoatdtemp1.close;
       adoatdtemp1.commandtext:='Select distinct * from vtempatd1';
       adoatdtemp1.Open;
    end;
end;

procedure TFormatdchange.Edit3Exit(Sender: TObject);
begin
  if trim(edit3.text)<>'' then
    begin
      adoatdtemp1.filtered:=false;
      adoatdtemp1.filter :='name='''+edit3.text+'''';
      adoatdtemp1.filtered:=true;
    end;
end;

procedure TFormatdchange.Edit2Exit(Sender: TObject);
begin
  if trim(edit2.text)<>'' then
    begin
      adoatdtemp1.filtered:=false;
      adoatdtemp1.filter :='cardno='''+edit2.text+'''';
      adoatdtemp1.filtered:=true;
    end;
end;

procedure TFormatdchange.Edit1Exit(Sender: TObject);
begin
  if trim(edit1.text)<>'' then
    begin
      adoatdtemp1.filtered:=false;
      adoatdtemp1.filter :='workno='''+edit1.text+'''';
      adoatdtemp1.filtered:=true;
    end;
end;

procedure TFormatdchange.MaskEdit2Exit(Sender: TObject);
var fmat1:string;
begin
  if fmat='/' then
    fmat1:='    /  /  ';
  if fmat='-' then
    fmat1:='    -  -  ';
  if maskedit2.text<>fmat1 then
   begin
     if isdate(maskedit1.text) and isdate(maskedit2.text) then
       begin
         adoatdtemp1.filtered:=false;
         adoatdtemp1.filter :='rq<='''+maskedit2.text+''' and rq>='''+maskedit1.text+''' ';
         adoatdtemp1.filtered:=true;
       end;
   end;
end;

procedure TFormatdchange.DBGrid1TitleClick(Column: TColumn);
begin
  if f='DESC' THEN
    F:='ASC'
  ELSE
    F:='DESC';
  Adoatdtemp1.Sort :=column.FieldName +' '+f;
end;

procedure TFormatdchange.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 TFormatdchange.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 TFormatdchange.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 TFormatdchange.N4Click(Sender: TObject);
var i:1..5;
begin
  Adoatdtemp1.Sort:='';
  for i:=1 to fcount do
  begin
   if dbgrid1.Columns[findex[i]].Color=clgray then
    begin
     Adoatdtemp1.Sort :=Adoatdtemp1.Sort+dbgrid1.Columns[findex[i]].FieldName+' '+fsort[i];
     if i<fcount then Adoatdtemp1.Sort:=Adoatdtemp1.Sort+',';
    end;
  end;
end;

procedure TFormatdchange.N3Click(Sender: TObject);
var i:1..5;
begin
  for i:=1 to fcount do
    dbgrid1.Columns[findex[i]].Color :=clwindow;
  fcount:=0;
end;

procedure TFormatdchange.formkeyup(Sender: TObject; var Key: Word;
  Shift: TShiftState);
begin
  if key=vk_f1 then
  begin
   Application.helpfile :=extractfilepath(application.exename) +'help\pasahelp.hlp';
   application.HelpJump('shm_contents0028');
  end;
end;

procedure TFormatdchange.ppReport1AfterPrint(Sender: TObject);
begin
  ADOatdtemp1.Close;
end;

procedure TFormatdchange.ppReport1BeforePrint(Sender: TObject);
var fmat1:string;
begin
  if fmat='/' then
    fmat1:='    /  /  ';
  if fmat='-' then
    fmat1:='    -  -  ';
  pplabel1.Caption:=companyname1;
  if (maskedit1.Text<>fmat1) and (maskedit2.Text<>fmat1) then
    pplabel26.Caption:=maskedit1.Text+'~~'+maskedit2.Text
  else
    pplabel26.Caption:='';
  pplabel29.Caption:=pubworkname;
end;

procedure TFormatdchange.ppReport1PreviewFormCreate(Sender: TObject);
begin
  tppReport(Sender).PreviewForm.WindowState:=wsMaximized;
end;

procedure TFormatdchange.tbnprintClick(Sender: TObject);
begin
  ppreport1.Print;
end;

procedure TFormatdchange.Edit1KeyPress(Sender: TObject; var Key: Char);
begin
  if key=#13 then
    begin
      key:=#0;
      selectnext(activecontrol,true,true);
    end;
end;

procedure TFormatdchange.Edit2KeyPress(Sender: TObject; var Key: Char);
begin
  if key=#13 then
    begin
      key:=#0;
      selectnext(activecontrol,true,true);
    end;
end;

procedure TFormatdchange.Edit3KeyPress(Sender: TObject; var Key: Char);
begin
  if key=#13 then
    begin
      key:=#0;
      selectnext(activecontrol,true,true);
    end;
end;

procedure TFormatdchange.MaskEdit1KeyPress(Sender: TObject; var Key: Char);
begin
  if key=#13 then
    begin
      key:=#0;
      selectnext(activecontrol,true,true);
    end;
end;

procedure TFormatdchange.MaskEdit2KeyPress(Sender: TObject; var Key: Char);
begin
  if key=#13 then
    begin
      key:=#0;
      selectnext(activecontrol,true,true);
    end;
end;

end.

⌨️ 快捷键说明

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