📄 dest.tmp
字号:
unit rl01p;
interface
uses
Windows, Messages, SysUtils,DateUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, Grids, DBGrids, ComCtrls, StdCtrls, Spin, Buttons, ToolWin,
ExtCtrls, ImgList, DB, DBTables;
type
Trl01f = class(TForm)
DBGrid1: TDBGrid;
StatusBar1: TStatusBar;
CoolBar1: TCoolBar;
spexit: TSpeedButton;
spdele: TSpeedButton;
Spnew: TSpeedButton;
DTPicker1: TDateTimePicker;
SpinButton1: TSpinButton;
CkBox: TCheckBox;
procedure DTPicker1Change(Sender: TObject);
procedure SpinButton1DownClick(Sender: TObject);
procedure SpinButton1UpClick(Sender: TObject);
procedure spexitClick(Sender: TObject);
procedure FormShow(Sender: TObject);
procedure CkBoxClick(Sender: TObject);
procedure SpnewClick(Sender: TObject);
procedure spdeleClick(Sender: TObject);
procedure FormClose(Sender: TObject; var Action: TCloseAction);
private
{ Private declarations }
public
fDate:TDateTime;
fCkDoNothing:boolean;
procedure RefreshForm;
{ Public declarations }
end;
var
rl01f: Trl01f;
implementation
uses datap,global;
{$R *.dfm}
procedure Trl01f.RefreshForm;
begin
try
if datamod.f222.State=dsInactive then
datamod.f222.Open;
if datamod.f224.State=dsInactive then
begin
datamod.f224.ParamByName('DATE').AsString:=DatetoStr(date());
datamod.f224.Open;
end;
except
PostMessage(self.Handle,WM_CLOSE,0,0);
ShowMessage('错误!打开数据库表时产生错误!');
end;
if datamod.f222.Locate('DATE',fDate,[]) then
begin
self.fCkDoNothing:=true;
self.CkBox.Checked:=true;
self.fCkDoNothing:=false;
end
else
begin
self.fCkDoNothing:=true;
self.CkBox.Checked:=false;
self.fCkDoNothing:=false;
end;
datamod.f224.ApplyUpdates;
datamod.f224.CommitUpdates;
datamod.f224.Close;
datamod.f224.ParamByName('DATE').AsString:=DateToStr(fDate);
datamod.f224.Open;
datamod.f224.First;
if datamod.f224.IsEmpty then
dbGrid1.Enabled:=false
else
dbGrid1.Enabled:=true;
self.StatusBar1.Panels[0].Text:='当前用户:'+puser;
self.StatusBar1.Panels[1].Text:='登录时间:'+logintime;
self.StatusBar1.Panels[2].Text:='总记录数:'+inttostr(datamod.f224.RecordCount);
end;
procedure Trl01f.DTPicker1Change(Sender: TObject);
begin
Self.fDate:=self.DTPicker1.DateTime;
self.RefreshForm;
end;
procedure Trl01f.SpinButton1DownClick(Sender: TObject);
begin
self.fDate:=self.fDate-1;
self.DTPicker1.DateTime:=self.fDate;
self.RefreshForm;
end;
procedure Trl01f.SpinButton1UpClick(Sender: TObject);
begin
self.fDate:=self.fDate+1;
self.DTPicker1.DateTime:=self.fDate;
self.RefreshForm;
end;
procedure Trl01f.spexitClick(Sender: TObject);
begin
Close;
end;
procedure Trl01f.FormShow(Sender: TObject);
begin
fDate:=Date();
self.DTPicker1.DateTime:=fDate;
fCkDoNothing:=false;
try
datamod.qtmp.close;
datamod.qtmp.SQL.Clear;
datamod.qtmp.SQL.Add('UPDATE basedept SET TMP=''本厂'' WHERE TYPE<>''N''');
datamod.qtmp.ExecSQL;
datamod.qtmp.Close;
datamod.qtmp.SQL.Clear;
datamod.qtmp.SQL.Add('UPDATE basedept SET TMP=''外协厂'' WHERE TYPE=''N''');
datamod.qtmp.ExecSQL;
except
postMessage(self.Handle,WM_CLOSE,0,0);
end;
self.RefreshForm;
end;
procedure Trl01f.CkBoxClick(Sender: TObject);
var
IsError:boolean;
sql1:string;
begin
//if not self.fCkDoNothing then
//begin
if CkBox.Checked then
begin
if not datamod.f222.Locate('DATE',fDate,[]) then
begin
try
datamod.f222.Append;
datamod.f222.FieldByName('DATE').AsDateTime :=fDate;
datamod.f222.Post;
isError:=false;
except
isError:=True;
end;
if not isError then
begin
try
sql1:='DELETE f224 WHERE DATE=:DATE';
datamod.qtmp.Close;
datamod.qtmp.SQL.Clear;
datamod.qtmp.SQL.Add(sql1);
datamod.qtmp.ParamByName('DATE').AsString:=datetostr(fDate);
datamod.qtmp.ExecSQL;
except
ShowMessage('错误!删除当前日期部门行事历时产生错误!');
end;
end;
self.RefreshForm;
end;
end
else
begin
if datamod.f222.Locate('DATE',fDate,[]) then
begin
try
datamod.f222.Delete;
sql1:='DELETE f224 WHERE DATE=:DATE';
datamod.qtmp.Close;
datamod.qtmp.SQL.Clear;
datamod.qtmp.SQL.Add(sql1);
datamod.qtmp.ParamByName('DATE').AsString:=datetostr(fDate);
datamod.qtmp.ExecSQL;
sql1:='INSERT f224 (DEPT_NO,DATE,WORKTIME)'+
'SELECT DEPT_NO,:DATE AS PDATE,8 AS WORK FROM basedept';
datamod.qtmp.Close;
datamod.qtmp.SQL.Clear;
datamod.qtmp.SQL.Add(sql1);
datamod.qtmp.ParamByName('DATE').AsString:=DateToStr(fDate);
datamod.qtmp.ExecSQL;
except
end;
self.RefreshForm;
end;
end;
//end;
end;
procedure Trl01f.SpnewClick(Sender: TObject);
var
sql1:string;
begin
if not datamod.f222.Locate('DATE',fDate,[]) then
begin
try
sql1:='DELETE f224 WHERE DATE=:DATE';
datamod.qtmp.Close;
datamod.qtmp.SQL.Clear;
datamod.qtmp.SQL.Add(sql1);
datamod.qtmp.ParamByName('DATE').AsString:=datetostr(fDate);
datamod.qtmp.ExecSQL;
sql1:='INSERT f224 (DEPT_NO,DATE,WORKTIME)'+
'SELECT DEPT_NO,:DATE AS PDATE,8 AS WORK FROM basedept';
datamod.qtmp.Close;
datamod.qtmp.SQL.Clear;
datamod.qtmp.SQL.Add(sql1);
datamod.qtmp.ParamByName('DATE').AsString:=DateToStr(fDate);
datamod.qtmp.ExecSQL;
except
ShowMessage('错误!执行新增操作产生错误!');
end;
self.RefreshForm;
end
else
ShowMessage('操作失败!当前日期已设为假日,不能执行此操作!');
end;
procedure Trl01f.spdeleClick(Sender: TObject);
var
sql1:string;
begin
if not datamod.f222.Locate('DATE',fDate,[]) then
begin
try
sql1:='DELETE f224 WHERE DATE=:DATE';
datamod.qtmp.Close;
datamod.qtmp.SQL.Clear;
datamod.qtmp.SQL.Add(sql1);
datamod.qtmp.ParamByName('DATE').AsString:=datetostr(fDate);
datamod.qtmp.ExecSQL;
except
ShowMessage('错误!执行删除操作时产生错误!');
end;
self.RefreshForm;
end
else
ShowMessage('操作失败!当前日期已设为假日,不能执行此操作!');
end;
procedure Trl01f.FormClose(Sender: TObject; var Action: TCloseAction);
begin
datamod.f222.Close;
datamod.f224.Close;
end;
end.
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -