報表管理軟體FineReport中如何進行擴展後排序

若模板中希望按照某列進行排序,而此列是無法用數據集函數還原的即無法使用高級排序進行排序設置,為此報表管理軟體FineReport提供了擴展後排序,滿足一切排序的需求。

工具/原料

報表管理軟體FineReport7.1.1
大小:148.2M 適用平台:windows/linux

方法/步驟

設置方法

右擊單元格>擴展屬性或者選中單元格,在右側下方的單元格屬性表-擴展屬性中對擴展後排序進行設置,如在A1單元格中設置擴展後排序>升序,公式中輸入B1,則A1單元格會根據B1單元格的計算結果進行排序,如下圖:

產生的問題

由於是對擴展後的數據進行重新排序,只是根據結果改變行的順序,因此若模板中有通過seq或者&單元格設置序號時,原本生成的序號會在重新排序時打亂。

解決方案

在序號所在的單元格設置條件屬性,條件屬性>新值,在新增的新值處選擇公式,輸入公式row(),這樣在重新排序時會根據當前所在行重新生成序號。

示例

下面我們以擴展後排序來實現多數據集關聯排序。效果如下:

默認項目名稱根據年度投資計劃總額升序排列

選擇降序排列後,項目名稱根據年度投資計劃總額降序排列

打開模板

超級連結設置

給年度投資計劃(D2單元格),添加超級連結>動態參數,新增2個動態參數為「升序」與「降序」,order就為參數名,其參數值,分別為asc(升序),desc(降序)。

排序方法設置

右擊項目名稱所在列(B4單元格),右擊>擴展屬性,在右側下方的單元格屬性面板中設置擴展後排序為升序並且公式為:if($order == 'asc',D4,-D4)。

註:這個公式的意義在於:若order為asc即升序則按照D4進行升序排列,若選擇desc即降序則按照-D4升序。

條件屬性設置

原模板中使用了&來產生序號,會發現重新排序後順序被打亂了,需要使用條件屬性重新生成序號。在序號(A4單元格)中增加新值條件屬性,選擇公式,在公式中輸入:row()-3。

總結

以上便設置好了,預覽即可看到上圖效果。可以看出,在數據列的高級處進行排序需要進行很複雜的公式進行還原,而用擴展後排序只需要引用對應的單元格即可。

原作者:FineReport

本文內容整理自網絡, 文中所有觀點看法不代表淘大白的立場