使用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、效果查看
不論是根據高級排序設置,還是擴展后排序設置,設置的效果如下:
