2.8 使用過濾器和輸入控制項

網域使用不同的機制來篩選資料。

  • 可以透過在網域中選取欄位並指定比較值來過濾網域 (及網域主題)。可以設定過濾器,以便使用者選取資料。

  • 在網域設計中,還可以定義以條件為基礎的過濾器;執行報告時,這些過濾器不會顯示在報告檢視器中。

無論您是處理網域還是主題中的資料,都可以在隨選編輯器中定義過濾器。此類過濾器可以減少檢視窗預設返回的資料數量,因而有助於提高檢視窗的初始效能。

為防止使用者檢視整個資料集,您也可以在 JRXML 主題中使用輸入控制項,或者使用網域設計中定義的過濾器,終端使用者將看不到這些控制項和過濾器。如需詳細資訊,請參閱節 2.8.3, 輸入控制項和過濾器可用性

輸入控制項與過濾器可以順利互動。例如,在從包含輸入控制項的 JRXML 主題取得資料的隨選檢視窗中,可以建立過濾器。

伺服器會根據過濾器和輸入控制項重新整理編輯器。由於輸入控制項與過濾器的某些組合不會傳回資料,因此可能會導致產生空檢視窗。

附註:如果結果集為空,請檢查是否使用了過濾器與輸入控制項的不相容組合 (例如,是否已將標準過濾器與僅保留過濾器相組合),或者是否使用了定義不當的自訂過濾器運算式。(資料必須符合多個過濾器中的所有準則,而不能只滿足這些過濾器的一部分準則)。如需詳細資訊,請參閱自訂過濾

JRXML 是一種 XML 檔案格式,用於儲存和共享針對 ZENworks Reporting 及使用它的應用程式 (例如 iReport Designer 和 ZENworks Reporting) 所建立的報告。JRXML 是一種開放式格式,它使用 XML 標準來精確定義報告的所有結構和組態。

在某些情況下,過濾器可能與檢視窗參數衝突,此時,您必須透過編輯 JRXML 檔案來重新命名導致衝突的欄位。

2.8.1 使用過濾器

可在以下位置定義過濾器:

  • 資料選擇器 (從網域建立檢視窗時)。

  • 隨選編輯器 (即使檢視窗以 JRXML 主題為基礎)。

如需在資料選擇器中定義過濾器的資訊,請參閱預先過濾資料

此外,您可以使用自訂運算式來控制如何將過濾器套用至一或多個欄位,以及要套用哪些過濾器。如需詳細資訊,請參閱自訂過濾

若要在隨選編輯器中建立過濾器,請執行以下步驟:

  1. 資料來源選擇面板中的某個欄位上按一下滑鼠右鍵,然後按一下建立過濾器

    過濾器面板中會顯示一個新過濾器。如果過濾器面板已隱藏,則當您建立新過濾器時,該面板會顯示。

    如果結果為空,請檢查是否使用了過濾器與輸入控制項的不相容組合。按一下 ,將輸入控制項與過濾器面板中的過濾器進行比較。

    對於 Oracle 資料庫,您在建立過濾器時可以使用「Null」值。對於 MS SQL 和 Sybase 資料庫,可以使用空白。

  2. 使用過濾器中的欄位來變更過濾器的值。

    根據所選的資料類型,過濾器可能是多選、單選或文字輸入。

  3. 按一下 ,然後選取最小化所有過濾器最大化所有過濾器,以切換過濾器中項目的展開狀態。

  4. 按一下 ,然後選取移除所有過濾器以移除過濾器。

  5. 按一下 以隱藏過濾器的詳細資料。

  6. 按一下 以檢視過濾器的詳細資料。

  7. 按一下全選核取方塊 (如果顯示在過濾器面板中) 以選取資料集中的所有值。

    對於數字和日期,過濾器面板中不會顯示全選方塊。

