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

133 lines
3.9 KiB
ObjectPascal
Raw Blame History

unit PartItemMst;
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
TPartItemMst = class(TwItem)
private
{ Private declarations }
FKind: string;
FDescriptions: string;
protected
{ Protected declarations }
public
{ Public declarations }
class function xAddSqlMark(velStr: string): string;
class function xGetUniqStrsPartItemKind(AQuery: TFDQuery; colName: string): TStrings;
class function LoadFromStringsQuery(AQuery: TFDQuery; colName: string): TStrings;
class function xGetObjsPartItemList(AQuery: TFDQuery; kind,name: string): TList;
class function LoadFromQuery(AQuery: TFDQuery): TList;
class function xAddSqlDoubleMark(velStr: String): String;
published
{ Published declarations }
property Kind: string read FKind write FKind;
property Descriptions: string read FDescriptions write FDescriptions;
end;
implementation
{ TPartItemMst }
class function TPartItemMst.LoadFromQuery(AQuery: TFDQuery): TList;
var
curPart: TPartItemMst;
begin
Result := TList.Create;
while not AQuery.Eof do begin
curPart := TPartItemMst.Create(nil);
curPart.OBID := AQuery.FieldByName('OBID').AsString;
curPart.Name := AQuery.FieldByName('Name').AsString;
curPart.wClassName := AQuery.FieldByName('wClassName').AsString;
curPart.CreateDate := AQuery.FieldByName('CreateDate').AsString;
curPart.CreateTime := FormatDateTime('hh:nn:ss', AQuery.FieldByName('CreateTime').AsDateTime);
curPart.CreatorID := AQuery.FieldByName('CreatorID').AsString;
curPart.IsValid := AQuery.FieldByName('IsValid').AsString;
curPart.LcStatus := AQuery.FieldByName('LcStatus').AsString;
curPart.Kind := AQuery.FieldByName('Kind').AsString;
curPart.Descriptions := AQuery.FieldByName('Descriptions').AsString;
Result.Add(curPart);
AQuery.Next;
end;
end;
class function TPartItemMst.LoadFromStringsQuery(AQuery: TFDQuery; colName: string): TStrings;
var
kindVal: string;
begin
Result := TStringList.Create;
while not AQuery.Eof do begin
kindVal := AQuery.FieldByName(colName).AsString;
Result.Add(kindVal);
AQuery.Next;
end;
end;
class function TPartItemMst.xAddSqlDoubleMark(velStr: String): String;
begin
Result := '';
Result := '"' + velStr + '"';
end;
class function TPartItemMst.xAddSqlMark(velStr: string): string;
begin
Result := '';
Result := '''' + velStr + '''';
end;
class function TPartItemMst.xGetObjsPartItemList(AQuery: TFDQuery; kind,
name: string): TList;
var
sql: string;
begin
Result := nil;
sql := 'SELECT obj0.* FROM "PartItemMst"obj0';
sql := sql + ' WHERE obj0."IsValid"=' + xAddSqlMark('t');
if Length(kind) > 0 then sql := sql + ' AND obj0."Kind"=' + xAddSqlMark(kind);
if Length(name) > 0 then sql := sql + ' AND obj0."Name"=' + xAddSqlMark(name);
try
AQuery.Close;
AQuery.SQL.Text := sql;
AQuery.Open;
except
on E: Exception do ShowMessage('xGetObjsPartItemList <20><><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD>: ' + E.Message);
end;
Result := LoadFromQuery(AQuery);
end;
class function TPartItemMst.xGetUniqStrsPartItemKind(
AQuery: TFDQuery; colName: string): TStrings;
var
sql: string;
begin
Result := nil;
sql := 'SELECT DISTINCT ' + xAddSqlDoubleMark(colName) + ' FROM "PartItemMst"';
sql := sql + ' WHERE "IsValid"=' + xAddSqlMark('t');
try
AQuery.Close;
AQuery.SQL.Text := sql;
AQuery.Open;
except
on E: Exception do ShowMessage('xGetUniqStrsPartItemKind <20><><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD>: ' + E.Message);
end;
Result := LoadFromStringsQuery(AQuery, colName);
end;
end.