129 lines
4.8 KiB
Plaintext
129 lines
4.8 KiB
Plaintext
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);
|
||
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.
|
||
|