AddWhere (objectlist)

De Wiki1000
function AddWhere(const iWhereSQL: string; 
                                        const iWhereObject: string; 
                                        const iOrderBy : string; 
                                        iDescendants: Boolean; 
                                        iMaxInstances: Integer; 
                                        iArgs :Variant):Integer;

Cette fonction ajoute des objets dans la liste vérifiant une expression.

Result Le nombre d'objets ajoutés.
iWhereSQL Expression objet vérifiée par les objets.
iWhereObject Expression objet appliquée sur les objets vérifiant la première expression.
iOrderBy Ordre de tri.
iDescendants Inclure les objets descendants.
iMaxInstances Nombre maximum d'objet à ajouter.

-1 indique pas de limitation.

iArgs Paramètres des expressions objets.
Info-20px.png Note : iWhereObject n'est pas appliquée en SQL et peut contenir des clauses faisant référence à des attributs non persistant.

Exemple:

procedure TExercice.doPeriodes;
var vListePeriode :TPeriodeList;
begin
  // Liste des périodes d'un exercice ordonnée par date de début de période.
  vlistePeriode := TPeriodeList.CreateList;
  vlistePeriode.AddWhere('oidExercice=%1','','dateDebut',FALSE,1000,[instanceOid]);
  ...
end;
 
procedure TMyProcessus.doEcritures;
var EcritureList:TEcritureList; idx:Integer;
begin
  // Liste des 1000 premières écritures au débit d'une tranche de compte trié par libellé.
  //
  // Utilise un filtre objet pour estDebit qui est un attribut dérivé de la classe TEcriture
  //
  EcritureList := ClassManager.CreateObjectList('TEcriture');
  EcritureList.AddWhere('(CompteGeneral.Code >= %1) and (CompteGeneral.Code <= %2)','(estDebit = %3)', 'Caption',TRUE,1000,
[borne_inferieure,borne_superieure,True]);
  //
  for idx :=0 to EcritureList.Count-1 do
   ProgressMessage(EcritureList.Refs[idx].Caption)
end;


Voir aussi:

Listes d'objets (tech)Développement DSM

Outils personnels