original.pas

来自「pasa人力资源考勤管理系统」· PAS 代码 · 共 608 行 · 第 1/2 页

PAS
608
字号
unit original;

interface

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

type
  TFormoriginal = class(TForm)
    Panel2: TPanel;
    Label12: TLabel;
    Label8: TLabel;
    DBGrid1: TDBGrid;
    ImageList2: TImageList;
    ToolBar2: TToolBar;
    ToolButton6: TToolButton;
    ToolButton8: TToolButton;
    tbnsort: TToolButton;
    tbnfind: TToolButton;
    tbnprint: TToolButton;
    ToolButton10: TToolButton;
    DBNavigator1: TDBNavigator;
    Edit1: TEdit;
    Label1: TLabel;
    Label2: TLabel;
    MaskEdit1: TMaskEdit;
    DateTimePicker1: TDateTimePicker;
    PopupMenu1: TPopupMenu;
    N1: TMenuItem;
    N2: TMenuItem;
    N4: TMenuItem;
    N3: TMenuItem;
    DateTimePicker2: TDateTimePicker;
    MaskEdit2: TMaskEdit;
    Label3: TLabel;
    ppReport1: TppReport;
    ppHeaderBand2: TppHeaderBand;
    ppLine2: TppLine;
    ppLabel18: TppLabel;
    ppLabel19: TppLabel;
    ppLabel20: TppLabel;
    ppLabel21: TppLabel;
    ppLabel22: TppLabel;
    ppLabel24: TppLabel;
    ppLabel25: TppLabel;
    ppLabel26: TppLabel;
    ppSystemVariable1: TppSystemVariable;
    ppLabel27: TppLabel;
    ppSystemVariable2: TppSystemVariable;
    ppLabel28: TppLabel;
    ppDetailBand2: TppDetailBand;
    ppDBText8: TppDBText;
    ppDBText11: TppDBText;
    ppDBText12: TppDBText;
    ppDBText13: TppDBText;
    ppFooterBand2: TppFooterBand;
    ppBDEPipeline2: TppBDEPipeline;
    ADODataSet1: TADODataSet;
    DataSource1: TDataSource;
    Panel1: TPanel;
    Adodataset2: TADODataSet;
    Adodataset2macname: TStringField;
    Adodataset2cardno: TStringField;
    Adodataset2workno: TStringField;
    Adodataset2name: TStringField;
    Adodataset2recdate: TStringField;
    Adodataset2rectime: TStringField;
    Adodataset2state: TStringField;
    Adodataset2readok: TBooleanField;
    Adodataset2recdatetime: TStringField;
    ADODataSet1cardno: TStringField;
    ADODataSet1name: TStringField;
    ADODataSet1recdate: TDateTimeField;
    ADODataSet1rectime: TStringField;
    ToolButton1: TToolButton;
    Panel3: TPanel;
    Animate1: TAnimate;
    DateTimePicker3: TDateTimePicker;
    BitBtn1: TBitBtn;
    Label4: TLabel;
    DateTimePicker4: TDateTimePicker;
    Label5: TLabel;
    BitBtn2: TBitBtn;
    BitBtn3: TBitBtn;
    ADOQuery1: TADOQuery;
    Label6: TLabel;
    ADODataSet1dept: TStringField;
    ppLabel1: TppLabel;
    ppDBText1: TppDBText;
    ppGroup1: TppGroup;
    ppGroupHeaderBand1: TppGroupHeaderBand;
    ppGroupFooterBand1: TppGroupFooterBand;
    Label7: TLabel;
    ComboBox1: TComboBox;
    procedure DBGrid1KeyPress(Sender: TObject; var Key: Char);
    procedure FormCreate(Sender: TObject);
    procedure FormCloseQuery(Sender: TObject; var CanClose: Boolean);
    procedure FormClose(Sender: TObject; var Action: TCloseAction);
    procedure ToolButton10Click(Sender: TObject);
    procedure DBGrid1TitleClick(Column: TColumn);
    procedure tbnfindClick(Sender: TObject);
    procedure tbnsortClick(Sender: TObject);
    procedure N1Click(Sender: TObject);
    procedure N2Click(Sender: TObject);
    procedure N4Click(Sender: TObject);
    procedure N3Click(Sender: TObject);
    procedure FormKeyPress(Sender: TObject; var Key: Char);
    procedure Edit1Exit(Sender: TObject);
    procedure DateTimePicker1CloseUp(Sender: TObject);
    procedure ToolButton6Click(Sender: TObject);
    procedure FormKeyUp(Sender: TObject; var Key: Word;
      Shift: TShiftState);
    procedure ppDBText6GetText(Sender: TObject; var Text: String);
    procedure ppReport1BeforePrint(Sender: TObject);
    procedure tbnprintClick(Sender: TObject);
    procedure ppReport1AfterPrint(Sender: TObject);
    procedure ppReport1PreviewFormCreate(Sender: TObject);
    procedure DateTimePicker2CloseUp(Sender: TObject);
    procedure BitBtn1Click(Sender: TObject);
    procedure ToolButton1Click(Sender: TObject);
    procedure BitBtn2Click(Sender: TObject);
    procedure BitBtn3Click(Sender: TObject);
    procedure ToolButton8Click(Sender: TObject);
    procedure ComboBox1Change(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
  Formoriginal: TFormoriginal;

implementation

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

procedure TFormoriginal.DBGrid1KeyPress(Sender: TObject; var Key: Char);
begin
  dbgrid_keypress(sender,key);
end;

procedure TFormoriginal.FormCreate(Sender: TObject);
begin
  with datamod do
  begin
    Adoquery1.close;
    Adoquery1.SQL.clear;
    Adoquery1.sql.add('select distinct dept from per24010');
    Adoquery1.Open;
    combobox1.Items.Clear;
    Combobox1.items.add('全部');
    Combobox1.ItemIndex:=0;
    while not Adoquery1.eof do
    begin
      Combobox1.items.add(Adoquery1.fieldbyname('dept').asstring);  //显示部门
      Adoquery1.Next;
    end;
    Adoquery1.close;

  datetimepicker1.Date :=date;
  datetimepicker2.Date :=date;
  datetimepicker2.Date :=now;
  datetimepicker2.Date :=now; 
  maskedit1.Text:=datetostr(date);
  maskedit2.Text:=datetostr(date);
  datamod.ADOpersonal.Open;
  with datamod do
   begin
    adooriginal.close;
    adooriginal.Filtered:=false;
    //cardno,rq 是Formatddata中定义的用来查找某人的打卡记录
    if (cardno<>'') and (rq<>0) then
    begin
       adooriginal.filter:=' cardno='''+cardno+''' and recdate='''+datetostr(rq)+''' ';
       edit1.text:=cardno;
       maskedit1.text:=datetostr(rq);
       maskedit2.text:=maskedit1.text;
    end else
      adooriginal.filter:='recdate='''+maskedit1.Text+'''';
      adooriginal.Filtered:=true;
      adooriginal.open;
   end;
end;
end;
procedure TFormoriginal.FormCloseQuery(Sender: TObject;
  var CanClose: Boolean);
begin
      //cardno,rq 是Formatddata中定义的用来查找某人的打卡记录
  cardno:='';
  rq:=0;
end;

procedure TFormoriginal.FormClose(Sender: TObject;
  var Action: TCloseAction);
begin
  datamod.adooriginal.close;
  datamod.ADOpersonal.Close;
  formoriginal:=nil;
  action:=cafree;
end;

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

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

procedure TFormoriginal.tbnfindClick(Sender: TObject);
begin
  if assigned(formcanfind) then  formcanfind.close;
  if toolbutton8.Down then
    findrecorder(Adodataset2,'Adodataset2','atd15010bk')
  else
    findrecorder(Adodataset2,'Adodataset2','atd15010');
end;

procedure TFormoriginal.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 TFormoriginal.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 TFormoriginal.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 TFormoriginal.N4Click(Sender: TObject);
var i:1..5;
   sortexp:string;
begin

⌨️ 快捷键说明

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