function GetcdsAccountsData: OleVariant; var AsqlQuery: TsqlQuery; Adsp: TProvider; begin AsqlQuery:=CreatesqlQuery; Adsp:=TProvider.Create(nil); with AsqlQuery do try sql.Add(‘Select AccID,pAccID,AccName,AccFullName,Explan,Grade,Property,Detailed,DC,SublegType‘); sql.Add(‘,DeptAcc,EmplAcc,CorpAcc,ItemAcc,pItemID,Fcy,FcyNo,FcyExrate‘); sql.Add(‘,Qty,QtyUnit,QtySpecs,QtyPrice,QDigits,PDigits,FDigits‘); sql.Add(‘from Accounts‘); sql.Add(‘where SysID=:SysID and Status=‘‘A‘‘‘); sql.Add(‘and accYear=:accYear‘); sql.Add(‘Order by AccID‘); ParamByName(‘SysID‘).AsInteger:=FSysID; ParamByName(‘accYear‘).AsInteger:=FLoginDate.Year; Adsp.DataSet:=AsqlQuery; Result:=Adsp.Data; finally Adsp.Free; Free; end; end; function CheckOpencdsAccounts: Boolean; begin if FcdsAccounts=nil then FcdsAccounts:=TClientDataSet.Create(Self); with FcdsAccounts do begin if not Active then begin Data:=GetcdsAccountsData; IndexFieldNames:=‘AccID‘; end; Result:=Active; end; end;