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 + -
显示快捷键?