FTPC Filter

       在FTPC的Process Designer中可以創建Filter對象,Filter對象用於檢索滿足篩選條件的對象子集(特定類型的對象)。Filter條件的作用類似於SQL查詢中的WHERE子句。

       Filter對象和使用API創建的Filter不同,在Process Designer創建的Filter對象會持久化到數據庫的DS_OBJECT,DS_OBJECT_BLOB表中,這樣使Filter可以重複使用。

Filter包括以下操作類型,具體可以使用操作類型選項會根據選擇列值類型而不同。

  • CONTAINING: 查詢包含指定值的內容。

  • ENDSWITH: 查詢以指定值結尾的內容。

  • EQUAL_TO: 查詢內容對象列中的值與指定值完全匹配的對象。

  • GREATER_THAN: 查詢大於指定值的數值內容。

  • GREATER_THAN_EQUAL_TO: 查詢大於或等於指定值的數值內容。

  • IN: 查詢包含用戶定義集中指定內容的條目。如果您選擇IN,那麼在value字段中,必須指定要搜索的內容。如果要搜索多個項,則必須在每個項之後按Enter鍵。

  • LESS_THAN: 查詢小於指定值的數值內容。

  • LESS_THAN_EQUAL_TO: 查詢小於或等於指定值的數值內容。

  • LIKE: 查詢與value字段中輸入的字符串類似的字符串。使用通配符展開搜索。

  • NOT_EQUAL_TO: 查詢不匹配指定值的內容。

  • STARTSWITH: 查詢以指定值開頭的內容。

SubFilter

       創建了Filter之後,可能需要通過增加SubFilter來修改它,SubFilter是附加在Filter上的約束,允許用戶對Fiter進行調整,使其只返回非常特定的結果。可以將多個SubFilter添加到單個Filter中。

       在SQL中SubFilter實際是通過IN操作類型實現。

例如:

在Process Designer中創建以下Filter

其中CarrieFilter 的SubFilter配置如下:

執行該UnitFilter,實際生成的SQL語句如下,Filter,SubFilter構建的即爲WHERE語句後面的部分。

SELECT UNIT.unit_key,
  UNIT.serial_number,
  UNIT.site_num,
  UNIT.container_key,
  UNIT.container_name,
  UNIT.container_type,
  UNIT.container_sub_type,
  ······此處省略部分Unit相關字段
  TRACKED_OBJECT_STATUS.wc_key,
  TRACKED_OBJECT_STATUS.wc_name,
  TRACKED_OBJECT_STATUS.equip_key,
  TRACKED_OBJECT_STATUS.equip_name,
  LOT.lot_name,
  WORK_ORDER.order_number,
  WORK_ORDER_ITEMS.order_item
FROM UNIT,
  TRACKED_OBJECT_STATUS,
  LOT,
  WORK_ORDER,
  WORK_ORDER_ITEMS
WHERE ( ( ( ( UNIT.serial_number LIKE N'PL%' )
AND ( UNIT.container_name IN
  (SELECT CARRIER.carrier_key
  FROM CARRIER
  WHERE ( ( ( CARRIER.carrier=N'TestPack20' ) ) )
  ) ) ) ) )

AND UNIT.tobj_status_key=TRACKED_OBJECT_STATUS.tobj_status_key
AND UNIT.lot_key        =LOT.lot_key(+)
AND UNIT.order_key      =WORK_ORDER.order_key(+)
AND UNIT.order_item_key =WORK_ORDER_ITEMS.order_item_key(+)
ORDER BY UNIT.serial_number ASC

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章