FineReport實現根據點擊次數奇偶性排序的方法,finereport點擊次數
使用FineReport報表軟在進行排序的時,很多時候您可能想實現根據點擊的次數進行升降序排序,也就是說點擊第一次點擊標題升序排序,再次點擊就降序,以此類推,而不是通過選擇升序進行升序排列,選擇降序進行降序排列。
由擴充後排序可知,可以根據參數值的不同來決定升序還是降序,這裡也可以此思路進行實現,定義一個參數,如果參數值為1的時候,就升序,參數值為0的時候,按照資料列的負數進行升序排序,即資料列降序。
本文所提供的方法,只適用於排序資料列資料類型為數字型的欄位。資料類型為字元型,我們下節再介紹。
下面以一個簡單樣本進行介紹,模板根據訂單ID進行升序降序排列,第一次點擊訂單ID的時候升序,再次點擊時降序,以此類推。
1、設定超連結
選中A1儲存格,右鍵選擇超級連結,添加一個動態參數,增加一個動態參數a,參數值為公式if($a==1,0,1),如:
2、排序設定
排序設定有兩種設定方式,進階排序和擴充後排序,下面分別介紹著兩種方式的設定方式。
(1)進階排序
雙擊A2儲存格,選擇進階,在排序次序處選擇升序,公式值為if($a==1,$,?$),如:
註:公式的意義是,如果動態參數值為1,那麼就將訂單ID按照訂單ID升序排序,如果不為1,就按照訂單ID的負數進行升序排序,即按照訂單ID進行降序排序,由於只有數值型資料才有負數,字元型資料沒有負數,故該方法只適用於數值型欄位排序。
另:如果是將訂單ID按照運貨費進行升序降序排序,那麼公式應為:if($a==1,運貨費,-運貨費),由於此處排序是設定資料列的排序,則公式中輸入的是資料列的名稱。
(2)擴充後排序
選中A2儲存格,在儲存格屬性工作表>擴充屬性中的擴充後選擇升序,值為公式=if($a==1,A2,-A2),如:
註:公式意義同上,此處是根據儲存格進行排序,所以公式中輸入的是儲存格,不是資料列名字。
另:如果需要將訂單ID按照運貨費進行升序降序排序,那麼公式應為:if($a==1,F2,-F2)
3、效果查看
不論是根據進階排序設定,還是擴充後排序設定,設定的效果如下: