addCustomFilter (用戶端 API 參考)

此 addCustomFilter 方法在模型驅動應用程式中,為查詢控制項中顯示的結果加入篩選條件。 每個濾波器都會與先前新增的濾波器結合作為 AND 條件。

支援的控制項類型

查詢

語法

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

參數

名稱 類型 Description
filter String 要套用的 FetchXML 篩選元素。
entityLogicalName String Optional. 如果你設定這個參數,過濾器只會適用於該表格類型。 否則,它會套用至傳回的所有資料表類型。

例如,參數使用以下 XML filter 檔:

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

備註

在事件處理程序中用於 查找控制預搜尋事件的函式中。

Example

以下程式碼範例是用於機會表單帳戶查詢parentaccountid。 當你在 Form Onload 事件處理子中設定該Sdk.setParentAccountIdFilter函式時,將該Sdk.filterCustomerAccounts函式加入PreSearch該查詢的事件中。 在 form Onload event handler 設定函式時,記得在執行上下文中選擇傳遞的選項。 結果是只有優先accountcategorycode客戶(1)類別值的帳戶會被回傳。

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