unit TeamMst; 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 TTeamMst = class(TwItem) private { Private declarations } FOrdNum: string; FMainTask: string; FDescriptions: string; FKind: string; FTeamCode: string; protected { Protected declarations } public { Public declarations } class function xAddSqlMark(velStr: string): string; class function xGetStrSqlTeamMstList(AQuery: TFDQuery; kindStr: string): TList; class function LoadFromQuery(AQuery: TFDQuery): TList; class function xGetStrsDistinctKind(AQuery: TFDQuery): TStrings; class function LoadFromQueryStrs(AQuery: TFDQuery): TStrings; class function xGetStrTeamMstNextNumber(AQuery: TFDQuery): string; class function LoadFromQueryStr(AQuery: TFDQuery): string; published { Published declarations } property OrdNum: string read FOrdNum write FOrdNum; property MainTask: string read FMainTask write FMainTask; property Descriptions: string read FDescriptions write FDescriptions; property Kind: string read FKind write FKind; property TeamCode: string read FTeamCode write FTeamCode; end; implementation { TTeamMst } class function TTeamMst.LoadFromQuery(AQuery: TFDQuery): TList; var curCode: TTeamMst; begin Result := TList.Create; while not AQuery.Eof do begin curCode := TTeamMst.Create(nil); curCode.OBID := AQuery.FieldByName('OBID').AsString; curCode.Name := AQuery.FieldByName('Name').AsString; curCode.wClassName := AQuery.FieldByName('wClassName').AsString; curCode.CreateDate := AQuery.FieldByName('CreateDate').AsString; curCode.CreateTime := FormatDateTime('hh:nn:ss', AQuery.FieldByName('CreateTime').AsDateTime); curCode.CreatorID := AQuery.FieldByName('CreatorID').AsString; curCode.IsValid := AQuery.FieldByName('IsValid').AsString; curCode.LcStatus := AQuery.FieldByName('LcStatus').AsString; curCode.OrdNum := AQuery.FieldByName('OrdNum').AsString; curCode.MainTask := AQuery.FieldByName('MainTask').AsString; curCode.Descriptions := AQuery.FieldByName('Descriptions').AsString; curCode.Kind := AQuery.FieldByName('Kind').AsString; curCode.TeamCode := AQuery.FieldByName('TeamCode').AsString; Result.Add(curCode); AQuery.Next; end; end; class function TTeamMst.LoadFromQueryStr(AQuery: TFDQuery): string; begin Result := ''; while not AQuery.Eof do begin Result := AQuery.FieldByName('COUNT').AsString; AQuery.Next; end; end; class function TTeamMst.LoadFromQueryStrs(AQuery: TFDQuery): TStrings; begin Result := TStringList.Create; while not AQuery.Eof do begin Result.Add(AQuery.FieldByName('Kind').AsString); AQuery.Next; end; end; class function TTeamMst.xAddSqlMark(velStr: string): string; begin Result := ''; Result := '''' + velStr + ''''; end; class function TTeamMst.xGetStrsDistinctKind(AQuery: TFDQuery): TStrings; var sql: string; begin Result := nil; sql := 'SELECT DISTINCT "Kind" FROM "TeamMst"'; sql := sql + ' WHERE "IsValid"=' + xAddSqlMark('t'); try AQuery.Close; AQuery.SQL.Text := sql; AQuery.Open; except on E: Exception do ShowMessage('xGetStrsDistinctKind Äõ¸® ½ÇÇà ¿À·ù: ' + E.Message); end; Result := LoadFromQueryStrs(AQuery); end; class function TTeamMst.xGetStrSqlTeamMstList(AQuery: TFDQuery; kindStr: string): TList; var sql: string; begin Result := nil; sql := 'SELECT * FROM "TeamMst"'; sql := sql + ' WHERE "IsValid"=' + xAddSqlMark('t'); if Length(Trim(kindStr)) > 0 then begin sql := sql + ' AND "Kind"=' + xAddSqlMark(kindStr); sql := sql + ' ORDER BY CAST("TeamCode" AS INTEGER)'; end else begin sql := sql + ' ORDER BY "OrdNum"'; end; try AQuery.Close; AQuery.SQL.Text := sql; AQuery.Open; except on E: Exception do ShowMessage('xGetStrSqlTeamMstList Äõ¸® ½ÇÇà ¿À·ù: ' + E.Message); end; Result := LoadFromQuery(AQuery); end; class function TTeamMst.xGetStrTeamMstNextNumber(AQuery: TFDQuery): string; var num: Integer; sql, tmpResult: string; begin Result := ''; sql := 'SELECT COUNT(*) FROM "TeamMst"'; sql := sql + ' WHERE "IsValid"=' + xAddSqlMark('t'); try AQuery.Close; AQuery.SQL.Text := sql; AQuery.Open; except on E: Exception do ShowMessage('xGetStrTeamMstNextNumber Äõ¸® ½ÇÇà ¿À·ù: ' + E.Message); end; tmpResult := LoadFromQueryStr(AQuery); num := StrToIntDef(tmpResult,0); num := num + 1; Result := IntToStr(num); end; end.