附註:全選核取方塊不會確保每次報告執行時會選取所有值。相反,該核取方塊是一種捷徑,可協助您快速選取資料集中目前可用的所有值。為確保每次編輯檢視窗或執行報告時在檢視窗中顯示所有值,請移除整個過濾器。在面板上,您還可以用滑鼠右鍵按一下表中的某一欄,透過顯示的內容功能表建立過濾器。在「圖表」索引標籤中,必須以滑鼠右鍵按一下「資料來源選取」面板中的欄位

當您變更過濾器時,伺服器將使用新值來確定要顯示的資料。如果僅變更過濾器中的運算子,則必須取消選取該過濾器中的值,然後重新選取該值才能套用更新的過濾器。

對於包含多個值的過濾器,不需要重新選取所有值。變更運算子之後,在按住 Ctrl 的同時按一下以取消選取某個值,然後在按住 Ctrl 的同時按一下以重新選取該值。

相對日期

可以根據相對於目前系統日期的日期範圍來過濾檢視窗中的資訊。若要檢視此資訊,可以使用日期過濾器,並使用格式 <關鍵字>+/-<數字> 指定一個文字運算式用於描述您要檢視的相對日期或日期範圍。

  • 關鍵字表示您要使用的時間範圍。選項包括:「日」、「週」、「季」、「半年」和「年」。

  • +- 表示時間範圍是在所選的日期之前還是之後。

  • 數字表示您要包含在過濾器中的時間範圍數目。

若要建立相對日期過濾器,請執行以下步驟:

  1. 遵循節 2.8.1, 使用過濾器中的指示。

  2. 在過濾器的第一個文字方塊中,指定用於描述相對日期或日期範圍的運算式。

  3. 在過濾器的第二個文字方塊中,指定過濾器所依據的日期。

若要建立複雜過濾器,請執行以下步驟:

  1. 在交叉表中的某個群組成員上按一下滑鼠右鍵,然後選取僅保留排除

    針對內部群組建立過濾器時,可將顯示的過濾器建立為複雜過濾器。

    複雜過濾器不可編輯,但可移除。如果建立並鎖定了資料選擇器精靈過濾器,則複雜過濾器也會顯示在隨選編輯器中。

自訂過濾

當您建立多個過濾器時,這些過濾器預設將與隱含的 AND 運算子連接;也就是說,表、圖表或交叉表中顯示的資料就是套用所有過濾器後保留的資料。

但是,透過自訂過濾器功能,您不僅可以套用包含更複雜的巢狀 AND、OR 和 NOT 運算子的自訂運算式,還可以對單個欄位套用多重過濾器,從而控制所顯示的資料。

附註:對透過 OLAP 連接建立的隨選檢視窗無法使用自訂過濾器。

在以下情況下,自訂過濾器非常有用:

  • 使用 AND 運算子不足以解決問題時。例如:假設有一家跨國公司需要針對其在華爾街辦公室部署的未獲授權的 Windows 作業系統產品檢查相關資料。在此範例中,使用者有一張表,其中包含以下幾欄:

    • 地點

    • 作業系統產品名稱

    • 授權類型

    為了分析上述特定授權資料,使用者建立了下列 (簡單) 過濾器,其中兩個過濾器針對「授權類型」欄位:

    • A):「地點」等於「華爾街」

    • B):「作業系統產品名稱」包含「Windows」

    • C):「授權類型」等於「未知」

    • D):「授權類型」等於「試用」

    然後,為了只顯示所需資訊,建立以下自訂運算式:

    • A and (B and (C or D))

    其含義為:

    • (「地點」為「華爾街」) and ((「作業系統產品名稱」包含「Windows」) and ((「授權類型」為「未知」) or (「授權類型」為「試用」)))

  • 當您需要清除欄位中的某些結果時。例如,如果該公司想要針對所有 Windows 作業系統產品 (完全授權的除外) 檢查相關資料,使用者在一張表中使用以下幾欄:

    • 作業系統產品名稱

    • 授權類型

    為了分析上述特定授權資料,該使用者建立了以下 (簡單) 過濾器:

    • A):「作業系統產品名稱」包含「Windows」

    • B):「授權類型」等於「完全」

    然後,為了只顯示所需資訊,建立以下自訂運算式:

    • A and (not B)

    其含義為:

    • (「作業系統產品名稱」包含「Windows」) and (not (「授權類型」等於「完全」))

