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): TStrings; class function LoadFromStringsQuery(AQuery: TFDQuery): TStrings; class function xGetObjsPartItemList(AQuery: TFDQuery; kind,name: string): TList; class function LoadFromQuery(AQuery: TFDQuery): TList; 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): TStrings; var kindVal: string; begin Result := TStringList.Create; while not AQuery.Eof do begin kindVal := AQuery.FieldByName('Kind').AsString; Result.Add(kindVal); AQuery.Next; end; 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 Äõ¸® ½ÇÇà ¿À·ù: ' + E.Message); end; Result := LoadFromQuery(AQuery); end; class function TPartItemMst.xGetUniqStrsPartItemKind( AQuery: TFDQuery): TStrings; var sql: string; begin Result := nil; sql := 'SELECT DISTINCT obj0."Kind" FROM "PartItemMst"obj0'; sql := sql + ' WHERE obj0."IsValid"=' + xAddSqlMark('t'); try AQuery.Close; AQuery.SQL.Text := sql; AQuery.Open; except on E: Exception do ShowMessage('xGetUniqStrsPartItemKind Äõ¸® ½ÇÇà ¿À·ù: ' + E.Message); end; Result := LoadFromStringsQuery(AQuery); end; end.