unit SubOrder; 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 TSubOrder = class(TwItem) private { Private declarations } FOrdNum: AnsiString; FOrdCode: AnsiString; FQty: AnsiString; FUnitt: AnsiString; FUnitPrice: AnsiString; FAmount: AnsiString; protected { Protected declarations } public { Public declarations } class function xGetSubOrderLastNumber(AQuery: TFDQuery; column: string): string; class function LoadFromStringsQuery(AQuery: TFDQuery; column: string): TStrings; published { Published declarations } property OrdNum: AnsiString read FOrdNum write FOrdNum; property OrdCode: AnsiString read FOrdCode write FOrdCode; property Qty: AnsiString read FQty write FQty; property Unitt: AnsiString read FUnitt write FUnitt; property UnitPrice: AnsiString read FUnitPrice write FUnitPrice; property Amount: AnsiString read FAmount write FAmount; end; implementation { TSubOrder } class function TSubOrder.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 TSubOrder.xGetSubOrderLastNumber(AQuery: TFDQuery; column: string): string; var sql: string; resStrs: TStrings; begin Result := ''; sql := 'SELECT COUNT(*) FROM "SubOrder"'; try AQuery.Close; AQuery.SQL.Text := sql; AQuery.Open; except on E: Exception do ShowMessage('xGetSubOrderLastNumber Äõ¸® ½ÇÇà ¿À·ù: ' + E.Message); end; resStrs := LoadFromStringsQuery(AQuery, column); if resStrs.Count > 0 then begin Result := resStrs.Strings[0]; end; resStrs.Free; end; end.