這裡只是列舉了兩種情境來說明,自訂過濾器可以顯示您需要的結果,還可使檢視窗變得更加精細。在其他許多場合下,進階過濾器也可以發揮作用。

其他自訂過濾器任務包括:

  • 建立自訂運算式

  • 編輯自訂運算式

  • 移除自訂運算式

  • 將多個過濾器套用於單個欄位

    附註:自訂過濾器可套用於檢視窗,但過濾器詳細資料將不會顯示在預覽中,也不會顯示在基於該檢視窗產生的報告中。

若要建立和套用自訂過濾器:

  1. 節 2.8.1, 使用過濾器中所述,為資料建立兩個或更多個過濾器。這些過濾器可以是以標準欄位為基礎的過濾器,也可以是僅保留排除過濾器。

    當您建立要在自訂運算式中使用的過濾器時,檢視窗中的資料將會消失,因為大部分資料都不符合所有過濾器準則。當您建立自訂運算式並將某些 AND 變更為 OR 與 NOT 時,資料會再次顯示。

  2. 在過濾器面板底部,展開自訂過濾器運算式區段。

  3. 在文字輸入方塊中,使用字母標記並結合以下運算子輸入過濾器運算式:

    • AND 會縮小結果範圍,只包含滿足運算子前面與後面過濾器的欄位。

    • OR 會擴大結果範圍,將會包含滿足運算子前面或後面過濾器的欄位。

    • NOT 會排除與準則相符的結果。

    • 括弧用於將多個過濾器組合成運算式中的單一項目。

      附註:過濾器中的字母標記區分大小寫,而且必須為大寫。

  4. 按一下「套用」。您的檢視窗會加以更新,以反映新套用的過濾器準則。

建立自訂過濾器後,可將另一個過濾器新增至運算式中,或者移除現有的運算式。

附註:如果要刪除的簡單過濾器是某個自訂過濾器的一部分,您必須先將其從自訂過濾器運算式中移除,否則在刪除該過濾器的同時會刪除自訂過濾器運算式。

若要將新過濾器新增至現有的自訂運算式:

  1. 過濾器面板中建立一個新過濾器。

  2. 自訂過濾器運算式中,按一下文字輸入方塊內部以編輯運算式。

  3. 將新的過濾器新增至運算式中。

  4. 按一下套用以套用新的準則。

若要從自訂運算式中移除某個過濾器:

  1. 展開自訂過濾器運算式區段。

  2. 在文字輸入方塊中,從運算式中移除不需要的過濾器,並視需要調整運算式。

  3. 按一下套用以套用新的準則。

使用自訂運算式時,可以刪除現有運算式以及建立新運算式。

若要從檢視窗中移除自訂運算式:

  1. 展開自訂過濾器運算式區段。

  2. 從文字輸入方塊中清除運算式。

  3. 按一下「套用」。該運算式隨即移除,剩餘的過濾器則保持不變。

在精簡自訂運算式時,可以從過濾器面板中刪除未使用的過濾器。

  • 如果要從自訂過濾器中移除過濾器,請將滑鼠游標置於過濾器標題列中的 上,然後按一下移除過濾器

  • 如果要移除所有現有過濾器 (包括自訂運算式),請將滑鼠游標置於過濾器面板中的 上,然後按一下移除所有過濾器

2.8.2 使用輸入控制項

在隨選編輯器中,可以檢視主題中定義的,向使用者顯示的輸入控制項。您可以接受控制項的預設值,或輸入其他值。隨選編輯器會透過在工具列上顯示使用中的 圖示,來指出檢視窗包含輸入控制項。按一下 圖示可以選取新值,或者將值儲存為此檢視窗的新預設值。

