u8報表累計攤銷公式設置(皕傑報表裡的排序問題)
2023-04-23 14:51:00 1
在使用皕傑報表設計報表時,往往需要按照某個欄位的順序進行排序,比如按序號、時間的順序排序。那麼這個排序是如何設計出來的呢?
首先要知道,設計報表的過程實質上就是把數據集表中的數據按一定格式展現在報表裡的過程,因而報表的排序是與數據集中記錄順序有關的,所以在寫sql語句取數的時候就應根據需要按照某個欄位的順序進行排序。sql中進行排序的關鍵字是order by,需要根據哪個欄位排序order by後面就跟什麼欄位。如:
select 僱員id, 姓氏||名字 as 姓名,僱用日期 from 僱員 order by 僱用日期
就是按照僱傭日期進行排序的,默認ASC升序。
數據集預覽:
在把數據集表裡數據放到報表裡展現的時候,我們還可以調整順序,這取決於數據集函數select中的排序順序,在單元格表達式裡可以根據我們的需要重新排序。
Select
函數說明:從當前數據組中取出一組數據,在擴展方式為縱向擴展或橫向擴展(含默認時自動計算出來的)時, 所有附屬單元格所用的同一數據集的數據在同一行(Row)
語法:datasetName.select(selectExp{,descExp{,filterExp{,sortExp}}})
參數說明:
selectExp 選出的欄位或其表達式
descExp 選出數據的排序規則,true為逆序,false為正序
filterExp 過濾表達式
sortExp 排序依據表達式
舉例說明:
1.例1:ds1.select(訂單ID,false),將數據集ds1中的「訂單ID」欄位以列表的形式顯示,並順序排序。
2.例2:ds1.select(訂單ID,true,訂單id>=12),將數據集ds1中的「訂單ID」欄位以列表的形式顯示,並逆序排序,而且篩選出大於等於12號的訂單ID。
3.例3:ds1.select(訂單ID,false,訂單id>=12,數量),將數據集ds1中的「訂單ID」欄位以列表的形式顯示,按「數量」欄位順序排序,並篩選大於等於12號的訂單ID。
針對上述數據集,如果在單元格裡簡單用=ds0.select(僱員ID),則報表的順序就是數據在數據集中的順序,見下圖:
如果我們在select函數中加上排序的參數,=ds0.select(僱員ID,false,,僱員ID)則報表的順序則按僱員ID順序重新排序,見下圖:
那麼究竟是在sql中排序還是在單元格表達式中排序,則根據報表的性能要求靈活掌握,不管sql中是否排序,如果單元格表達式出來的排序不滿足需求,則一定加上排序方式和排序參數。
,