addCustomFilter (référence de l’API client)

La addCustomFilter méthode ajoute des filtres aux résultats affichés dans un contrôle de recherche dans les applications basées sur des modèles. Chaque filtre est combiné à tous les filtres précédemment ajoutés en tant que AND condition.

Types de contrôles pris en charge

Rechercher

Syntaxe

formContext.getControl(arg).addCustomFilter(filter, entityLogicalName)

Paramètres

Nom Type Description
filter String Élément de filtre FetchXML à appliquer.
entityLogicalName String Optional. Si vous définissez ce paramètre, le filtre s’applique uniquement à ce type de table. Sinon, cela s’applique à tous les types de tables renvoyés.

Par exemple, utilisez le code XML suivant pour le filter paramètre :

<filter type="and">
  <condition attribute="address1_city" operator="eq" value="Redmond" />
</filter>

Remarques

Utilisez cette méthode dans une fonction dans un gestionnaire d’événements pour l’événement Lookup Control PreSearch.

Exemple

L’exemple de code suivant est destiné à la recherche de compte de formulaire Opportunité (parentaccountid). Lorsque vous définissez la Sdk.setParentAccountIdFilter fonction dans le gestionnaire d’événements de formulaire Onload , ajoutez la Sdk.filterCustomerAccounts fonction à l’événement PreSearch pour cette recherche. N’oubliez pas de sélectionner l’option à passer dans le contexte d’exécution lors de la définition de la fonction dans le gestionnaire d’événements de formulaire Onload . Le résultat est que seuls les comptes dont la valeur Catégorie (accountcategorycode) du client préféré (1) est retournée.

// A namespace defined for SDK sample code
// You should define a unique namespace for your libraries
const Sdk = (window.Sdk ??= {});

// set 'Sdk.setParentAccountIdFilter' in the Opportunity form onload event handler
Sdk.setParentAccountIdFilter = (executionContext) => {
  const formContext = executionContext.getFormContext();
    formContext.getControl("parentaccountid").addPreSearch(Sdk.filterCustomerAccounts);
};

Sdk.filterCustomerAccounts = (executionContext) => {
  const control = executionContext.getEventSource();
  const customerAccountFilter = `
    <filter type="and">
      <condition attribute="accountcategorycode" operator="eq" value="1" />
    </filter>`;
  control.addCustomFilter(customerAccountFilter, "account");
};

addPreSearch
formContext