若要使用過濾器在檢視窗中新增輸入控制項,請執行以下步驟:

  1. 建立新過濾器,或使用過濾器面板中的某個現有過濾器。

  2. 在「過濾器」中,按一下新過濾器旁邊的 ,然後選取顯示運算子

  3. 從下拉式清單中選取一個運算子,並在文字方塊中指定值。

    使用檢視窗執行報告時,該過濾器將顯示為輸入控制項。

  4. 將游標置於 上,然後選取隨選檢視窗儲存為...

  5. 為檢視窗命名,選取位置,然後按一下儲存

  6. 在工具列上,按一下

    只會顯示主題中定義的輸入控制項。如果主題中未定義輸入控制項,該按鈕將變為灰色。

若要編輯檢視窗輸入控制項的值,請執行以下步驟:

  1. 在工具列上,按一下

    此時會顯示一個視窗,其中列出了主題中定義的輸入控制項。

  2. 選取新值。

  3. 若要變更輸入控制項的預設值,請選取標有儲存檢視窗時將這些值設為預設值的核取方塊。

    當您儲存檢視窗時,所選的值會變成預設值。

  4. 按一下「確定」

    隨選檢視窗將顯示更新的資料。

2.8.3 輸入控制項和過濾器可用性

當您執行報告時,輸入控制項和過濾器會顯示在編輯器中。

  • 當您編輯檢視窗時,可將輸入控制項設為可見或不可見:

    • 設定為一律提示的輸入控制項會顯示在編輯器中,並且在執行報告之前永遠會顯示。

    • 未設定為一律提示的輸入控制項會在編輯器中隱藏,但會在執行報告時顯示。

  • 可以鎖定或解除鎖定在資料選擇器精靈中建立的過濾器:

    • 已解除鎖定的過濾器將在編輯器中顯示過濾器詳細資料,在執行報告時,您可以透過選項按鈕來使用這些過濾器。

    • 當您按一下圖示 時,已鎖定的過濾器將在編輯器中顯示輸入控制項。但是,在執行報告時,無法透過選項按鈕來使用這些過濾器。您可以從編輯器中移除過濾器,以便使用者在執行報告時可以看到所有未過濾的資料。

  • 執行報告時,始終可以透過編輯器的過濾器面板以及透過選項按鈕來使用編輯器中定義的過濾器。

為需要長時間執行的大型檢視窗設定輸入控制項時,請考慮將該檢視窗設定為一律提示。在執行報告之前,報告檢視器會提示您提供輸入選項,以防止報告使用預設輸入選項執行。

可以使用已解除鎖定的過濾器。如果輸入控制項或過濾器未顯示在報告檢視器中,按一下選項按鈕即可檢視。

若要將某個輸入控制項設定為提示,請執行以下步驟:

  1. 在儲存庫中找到一個主題,然後按一下編輯

  2. 控制項與資源面板中的輸入控制項選項下,按一下一律提示

若要確定某個輸入控制項是否可見,請執行以下步驟:

  1. 在儲存庫中找到一個主題 (例如參數化報告主題),然後按一下編輯

  2. 控制項與資源面板上,按一下輸入控制項的名稱。

  3. 尋找輸入控制項面板上,按下一步

    建立輸入控制項面板的底部,如果可見核取方塊已選取,則執行報告時會在報告中顯示該輸入控制項。

    如果您沒有為輸入控制項指定預設值,則當使用者依據主題建立檢視窗時,系統會提示他們選取值。

若要鎖定過濾器,請執行以下步驟:

  1. 在資料選擇器中選取欄位後,按一下預先過濾器

  2. 連按兩下欄位面板中的某個欄位。

  3. 過濾器面板中定義一個過濾器。

    如需詳細資訊,請參閱預先過濾資料

  4. 選取已鎖定核取方塊,然後按一下確定

  5. 按一下以開啟隨選編輯器。

    過濾器面板中的已鎖定標題下,將顯示該過濾器的名稱以及關於鎖定動作的備註。