unit GroupMst; 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 TGroupMst = class(TwItem) private { Private declarations } FOrdCode: string; FDescriptions: string; protected { Protected declarations } public { Public declarations } class function xGetStrsDistinctGroupName(AQuery: TFDQuery): TStrings; class function xAddSqlMark(velStr: string): string; class function LoadFromStringsQuery(AQuery: TFDQuery; column: string): TStrings; class function xGetObjsGroupMstInfo(AQuery: TFDQuery; nameStr: string): TList; class function LoadFromQuery(AQuery: TFDQuery): TList; published { Published declarations } property OrdCode: string read FOrdCode write FOrdCode; property Descriptions: string read FDescriptions write FDescriptions; end; implementation { TGroupMst } class function TGroupMst.LoadFromQuery(AQuery: TFDQuery): TList; var curGroup: TGroupMst; begin Result := TList.Create; while not AQuery.Eof do begin curGroup := TGroupMst.Create(nil); curGroup.OBID := AQuery.FieldByName('OBID').AsString; curGroup.Name := AQuery.FieldByName('Name').AsString; curGroup.wClassName := AQuery.FieldByName('wClassName').AsString; curGroup.CreateDate := AQuery.FieldByName('CreateDate').AsString; curGroup.CreateTime := FormatDateTime('hh:nn:ss', AQuery.FieldByName('CreateTime').AsDateTime); curGroup.CreatorID := AQuery.FieldByName('CreatorID').AsString; curGroup.IsValid := AQuery.FieldByName('IsValid').AsString; curGroup.LcStatus := AQuery.FieldByName('LcStatus').AsString; curGroup.OrdCode := AQuery.FieldByName('OrdCode').AsString; curGroup.Descriptions := AQuery.FieldByName('Descriptions').AsString; Result.Add(curGroup); AQuery.Next; end; end; class function TGroupMst.LoadFromStringsQuery(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 TGroupMst.xAddSqlMark(velStr: string): string; begin Result := ''; Result := '''' + velStr + ''''; end; class function TGroupMst.xGetObjsGroupMstInfo(AQuery: TFDQuery; nameStr: string): TList; var sql: string; begin Result := nil; sql := 'SELECT * FROM "GroupMst"'; sql := sql + ' WHERE "IsValid"=' + xAddSqlMark('t'); if Length(Trim(nameStr)) > 0 then sql := sql + ' AND "Name"=' + xAddSqlMark(nameStr); sql := sql + ' ORDER BY "Name"'; try AQuery.Close; AQuery.SQL.Text := sql; AQuery.Open; except on E: Exception do ShowMessage('xGetObjsGroupMstInfo Äõ¸® ½ÇÇà ¿À·ù: ' + E.Message); end; Result := LoadFromQuery(AQuery); end; class function TGroupMst.xGetStrsDistinctGroupName(AQuery: TFDQuery): TStrings; var sql, column: string; begin Result := nil; sql := 'SELECT DISTINCT "Name" FROM "GroupMst"'; sql := sql + ' WHERE "IsValid"=' + xAddSqlMark('t'); try AQuery.Close; AQuery.SQL.Text := sql; AQuery.Open; except on E: Exception do ShowMessage('xGetStrsDistinctGroupName Äõ¸® ½ÇÇà ¿À·ù: ' + E.Message); end; column := 'Name'; Result := LoadFromStringsQuery(AQuery, column); end; end.