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

130 lines
4.9 KiB
ObjectPascal
Raw Blame History

unit AlarmLog;
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
TAlarmLog = class(TwItem)
private
{ Private declarations }
FMachName: string;
FMachType: string;
FSendMsg: string;
FSendMsgDate: string;
FSendMsgTime: string;
FSendMsgEmp: string;
FAlarmDate: string;
FAlarmTime: string;
FAlarmType: string;
FAlarmSeverity: string;
FAlarmStatus: string;
FSensorName: string;
protected
{ Protected declarations }
public
{ Public declarations }
class function xGetObjsAlarmList(AQuery: TFDQuery; status, mtype, mname, stDate, enDate: string): TList;
class function xAddSqlMark(velStr: string): string;
class function LoadFromQuery(AQuery: TFDQuery): TList;
published
{ Published declarations }
property MachName: string read FMachName write FMachName;
property MachType: string read FMachType write FMachType;
property SendMsg: string read FSendMsg write FSendMsg;
property SendMsgDate: string read FSendMsgDate write FSendMsgDate;
property SendMsgTime: string read FSendMsgTime write FSendMsgTime;
property SendMsgEmp: string read FSendMsgEmp write FSendMsgEmp;
property AlarmDate: string read FAlarmDate write FAlarmDate;
property AlarmTime: string read FAlarmTime write FAlarmTime;
property AlarmType: string read FAlarmType write FAlarmType;
property AlarmSeverity: string read FAlarmSeverity write FAlarmSeverity;
property AlarmStatus: string read FAlarmStatus write FAlarmStatus;
property SensorName: string read FSensorName write FSensorName;
end;
implementation
{ TAlarmLog }
class function TAlarmLog.LoadFromQuery(AQuery: TFDQuery): TList;
var
curAlarm: TAlarmLog;
begin
Result := TList.Create;
while not AQuery.Eof do begin
curAlarm := TAlarmLog.Create(nil);
curAlarm.OBID := AQuery.FieldByName('OBID').AsString;
curAlarm.Name := AQuery.FieldByName('Name').AsString;
curAlarm.wClassName := AQuery.FieldByName('wClassName').AsString;
curAlarm.CreateDate := AQuery.FieldByName('CreateDate').AsString;
curAlarm.CreateTime := FormatDateTime('hh:nn:ss', AQuery.FieldByName('CreateTime').AsDateTime);
curAlarm.CreatorID := AQuery.FieldByName('CreatorID').AsString;
curAlarm.IsValid := AQuery.FieldByName('IsValid').AsString;
curAlarm.LcStatus := AQuery.FieldByName('LcStatus').AsString;
curAlarm.MachName := AQuery.FieldByName('MachName').AsString;
curAlarm.MachType := AQuery.FieldByName('MachType').AsString;
curAlarm.SendMsg := AQuery.FieldByName('SendMsg').AsString;
curAlarm.SendMsgDate := AQuery.FieldByName('SendMsgDate').AsString;
curAlarm.SendMsgTime := AQuery.FieldByName('SendMsgTime').AsString;
curAlarm.SendMsgEmp := AQuery.FieldByName('SendMsgEmp').AsString;
curAlarm.AlarmDate := AQuery.FieldByName('AlarmDate').AsString;
curAlarm.AlarmTime := AQuery.FieldByName('AlarmTime').AsString;
curAlarm.AlarmType := AQuery.FieldByName('AlarmType').AsString;
curAlarm.AlarmSeverity := AQuery.FieldByName('AlarmSeverity').AsString;
curAlarm.AlarmStatus := AQuery.FieldByName('AlarmStatus').AsString;
curAlarm.SensorName := AQuery.FieldByName('SensorName').AsString;
Result.Add(curAlarm);
AQuery.Next;
end;
end;
class function TAlarmLog.xAddSqlMark(velStr: string): string;
begin
Result := '';
Result := '''' + velStr + '''';
end;
class function TAlarmLog.xGetObjsAlarmList(AQuery: TFDQuery; status, mtype,
mname, stDate, enDate: string): TList;
var
sql: string;
begin
Result := nil;
sql := 'SELECT * FROM "AlarmLog"';
sql := sql + ' WHERE "IsValid"=' + xAddSqlMark('t');
if Length(Trim(status)) > 0 then sql := sql + ' AND "AlarmStatus"=' + xAddSqlMark(status);
if Length(Trim(mtype)) > 0 then sql := sql + ' AND "MachType"=' + xAddSqlMark(mtype);
if Length(Trim(mname)) > 0 then sql := sql + ' AND "MachName"=' + xAddSqlMark(mname);
if Length(Trim(stDate)) > 0 then begin
// sql := sql + ' AND "AlarmDate"=>' + xAddSqlMark(stDate);
// sql := sql + ' AND "AlarmDate"=<' + xAddSqlMark(enDate);
// sql := sql + ' AND "AlarmDate"::date BETWEEN ' + xAddSqlMark(stDate) + ' AND ' + xAddSqlMark(enDate);
sql := sql + ' AND "AlarmDate" BETWEEN ' + xAddSqlMark(stDate) + ' AND ' + xAddSqlMark(enDate);
end;
sql := sql + ' ORDER BY "AlarmDate" DESC, "AlarmTime" DESC';
try
AQuery.Close;
AQuery.SQL.Text := sql;
AQuery.Open;
except
on E: Exception do ShowMessage('xGetObjsAlarmList <20><><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD>: ' + E.Message);
end;
Result := LoadFromQuery(AQuery);
end;
end.