152 lines
4.9 KiB
ObjectPascal
152 lines
4.9 KiB
ObjectPascal
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.
|
||
|