datamod.~pas
来自「用户名:SYSTEM 密码:空 第一次运行请先恢复数据库 DATABAS」· ~PAS 代码 · 共 166 行
~PAS
166 行
unit DataMod;
interface
uses
SysUtils, Classes, DB, ADODB,forms,Windows,ComCtrls,DateUtils,dialogs;
Type
tShortCut=Record
MenuID:String;
FuncName:String;
end;
tUserInfo=Record
UserID:String;
UserName:String;
UserPassword:String;
RightGroup:String;
ShortCut1:TShortCut;
ShortCut2:TShortCut;
ShortCut3:TShortCut;
ShortCut4:TShortCut;
end;
tRights=Record
Browser:Boolean;
AddRecord:Boolean;
Modify:Boolean;
Delete:Boolean;
end;
TItem=Class(TObject)
ItemID:string;
ItemCaption:String;
end;
TRule=Record
ID:String;
Description:String;
Value:String;
ValueType:String;
Useed:Boolean;
end;
TClassInfo=Record
In1:String;
InRange1:String;
Out1:String;
OutRange1:String;
In2:String;
InRange2:String;
Out2:String;
OutRange2:String;
In3:string;
CardTimes:Integer;
FreeTime:Integer;
StdTime:Integer;
TotalTime:Integer;
IsDay:Boolean;
end;
TDayClassInfo=Record
In1:TDateTime;
InRange1:TDateTime;
Out1:TDateTime;
OutRange1:TDateTime;
In2:TDateTime;
InRange2:TDateTime;
Out2:TDateTime;
OutRange2:TDateTime;
In3:TDateTime;
CardTimes:Integer;
IsDay:Boolean;
FreeTime:Integer;
StdTime:Integer;
TotalTime:Integer;
IsError:Boolean;
end;
type
TfDataMod = class(TDataModule)
adoQueDateTime: TADOQuery;
adocon: TADOConnection;
procedure DataModuleCreate(Sender: TObject);
private
{ Private declarations }
public
{ Public declarations }
UserInfo:TUserInfo;
Function GetCurrentTime:TDateTime;
Function TimeSubTract(const Time1:String;const Time2:String):Integer;
Function TimeAdd(Const cTime:String;const Minutes:Integer):String;
function ValidTime(const strTime: String;const AllowEmpty:Boolean): Boolean;
function DateDiff(Const StartDate:TDateTime;const EndDate:TDateTime):Integer;
Function RuleGet(Const ID:String):TRule;
Function GetMachineType(Const MachineNO:Integer):String;
Procedure ListDepartMent(Const List:TStrings);
Function GetClassInfo(Const ClassID:String):TClassInfo;
Function GetWorkersDayClassInfo(Const dDate:TDateTime;WorkerNo:String):TDayClassInfo;
Function GetCompanyName(Const Style:Integer):String;
Function SetCompanyName(Const Style:Integer;const CompanyName:String):Boolean;
procedure PersonnelTreeIni(Const TreeView:TTreeview;Const ShowWorkers:Boolean);
Function GetWorkersCardNo(const WorkerNo:String):String;
Function GetWorkersNo(Const CardNo:String):String;
Function GetWorkersDepartMentNo(const WorkerNo:String):String;
Function calcLeaveInClass(const WorkerNo: string; const StartTime, EndTime: TDateTime): Integer;
Function WorkerISLeaved(Const WorkerNo:String;Const dDate:TDateTime):Boolean;
end;
var
fDataMod: TfDataMod;
implementation
{$R *.dfm}
function TfDataMod.CalcLeaveInClass(const WorkerNo: string;
const StartTime, EndTime: TDateTime): Integer;
var
temStart,temEnd:TDateTime;
begin
Result:=0;
With TAdoQuery.Create(self) do
Begin
connection:=fdatamod.AdoCon;
ParamCheck :=False;
Sql.Add('Select * From Leave Where cWorkerNo='''+WorkerNo+'''');
Sql.Add('And ((dStartDate between Convert(DateTime,'''+formatDateTime('yyyy/mm/dd hh:mm:ss',StartTime)+''')');
Sql.Add('And Convert(dateTime,'''+formatdateTime('yyyy/mm/dd hh:mm:ss',EndTime)+''')');
Sql.Add('And dEndDate between Convert(DateTime,'''+formatDateTime('yyyy/mm/dd hh:mm:ss',StartTime)+''')');
Sql.Add('And Convert(dateTime,'''+formatdateTime('yyyy/mm/dd hh:mm:ss',EndTime)+'''))');
Sql.Add('Or (convert(dateTime,'''+FormatDateTime('yyyy/mm/dd hh:mm:ss',StartTime)+''') between dStartDate and dEndDate');
Sql.Add('Or convert(dateTime,'''+FormatDateTime('yyyy/mm/dd hh:mm:ss',EndTime)+''') between dStartDate and dEndDate)');
Sql.Add(')');
Open;
While Not Eof do
begin
if FieldByName('dStartDate').AsDateTime<StartTime then
temStart:=StartTime
else
temStart:=FieldByName('dStartDate').AsDateTime;
if FieldByName('dEndDate').AsDateTime >EndTime then
temEnd:=EndTime
else
temEnd:=FieldByName('dEndDate').AsDateTime ;
Result:=Result+fdatamod.DateDiff(temStart,temEnd);
Next;
end;
free;
end;
end;
procedure TfDataMod.DataModuleCreate(Sender: TObject);
begin
UserInfo.UserID :='';
UserInfo.UserName :='';
UserInfo.UserPassword :='';
end;
function TfDataMod.GetClassInfo(const ClassID: String): TClassInfo;
begin
Result.CardTimes:=0;
With TAdoQuery.Create(self) do
Begin
Connection:=AdoCon;
ParamCheck :=False;
Sql.Add('Select * From V_Class Where cClassNo='''+ClassID+'''');
Open;
if IsEmpty then Begin
application.MessageBox(Pchar('⊿Τт
⌨️ 快捷键说明
复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?