atd_clockset.pas

来自「pasa人力资源考勤管理系统」· PAS 代码 · 共 400 行

PAS
400
字号
unit atd_clockset;

interface

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

type
  TFormatdclock = class(TForm)
    Panel1: TPanel;
    Label1: TLabel;
    Label2: TLabel;
    Label3: TLabel;
    Label4: TLabel;
    Label12: TLabel;
    Label13: TLabel;
    Label8: TLabel;
    Label10: TLabel;
    Label11: TLabel;
    Label9: TLabel;
    SpeedButton1: TSpeedButton;
    DBEdit1: TDBEdit;
    DBEdit2: TDBEdit;
    DBEdit4: TDBEdit;
    DBEdit5: TDBEdit;
    DBEdit7: TDBEdit;
    DBEdit8: TDBEdit;
    DBEdit10: TDBEdit;
    clockdriverdir: TDirectoryEdit;
    DBEdit12: TDBEdit;
    DBCheckBox1: TDBCheckBox;
    DBGrid1: TDBGrid;
    Label14: TLabel;
    DBEdit3: TDBEdit;
    textfiledir: TDirectoryEdit;
    Label17: TLabel;
    DBEdit6: TDBEdit;
    Label20: TLabel;
    DBEdit13: TDBEdit;
    Label18: TLabel;
    DBEdit9: TDBEdit;
    Label22: TLabel;
    DBEdit11: TDBEdit;
    DBEdit14: TDBEdit;
    Label24: TLabel;
    Label23: TLabel;
    Label25: TLabel;
    Label26: TLabel;
    DBEdit15: TDBEdit;
    DBEdit16: TDBEdit;
    DBEdit17: TDBEdit;
    Label27: TLabel;
    DBEdit18: TDBEdit;
    Label28: TLabel;
    DBEdit19: TDBEdit;
    Label29: TLabel;
    DBEdit20: TDBEdit;
    Label30: TLabel;
    DBEdit21: TDBEdit;
    Label31: TLabel;
    DBEdit22: TDBEdit;
    Label32: TLabel;
    DBEdit23: TDBEdit;
    Label33: TLabel;
    DBEdit24: TDBEdit;
    Label35: TLabel;
    DBEdit25: TDBEdit;
    Label36: TLabel;
    DBEdit26: TDBEdit;
    Memo1: TDBMemo;
    ImageList1: TImageList;
    ToolBar1: TToolBar;
    tbnprint: TToolButton;
    ToolButton4: TToolButton;
    DBNavigator1: TDBNavigator;
    ppBDEPipeline1: TppBDEPipeline;
    ppReport1: TppReport;
    ppDetailBand1: TppDetailBand;
    ppDBText2: TppDBText;
    ppDBText3: TppDBText;
    ppDBText4: TppDBText;
    ppDBText5: TppDBText;
    ppDBText6: TppDBText;
    ppDBText7: TppDBText;
    ppDBText8: TppDBText;
    ppDBText9: TppDBText;
    ppDBText10: TppDBText;
    ppDBText11: TppDBText;
    ppDBText12: TppDBText;
    ppDBText13: TppDBText;
    ppDBText14: TppDBText;
    ppDBText15: TppDBText;
    ppDBText16: TppDBText;
    ppDBText17: TppDBText;
    ppDBText18: TppDBText;
    ppDBText19: TppDBText;
    ppDBText20: TppDBText;
    ppDBText21: TppDBText;
    ppDBText22: TppDBText;
    ppDBText23: TppDBText;
    ppDBText24: TppDBText;
    ppDBText25: TppDBText;
    ppDBText26: TppDBText;
    ppDBText27: TppDBText;
    ppDBText28: TppDBText;
    ppDBText29: TppDBText;
    ppDBText30: TppDBText;
    ppLabel2: TppLabel;
    ppLabel7: TppLabel;
    ppLabel8: TppLabel;
    ppLabel9: TppLabel;
    ppLabel10: TppLabel;
    ppLabel11: TppLabel;
    ppLabel12: TppLabel;
    ppLabel13: TppLabel;
    ppLabel14: TppLabel;
    ppLabel30: TppLabel;
    ppLabel3: TppLabel;
    ppLabel4: TppLabel;
    ppLabel5: TppLabel;
    ppLabel6: TppLabel;
    ppLabel1: TppLabel;
    ppLabel15: TppLabel;
    ppLabel16: TppLabel;
    ppLabel17: TppLabel;
    ppLabel18: TppLabel;
    ppLabel19: TppLabel;
    ppLabel20: TppLabel;
    ppLabel21: TppLabel;
    ppLabel22: TppLabel;
    ppLabel23: TppLabel;
    ppLabel24: TppLabel;
    ppLabel25: TppLabel;
    ppLabel26: TppLabel;
    ppLabel27: TppLabel;
    ppLabel28: TppLabel;
    ppFooterBand1: TppFooterBand;
    ppGroup1: TppGroup;
    ppGroupHeaderBand1: TppGroupHeaderBand;
    ppGroupFooterBand1: TppGroupFooterBand;
    Splitter1: TSplitter;
    Label5: TLabel;
    FilenameEdit1: TFilenameEdit;
    ppHeaderBand1: TppHeaderBand;
    ppDBText1: TppDBText;
    ppLabel29: TppLabel;
    ppLabel31: TppLabel;
    ppLabel32: TppLabel;
    ppLabel33: TppLabel;
    ppLabel34: TppLabel;
    ppLabel35: TppLabel;
    ppLabel36: TppLabel;
    ppSystemVariable1: TppSystemVariable;
    ppLabel37: TppLabel;
    ppSystemVariable2: TppSystemVariable;
    ppLine1: TppLine;
    ToolButton2: TToolButton;
    procedure clockdriverdirChange(Sender: TObject);
    procedure SpeedButton1Click(Sender: TObject);
    procedure FormCreate(Sender: TObject);
    procedure FormCloseQuery(Sender: TObject; var CanClose: Boolean);
    procedure FormClose(Sender: TObject; var Action: TCloseAction);
    procedure textfiledirChange(Sender: TObject);
    procedure DBNavigator1Click(Sender: TObject; Button: TNavigateBtn);
    procedure ToolButton4Click(Sender: TObject);
    procedure FormKeyPress(Sender: TObject; var Key: Char);
    procedure FormKeyUp(Sender: TObject; var Key: Word;
      Shift: TShiftState);
    procedure ppReport1BeforePrint(Sender: TObject);
    procedure tbnprintClick(Sender: TObject);
    procedure ppReport1PreviewFormCreate(Sender: TObject);
    procedure FilenameEdit1Change(Sender: TObject);
    procedure ToolButton2Click(Sender: TObject);
    procedure FormShow(Sender: TObject);
  private
    { Private declarations }
  public
    { Public declarations }
    procedure Sample;
  end;

var
  Formatdclock: TFormatdclock;

implementation

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

procedure TFormatdclock.clockdriverdirChange(Sender: TObject);
begin
  datamod.adoclock.Edit;
  datamod.adoclockdriverdir.asstring := Trim(clockdriverdir.Text);
end;

procedure TFormatdclock.SpeedButton1Click(Sender: TObject);
begin
  WinExec(Pchar(DBEdit3.text),SW_SHOW);
end;

procedure TFormatdclock.FormCreate(Sender: TObject);
begin
 with datamod do
 begin
  adoclock.close;
  adoclock.CommandText:='select * from atd09010 ';
  adoclock.open;
  if adoclock.Locate('clockname',adoclockclockname.asstring,[]) then
 // begin
   ///  clockdriverdir.Text:=adoclockdriverdir.asstring;
    // textfiledir.text:=adoclocktextfiledir.asstring;
 // end;
 end;
end;

procedure TFormatdclock.FormCloseQuery(Sender: TObject;
  var CanClose: Boolean);
var
   setclock:integer;
begin
  with datamod do
  begin
    if adoclock.Modified then
    begin
      setclock:=Application.MessageBox('确定要退出自定义卡钟?是否保存最后的修改?','退出',
      mb_yesnocancel+mb_iconQuestion);
      if Setclock=idyes then
      begin
        adoclock.Post;
        Canclose:=true;
      end else
      if Setclock=idno then
      begin
        adoclock.CancelUpdates;
        Canclose:=true;
      end else
      if Setclock=idcancel then
      Canclose:=False;
    end;
  end;
end;

procedure TFormatdclock.FormClose(Sender: TObject;
  var Action: TCloseAction);
begin
 // if datamod.adoclockYndefault.Value = False then
 // begin
  // if Application.MessageBox(PCHAR('['+DATAMOd.adoclockclockname.asstring+']卡钟不是默认的卡钟!是否设为默认卡钟?'),'默认卡钟',mb_yesno+mb_iconQuestion)=idyes then
  // begin
   //  datamod.adoclock.Edit;
   //  datamod.adoclockyndefault.Value :=true;
    // datamod.adoclock.Post;
  //end;
 // end;
  formatdclock:=nil;
  action:=cafree;
end;

procedure TFormatdclock.textfiledirChange(Sender: TObject);
begin
  datamod.adoclock.Edit;
  datamod.adoclocktextfiledir.asstring := Trim(textfiledir.Text);
