unit CustMst; 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 TCustMst = class(TwItem) private { Private declarations } FOrdCode: string; FKind: string; FCustTelNum: string; FCeoName: string; FConnPerson: string; FBusinessNum: string; FConnPersonTel: string; FCustAddress: string; FDescriptions: string; FKeyItems: string; FEMail: string; FBankName: string; FBankNum: string; protected { Protected declarations } public { Public declarations } class function xAddSqlMark(velStr: string): string; class function xGetStrSqlTeamMstList(AQuery: TFDQuery; kindStr, cust: string): TList; class function LoadFromQuery(AQuery: TFDQuery): TList; class function xGetStrsDistinctCustName(AQuery: TFDQuery): TStrings; class function LoadFromStringsQuery(AQuery: TFDQuery): TStrings; published { Published declarations } property OrdCode: string read FOrdCode write FOrdCode; property Kind: string read FKind write FKind; property CustTelNum: string read FCustTelNum write FCustTelNum; property CeoName: string read FCeoName write FCeoName; property ConnPerson: string read FConnPerson write FConnPerson; property BusinessNum: string read FBusinessNum write FBusinessNum; property ConnPersonTel: string read FConnPersonTel write FConnPersonTel; property CustAddress: string read FCustAddress write FCustAddress; property Descriptions: string read FDescriptions write FDescriptions; property KeyItems: string read FKeyItems write FKeyItems; property EMail: string read FEMail write FEMail; property BankName: string read FBankName write FBankName; property BankNum: string read FBankNum write FBankNum; end; implementation { TCustMst } class function TCustMst.LoadFromQuery(AQuery: TFDQuery): TList; var curCust: TCustMst; begin Result := TList.Create; while not AQuery.Eof do begin curCust := TCustMst.Create(nil); curCust.OBID := AQuery.FieldByName('OBID').AsString; curCust.Name := AQuery.FieldByName('Name').AsString; curCust.wClassName := AQuery.FieldByName('wClassName').AsString; curCust.CreateDate := AQuery.FieldByName('CreateDate').AsString; curCust.CreateTime := FormatDateTime('hh:nn:ss', AQuery.FieldByName('CreateTime').AsDateTime); curCust.CreatorID := AQuery.FieldByName('CreatorID').AsString; curCust.IsValid := AQuery.FieldByName('IsValid').AsString; curCust.LcStatus := AQuery.FieldByName('LcStatus').AsString; curCust.OrdCode := AQuery.FieldByName('OrdCode').AsString; curCust.Kind := AQuery.FieldByName('Kind').AsString; curCust.CustTelNum := AQuery.FieldByName('CustTelNum').AsString; curCust.CeoName := AQuery.FieldByName('CeoName').AsString; curCust.ConnPerson := AQuery.FieldByName('ConnPerson').AsString; curCust.BusinessNum := AQuery.FieldByName('BusinessNum').AsString; curCust.ConnPersonTel := AQuery.FieldByName('ConnPersonTel').AsString; curCust.CustAddress := AQuery.FieldByName('CustAddress').AsString; curCust.Descriptions := AQuery.FieldByName('Descriptions').AsString; curCust.KeyItems := AQuery.FieldByName('KeyItems').AsString; curCust.EMail := AQuery.FieldByName('EMail').AsString; curCust.BankName := AQuery.FieldByName('BankName').AsString; curCust.BankNum := AQuery.FieldByName('BankNum').AsString; Result.Add(curCust); AQuery.Next; end; end; class function TCustMst.LoadFromStringsQuery(AQuery: TFDQuery): TStrings; var valStr: string; begin Result := TStringList.Create; while not AQuery.Eof do begin valStr := AQuery.FieldByName('Name').AsString; Result.Add(valStr); AQuery.Next; end; end; class function TCustMst.xAddSqlMark(velStr: string): string; begin Result := ''; Result := '''' + velStr + ''''; end; class function TCustMst.xGetStrsDistinctCustName(AQuery: TFDQuery): TStrings; var sql: string; begin Result := nil; sql := 'SELECT DISTINCT "Name" FROM "CustMst"'; sql := sql + ' WHERE "IsValid"=' + xAddSqlMark('t'); try AQuery.Close; AQuery.SQL.Text := sql; AQuery.Open; except on E: Exception do ShowMessage('xGetStrsDistinctCustName Äõ¸® ½ÇÇà ¿À·ù: ' + E.Message); end; Result := LoadFromStringsQuery(AQuery); end; class function TCustMst.xGetStrSqlTeamMstList(AQuery: TFDQuery; kindStr, cust: string): TList; var sql: string; begin Result := nil; sql := 'SELECT * FROM "CustMst"'; sql := sql + ' WHERE "IsValid"=' + xAddSqlMark('t'); if Length(Trim(kindStr)) > 0 then sql := sql + ' AND "Kind"=' + xAddSqlMark(kindStr); if Length(Trim(cust)) > 0 then sql := sql + ' AND "Name"=' + xAddSqlMark(cust); try AQuery.Close; AQuery.SQL.Text := sql; AQuery.Open; except on E: Exception do ShowMessage('xGetStrSqlTeamMstList Äõ¸® ½ÇÇà ¿À·ù: ' + E.Message); end; Result := LoadFromQuery(AQuery); end; end.