ソート条件に全角文字のカラム名を使用すると正しくソートされない
2019/12/27
PowerBuilder 日本語版において、ソート条件としてマルチバイト文字を含むカラム名または計算フィールド名が使用された場合、正しくソートされない不具合が確認されています。
Bug ID | 2266 | ||||||
---|---|---|---|---|---|---|---|
Product | PowerBuilder JP | ||||||
ステータス | PowerBuilder 2017 R3 日本語版 MR (Build 1915) で修正済み | ||||||
発生バージョン | EN | 12.6 | 2017 | 2017 R2 | 2017 R3 | 2019 | |
JP | 12.6 | - | 2017 R2 | 2017 R3 |
※ :発生バージョン :解決済み、未発生 :未確認
詳細
データウィンドウの SetSort メソッドに指定する文字列について、下記の表で示すように、2つ以上のソートキーを指定する場合にカンマとマルチバイト文字を含むソート項目の間に半角スペースがないと正しくソートされません。
半角スペースあり / なしの動作状況:
ソートキー | スペースの有無 | ソート条件 | 結果 |
---|---|---|---|
カラム名 | 半角スペースなし | “state A,年齢” | 正しくソートされない |
“state A,年齢 ASC” | 正しくソートされない | ||
“state A,年齢 A” | 正しくソートされる | ||
半角スペースあり | “state A, 年齢” | 正しくソートされる | |
“state A, 年齢 ASC” | 正しくソートされる | ||
“state A, 年齢 A” | 正しくソートされる | ||
計算フィールド名 | 半角スペースなし | “state A,年齢” | 正しくソートされない |
“state A,年齢 ASC” | 正しくソートされない | ||
“state A,年齢 A” | 正しくソートされない | ||
半角スペースあり | “state A, 年齢” | 正しくソートされる | |
“state A, 年齢 ASC” | 正しくソートされる | ||
“state A, 年齢 A” | 正しくソートされる |
上記のように計算フィールド名の場合、第 2 ソート以降でカンマ ( , ) とカラム名の間に半角スペースが入っていると正しくソートされますが、入っていないと正しくソートされません。ただし、カラム名の場合に限って、カンマ ( , ) とカラム名の間に半角スペースがなくても、明示的に昇順 / 降順をアルファベット 1 文字で指定すると正しくソートされます。この場合、ASC または DESC で指定しても正しくソートされません。
回避策
本不具合に関する回避策は以下となります。
- カラム名の場合は第 2 ソート以降でカンマ ( , ) とカラム名の間に半角スペースを入れるか、昇順 / 降順をアルファベット 1 文字で指定してください。
- 計算フィールド名の場合は第 2 ソート以降でカンマ ( , ) と計算フィールド名の間に必ず半角スペースを入れてください。
なお、昇順 / 降順の指定については大文字 / 小文字の区別はなく、どちらを使用しても構いません。