end;

procedure TFormatdclock.DBNavigator1Click(Sender: TObject;
  Button: TNavigateBtn);
begin
 with datamod do
 begin
  clockdriverdir.Text:=adoclockdriverdir.asstring;
  textfiledir.text:=adoclocktextfiledir.asstring;
 end;
end;

procedure TFormatdclock.ToolButton4Click(Sender: TObject);
begin
  close;
end;

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

procedure TFormatdclock.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_contents0016');
  end;
end;

procedure TFormatdclock.ppReport1BeforePrint(Sender: TObject);
begin
  pplabel31.Caption :=companyname1;
  pplabel35.Caption :=pubworkname;
end;

procedure TFormatdclock.tbnprintClick(Sender: TObject);
begin
  ppReport1.print;
end;

procedure TFormatdclock.ppReport1PreviewFormCreate(Sender: TObject);
begin
tppReport(Sender).PreviewForm.WindowState:=wsMaximized;
TppViewer(tppReport(Sender).PreviewForm.Viewer).ZoomSetting := zsWholePage;
end;

procedure TFormatdclock.Sample;
var 
    i:integer;
    clock:Array of char;
begin
  with datamod do
  begin
    try
     if (dbedit2.text<>'') and (dbedit2.text<>'0') then
     begin
        setlength(clock,strtoint(dbedit2.text));
        for i:=1 to strtoint(dbedit2.text) do
          clock[i]:='-';
        if (dbedit5.text<>'') and (dbedit5.text<>'0') and
           (dbedit5.text<>'') and (dbedit5.text<>'0') then
        for i:=0 to strtoint(dbedit5.text)-1 do
           clock[i+strtoint(dbedit4.text)]:='C';
        if (dbedit8.text<>'') and (dbedit8.text<>'0') and
           (dbedit7.text<>'') and (dbedit7.text<>'0') then
        for i:=0 to strtoint(dbedit8.text)-1 do
           clock[i+strtoint(dbedit7.text)]:='Y';
        if (dbedit6.text<>'') and (dbedit6.text<>'0') then
        begin
           clock[strtoint(dbedit6.text)+1]:='M';
           clock[strtoint(dbedit6.text)+2]:='M';
        end;
        if (dbedit13.text<>'') and (dbedit13.text<>'0') then
        begin
           clock[strtoint(dbedit13.text)+1]:='D';
           clock[strtoint(dbedit13.text)+2]:='D';
        end;
        if (dbedit10.text<>'') and (dbedit10.text<>'0') then
        begin
           clock[strtoint(dbedit10.text)+1]:='H';
           clock[strtoint(dbedit10.text)+2]:='H';
        end;
        if (dbedit9.text<>'') and (dbedit9.text<>'0') then
        begin
           clock[strtoint(dbedit9.text)+1]:='M';
           clock[strtoint(dbedit9.text)+2]:='M';
        end;
        if (dbedit14.text<>'') and (dbedit14.text<>'0') and
           (dbedit11.text<>'') and (dbedit11.text<>'0') then
        for i:=0 to strtoint(dbedit14.text)-1 do
           clock[i+strtoint(dbedit11.text)]:='I';
        if (dbedit26.text<>'') and (dbedit26.text<>'0') and
           (dbedit25.text<>'') and (dbedit25.text<>'0') then
        for i:=0 to strtoint(dbedit26.text)-1 do
           clock[i+strtoint(dbedit25.text)+1]:='S';
        adoclock.edit;
        adoclockmemo.asstring:='';
        if strtoint(trim(dbedit2.text))>0 then
        for i:=1 to strtoint(dbedit2.text) do
        adoclockmemo.asstring:=adoclockmemo.asstring+clock[i];
       clock:=nil;
     end;
    except
    end;
  end;
end;

procedure TFormatdclock.FilenameEdit1Change(Sender: TObject);
begin
  datamod.adoclockreadprogname.AsString:=Filenameedit1.Text;
end;

procedure TFormatdclock.ToolButton2Click(Sender: TObject);
begin
  if not assigned(formclocklb) then
  Formclocklb:=TFormclocklb.create(application);
  Formclocklb.ShowModal;
end;

procedure TFormatdclock.FormShow(Sender: TObject);
begin
//if (dbedit2.text<>'') and (dbedit5.text<>'') and(dbedit6.text<>'')
//and(dbedit8.text<>'') and(dbedit9.text<>'') and(dbedit10.text<>'') and(dbedit13.text<>'')
//and(dbedit14.text<>'') and (dbedit26.text<>'') then   sample;
end;

end.

⌨️ 快捷键说明

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