SmartFactory_NEOL/SOURCE/Agent,Kiosk/Lib/base/EmpMst.pas
2026-09-04 14:08:41 +09:00

233 lines
7.7 KiB
ObjectPascal
Raw Permalink Blame History

unit EmpMst;
interface
uses
Windows, Messages, SysUtils, Classes, Graphics, Controls, Forms, Dialogs,
wItem,
FireDAC.Stan.Intf,
FireDAC.Stan.Option, FireDAC.Stan.Error, FireDAC.UI.Intf, FireDAC.Phys.Intf,
FireDAC.Stan.Def, FireDAC.Stan.Pool, FireDAC.Stan.Async, FireDAC.Phys,
FireDAC.Stan.Param, FireDAC.DatS, FireDAC.DApt.Intf, FireDAC.DApt,
FireDAC.Phys.PGDef, FireDAC.VCLUI.Wait, FireDAC.Comp.UI, FireDAC.Phys.PG,
Data.DB, FireDAC.Comp.DataSet, FireDAC.Comp.Client;
type
TEmpMst = class(TwItem)
private
{ Private declarations }
FOrdCode: string;
FPosition: string;
FRole: string;
FInDate: string;
FOutDate: string;
FStatus: string;
FEmpTelNum: string;
FEmpAddress: string;
FDescriptions: string;
FEmpID: string;
FEmpPwd: string;
FEngCode: string;
FEmgTelNum: string;
FRelationship: string;
FTeamName: string;
FPermissions: string;
FIsWebAdmin: string;
FEMail: string;
FIsAlarm: string;
protected
{ Protected declarations }
public
{ Public declarations }
class function LoadFromQuery(AQuery: TFDQuery): TList;
class function xGetStrSqlEmpMstList(AQuery: TFDQuery; status, team, empName: string): TList;
class function xAddSqlMark(velStr: string): string;
class function xGetStrsEmpMstAllNames(AQuery: TFDQuery; column: string): TStrings;
class function LoadFromStringsQuery(AQuery: TFDQuery; column: string): TStrings;
class function xAddSqlDoubleMark(velStr: String): String;
class function xGetStrsDistinctTeamName(AQuery: TFDQuery; column: string): TStrings;
class function xGetStrEmpAutoNumber(AQuery: TFDQuery): string;
published
{ Published declarations }
property OrdCode: string read FOrdCode write FOrdCode;
property Position: string read FPosition write FPosition;
property Role: string read FRole write FRole;
property InDate: string read FInDate write FInDate;
property OutDate: string read FOutDate write FOutDate;
property Status: string read FStatus write FStatus;
property EmpTelNum: string read FEmpTelNum write FEmpTelNum;
property EmpAddress: string read FEmpAddress write FEmpAddress;
property Descriptions: string read FDescriptions write FDescriptions;
property EmpID: string read FEmpID write FEmpID;
property EmpPwd: string read FEmpPwd write FEmpPwd;
property EngCode: string read FEngCode write FEngCode;
property EmgTelNum: string read FEmgTelNum write FEmgTelNum;
property Relationship: string read FRelationship write FRelationship;
property TeamName: string read FTeamName write FTeamName;
property Permissions: string read FPermissions write FPermissions;
property IsWebAdmin: string read FIsWebAdmin write FIsWebAdmin;
property EMail: string read FEMail write FEMail;
property IsAlarm: string read FIsAlarm write FIsAlarm;
end;
implementation
{ TEmpMst }
class function TEmpMst.LoadFromQuery(AQuery: TFDQuery): TList;
var
curEmp: TEmpMst;
begin
Result := TList.Create;
while not AQuery.Eof do begin
curEmp := TEmpMst.Create(nil);
curEmp.OBID := AQuery.FieldByName('OBID').AsString;
curEmp.Name := AQuery.FieldByName('Name').AsString;
curEmp.wClassName := AQuery.FieldByName('wClassName').AsString;
curEmp.CreateDate := AQuery.FieldByName('CreateDate').AsString;
curEmp.CreateTime := FormatDateTime('hh:nn:ss', AQuery.FieldByName('CreateTime').AsDateTime);
curEmp.CreatorID := AQuery.FieldByName('CreatorID').AsString;
curEmp.IsValid := AQuery.FieldByName('IsValid').AsString;
curEmp.LcStatus := AQuery.FieldByName('LcStatus').AsString;
curEmp.OrdCode := AQuery.FieldByName('OrdCode').AsString;
curEmp.Position := AQuery.FieldByName('Position').AsString;
curEmp.Role := AQuery.FieldByName('Role').AsString;
curEmp.InDate := AQuery.FieldByName('InDate').AsString;
curEmp.OutDate := AQuery.FieldByName('OutDate').AsString;
curEmp.Status := AQuery.FieldByName('Status').AsString;
curEmp.EmpTelNum := AQuery.FieldByName('EmpTelNum').AsString;
curEmp.EmpAddress := AQuery.FieldByName('EmpAddress').AsString;
curEmp.Descriptions := AQuery.FieldByName('Descriptions').AsString;
curEmp.EmpID := AQuery.FieldByName('EmpID').AsString;
curEmp.EmpPwd := AQuery.FieldByName('EmpPwd').AsString;
curEmp.EngCode := AQuery.FieldByName('EngCode').AsString;
curEmp.EmgTelNum := AQuery.FieldByName('EmgTelNum').AsString;
curEmp.Relationship := AQuery.FieldByName('Relationship').AsString;
curEmp.TeamName := AQuery.FieldByName('TeamName').AsString;
curEmp.Permissions := AQuery.FieldByName('Permissions').AsString;
curEmp.IsWebAdmin := AQuery.FieldByName('IsWebAdmin').AsString;
curEmp.EMail := AQuery.FieldByName('EMail').AsString;
curEmp.IsAlarm := AQuery.FieldByName('IsAlarm').AsString;
Result.Add(curEmp);
AQuery.Next;
end;
end;
class function TEmpMst.LoadFromStringsQuery(AQuery: TFDQuery;
column: string): TStrings;
var
valStr: string;
begin
Result := TStringList.Create;
while not AQuery.Eof do begin
valStr := AQuery.FieldByName(column).AsString;
Result.Add(valStr);
AQuery.Next;
end;
end;
class function TEmpMst.xAddSqlDoubleMark(velStr: String): String;
begin
Result := '';
Result := '"' + velStr + '"';
end;
class function TEmpMst.xAddSqlMark(velStr: string): string;
begin
Result := '';
Result := '''' + velStr + '''';
end;
class function TEmpMst.xGetStrEmpAutoNumber(AQuery: TFDQuery): string;
var
num: Integer;
sql, column: string;
resStrs: TStrings;
begin
Result := '';
sql := 'SELECT COUNT(*) FROM "EmpMst"';
try
AQuery.Close;
AQuery.SQL.Text := sql;
AQuery.Open;
except
on E: Exception do ShowMessage('xGetStrEmpAutoNumber <20><><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD>: ' + E.Message);
end;
column := 'COUNT';
resStrs := LoadFromStringsQuery(AQuery, column);
if resStrs.Count > 0 then begin
num := StrToIntDef(resStrs.Strings[0],1);
num := num + 1;
Result := IntToStr(num);
end;
resStrs.Free;
end;
class function TEmpMst.xGetStrsDistinctTeamName(AQuery: TFDQuery; column: string): TStrings;
var
sql: string;
begin
Result := nil;
sql := 'SELECT DISTINCT ' + xAddSqlDoubleMark(column) + ' FROM "EmpLog"';
sql := sql + ' WHERE "IsValid"=' + xAddSqlMark('t');
try
AQuery.Close;
AQuery.SQL.Text := sql;
AQuery.Open;
except
on E: Exception do ShowMessage('xGetStrsDistinctTeamName <20><><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD>: ' + E.Message);
end;
Result := LoadFromStringsQuery(AQuery, column);
end;
class function TEmpMst.xGetStrsEmpMstAllNames(AQuery: TFDQuery; column: string): TStrings;
var
sql: string;
begin
Result := nil;
sql := 'SELECT ' + xAddSqlDoubleMark(column) + ' FROM "EmpMst"';
sql := sql + ' WHERE "IsValid"=' + xAddSqlMark('t');
try
AQuery.Close;
AQuery.SQL.Text := sql;
AQuery.Open;
except
on E: Exception do ShowMessage('xGetStrsEmpMstAllNames <20><><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD>: ' + E.Message);
end;
Result := LoadFromStringsQuery(AQuery, column);
end;
class function TEmpMst.xGetStrSqlEmpMstList(AQuery: TFDQuery; status, team,
empName: string): TList;
var
sql: string;
begin
Result := nil;
sql := 'SELECT * FROM "EmpMst"';
sql := sql + ' WHERE "IsValid"=' + xAddSqlMark('t');
sql := sql + ' AND "Permissions"<>' + xAddSqlMark('system');
if Length(Trim(team)) > 0 then sql := sql + ' AND "TeamName"=' + xAddSqlMark(team);
if Length(Trim(empName)) > 0 then sql := sql + ' AND "Name"=' + xAddSqlMark(empName);
if Length(Trim(status)) > 0 then sql := sql + ' AND "Status"=' + xAddSqlMark(status);
sql := sql + ' ORDER BY "OrdCode"';
try
AQuery.Close;
AQuery.SQL.Text := sql;
AQuery.Open;
except
on E: Exception do ShowMessage('xGetStrSqlEmpMstList <20><><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD>: ' + E.Message);
end;
Result := LoadFromQuery(AQuery);
end;
end.