反饋已提交
網絡繁忙
設計報表時,如果遇到「序號」是用漢字數字來表示的,那麼要如何對它進行排序呢,如下:
方案一:資料很少時,可以使用進階排序-自訂順序。也可利用內建資料集實現,詳情請參照文檔:利用內建資料集實現自訂排序。
方案二:在「擴展後排序」中新增公式。因為 FineReport 中沒有將漢字數字轉化為阿拉伯數位的公式,所以我們可以反過來,用 numto() 公式將阿拉伯數字轉化為漢字數字,再將漢字數字與對應的阿拉伯數字聯絡起來。
注:方案二只適用於漢字數字從「一」開始且數字連續的場景。
建立內建資料集,新增兩個欄位「序號」、「項目」,均為字串類型,設計表如下圖所示:
將資料列拖入儲存格,輸入對應的標題,表格樣式設計如下:
雙擊 A2 儲存格,點選「進階」,設定排列順序為「升冪」,輸入公式:SWITCH($$$,"一",1,"二",2,"三",3,"四",4)。如下圖所示:
選中 A2 儲存格,點選「儲存格屬性>擴展」,設定「擴展後排序」為「升冪」,輸入公式: INARRAY($$$, MAPARRAY(RANGE(COUNT(A2[!0])), NUMTO(item)))。
公式說明如下表:
批量處理陣列,透過 fn 對陣列中的元素進行轉換
array(Array):要轉換的陣列,即 RANGE(COUNT(A2[!0]))
fn(Function):處理陣列項目的函式,即 NUMTO(item)
傳回數位的中文表示。
注:NUMTO()函式不支援小數
步驟如下圖所示:
儲存報表,點選「分頁預覽」,效果如下圖所示:
App 端和 HTML5 端均支援,效果如下圖所示:
文檔僅給出方案二範本。
已完成範本可參見:%FR_HOME%\webapps\webroot\WEB-INF\reportlets\doctw\SpecialSubject\OrderReport\漢字數字排序.cpt
點選下載範本:漢字數字排序.cpt
滑鼠選中內容,快速回饋問題
滑鼠選中存在疑惑的內容,即可快速回饋問題,我們將會跟進處理。
不再提示
10s後關閉
反馈已提交
网络繁忙