SmartFactory_NEOL/SOURCE/Lib/base/MachProcessData.pas
2026-09-04 14:06:10 +09:00

152 lines
4.9 KiB
ObjectPascal
Raw Blame History

unit MachProcessData;
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
TMachProcessData = class(TwItem)
private
{ Private declarations }
FOrdDate: string;
FRawMaterial: string;
FMachTemp: string;
FHoldTime: string;
FPower1: string;
FPower2: string;
FDensity1: string;
FDensity2: string;
FDescriptions: string;
protected
{ Protected declarations }
public
{ Public declarations }
class function xGetObjsMachProcessData(AQuery: TFDQuery; nameStr, stDate, enDate: string): TList;
class function xAddSqlMark(velStr: string): string;
class function LoadFromQuery(AQuery: TFDQuery): TList;
class function xGetStrsDistinctMachName(AQuery: TFDQuery): TStrings;
class function LoadFromStringQuery(AQuery: TFDQuery; column: string): TStrings;
published
{ Published declarations }
property OrdDate: string read FOrdDate write FOrdDate;
property RawMaterial: string read FRawMaterial write FRawMaterial;
property MachTemp: string read FMachTemp write FMachTemp;
property HoldTime: string read FHoldTime write FHoldTime;
property Power1: string read FPower1 write FPower1;
property Power2: string read FPower2 write FPower2;
property Density1: string read FDensity1 write FDensity1;
property Density2: string read FDensity2 write FDensity2;
property Descriptions: string read FDescriptions write FDescriptions;
end;
implementation
{ TMachProcessData }
class function TMachProcessData.LoadFromQuery(AQuery: TFDQuery): TList;
var
curProc: TMachProcessData;
begin
Result := TList.Create;
while not AQuery.Eof do begin
curProc := TMachProcessData.Create(nil);
curProc.OBID := AQuery.FieldByName('OBID').AsString;
curProc.Name := AQuery.FieldByName('Name').AsString;
curProc.wClassName := AQuery.FieldByName('wClassName').AsString;
curProc.CreateDate := AQuery.FieldByName('CreateDate').AsString;
curProc.CreateTime := FormatDateTime('hh:nn:ss', AQuery.FieldByName('CreateTime').AsDateTime);
curProc.CreatorID := AQuery.FieldByName('CreatorID').AsString;
curProc.IsValid := AQuery.FieldByName('IsValid').AsString;
curProc.LcStatus := AQuery.FieldByName('LcStatus').AsString;
curProc.OrdDate := AQuery.FieldByName('OrdDate').AsString;
curProc.RawMaterial := AQuery.FieldByName('RawMaterial').AsString;
curProc.MachTemp := AQuery.FieldByName('MachTemp').AsString;
curProc.HoldTime := AQuery.FieldByName('HoldTime').AsString;
curProc.Power1 := AQuery.FieldByName('Power1').AsString;
curProc.Power2 := AQuery.FieldByName('Power2').AsString;
curProc.Density1 := AQuery.FieldByName('Density1').AsString;
curProc.Density2 := AQuery.FieldByName('Density2').AsString;
curProc.Descriptions := AQuery.FieldByName('Descriptions').AsString;
Result.Add(curProc);
AQuery.Next;
end;
end;
class function TMachProcessData.LoadFromStringQuery(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 TMachProcessData.xAddSqlMark(velStr: string): string;
begin
Result := '';
Result := '''' + velStr + '''';
end;
class function TMachProcessData.xGetObjsMachProcessData(AQuery: TFDQuery; nameStr, stDate, enDate: string): TList;
var
sql: string;
begin
Result := nil;
sql := 'SELECT * FROM "MachProcessData"';
sql := sql + ' WHERE "IsValid"=' + xAddSqlMark('t');
if Length(Trim(nameStr)) > 0 then sql := sql + ' AND "Name"=' + xAddSqlMark(nameStr);
if Length(Trim(stDate)) > 0 then begin
sql := sql + ' AND "OrdDate">=' + xAddSqlMark(stDate);
sql := sql + ' AND "OrdDate"<=' + xAddSqlMark(enDate);
end;
sql := sql + ' ORDER BY "OrdDate" DESC, "Name"';
try
AQuery.Close;
AQuery.SQL.Text := sql;
AQuery.Open;
except
on E: Exception do ShowMessage('xGetObjsMachProcessData <20><><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD>: ' + E.Message);
end;
Result := LoadFromQuery(AQuery);
end;
class function TMachProcessData.xGetStrsDistinctMachName(
AQuery: TFDQuery): TStrings;
var
sql, column: string;
begin
Result := nil;
sql := 'SELECT DISTINCT "Name" FROM "MachProcessData"';
sql := sql + ' WHERE "IsValid"=' + xAddSqlMark('t');
try
AQuery.Close;
AQuery.SQL.Text := sql;
AQuery.Open;
except
on E: Exception do ShowMessage('xGetStrsDistinctMachName <20><><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD>: ' + E.Message);
end;
column := 'Name';
Result := LoadFromStringQuery(AQuery, column);
end;
end.