addCustomFilter (referência da API do cliente)

O addCustomFilter método adiciona filtros aos resultados exibidos num controlo de pesquisa em aplicações orientadas a modelos. Cada filtro é combinado com quaisquer filtros previamente adicionados como uma AND condição.

Tipos de controlo suportados

Busca

Sintaxe

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

Parâmetros

Name Tipo Description
filter String O elemento de filtro FetchXML a ser aplicado.
entityLogicalName String Optional. Se definires este parâmetro, o filtro aplica-se apenas a esse tipo de tabela. Caso contrário, aplica-se a todos os tipos de tabelas retornadas.

Por exemplo, use o seguinte XML para o filter parâmetro:

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

Observações

Use este método numa função num gestor de eventos para o Evento Pré-Pesquisa de Controlo de Pesquisa.

Example

O exemplo de código seguinte é para a pesquisa de Conta (parentaccountid) do formulário de Oportunidade. Quando definires a Sdk.setParentAccountIdFilter função no gestor de eventos do formulário Onload , adiciona a Sdk.filterCustomerAccounts função ao PreSearch evento dessa consulta. Lembre-se de selecionar a opção de passar no contexto de execução ao definir a função no gestor de eventos do formulário Onload . O resultado é que apenas contas com o valor da Categoria (accountcategorycode) do Cliente Preferencial (1) são devolvidas.

// 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