一.概要
1.問題の概要
帳票に箇条書きがある場合、通常の並べ替え設定ではマルチレベルの箇条書き記号を並べ替えられません。どうすればマルチレベルの箇条書き記号を並べ替えられるでしょうか。
2.実現方法
マルチレベルの箇条書き記号は、複数の数字を「.」で区切った文字列であるため、文字列を並べ替え可能な数字に変換すれば並べ替えられます。
二.例
1.データ準備
新しい普通帳票、新しいビルドインデータセットEmbedded1を作成し、「项目符号」と「项目」の2つのフィールドを追加します。設計テーブルは次の図の通りです。
2.テーブルのデザイン
ビルドインデータセットのフィールドをA2、B2セルにドラッグし、対応するタイトルを入力します。テーブルスタイルは次の図の通りです。
3. 展開後ソート
セルA2を選択し、「展開後ソート」に設定し、SUM(MAPARRAY(split(A2, "\\."), item * POWER(100, 4 - index)))という式を入力します。
この式は、A2中の箇条書きを「.」で分割し、それぞれ異なる桁をかけてから合計する演算を行うものです。
式に関する説明は次の通りです。
公式 | 説明 |
指定した数字のべき乗を返します。即ち、100の4-index乗です index:返す位置 注:4−indexの4は、A2中のマルチレベルの箇条書き記号は全部で三つのレベルがあるため、レベル数+1で4となります。 | |
SPLIT(A2, "\\.") | A2セルの値を「.」で分割した文字列の配列を返します。 |
MAPARRAY() | 配列をバッチ処理し、item * POWER(100, 4 - index) でsplit(A2, "\\.") の配列中の要素を変換します |
SUM() | 変換された配列を合計します |
詳細は下図の通りです。
4.プレビュー効果
4.1.PC端末
帳票を保存し、「改ページプレビュー」をクリックし、効果は下図の通りです。
4.2.モバイル端末
アプリとHTML5をサポートしています。効果は下図の通りです。