改行を含むセルを対象としたフィルタダイアログでチェック表示が不正になる

文書番号 : 39475     文書種別 : 不具合     登録日 : 2016/07/27     最終更新日 : 2016/07/27
文書を印刷する
対象製品
SpreadJS 9J
状況
修正済み
詳細
改行を含むセルを対象としたフィルタダイアログを表示した場合に、不正にダイアログ上のチェックが外れる現象が発生します。

【現象再現手順】
--------------------------------------------------
1. 以下の再現コードを実行します
2. A列ヘッダのフィルタボタンを押下し、フィルタダイアログを表示します

- A1セルの内容を示すダイアログ表示のチェックが外れる現象が発生します
--------------------------------------------------

【現象再現コード】
--------------------------------------------------
$(document).ready(function () {
  $("#ss").wijspread();
  var spread = $("#ss").wijspread("spread");
  var sheet = spread.getActiveSheet();
  sheet.defaults.rowHeight = 50;
  sheet.getColumn(0).wordWrap(true);
  sheet.getCell(0,0).value("ABC¥r¥nEFG");
  sheet.rowFilter(new $.wijmo.wijspread.HideRowFilter(new $.wijmo.wijspread.Range(-1, -1, -1, -1)));
});
--------------------------------------------------
回避方法
SpreadJS 9J SP1(Ver.3.20152.21)で修正済み
SpreadJS 9J SP1(Ver.3.20152.21)より前のバージョンでは次の回避方法が有効です。
------------------------------------------

getTextメソッドをオーバーライドし、下記のような処理を行うことで現象の回避が可能です。

<script type="text/javascript">
  $(document).ready(function () {
    $("#ss").wijspread();
    var spread = $("#ss").wijspread("spread");
    var sheet = spread.getActiveSheet();
    sheet.defaults.rowHeight = 50;
    sheet.getColumn(0).wordWrap(true);
    sheet.getCell(0,0).value("ABC¥r¥nEFG");
    sheet.rowFilter(new $.wijmo.wijspread.HideRowFilter(new $.wijmo.wijspread.Range(-1, -1, -1, -1)));
  });

  // getTextメソッドをオーバーライド
  var oldGetText = $.wijmo.wijspread.Sheet.prototype.getText;
  $.wijmo.wijspread.Sheet.prototype.getText = function (row, col, sheetArea) {
    var result = oldGetText.apply(this, arguments);
    if (typeof (result) === "string") {
      result = result.replace(/¥r¥n?/g, "¥n");
    }
    return result;
  }
</script>