表示設定を制御する

RaySheetは様々な表示設定を持っています。ページサイズや関連オブジェクトの開閉状態、検索パネルの開閉状態などです。制御できる表示設定の一覧は表示設定のリファレンスを参照してください。ここでは、Visualforceページに埋め込んだRaySheetの表示設定を制御する方法を説明します。

表示設定関連のJavaScript API

API 詳細
setDisplaySettingItemValue ある一つの表示設定の値を設定する場合に使用します。
getDisplaySettingItemValue ある一つの表示設定の値を取得する場合に使用します。
setAllDisplaySettings すべての表示設定の値を設定する場合に使用します。
getAllDisplaySettings すべての表示設定の値を取得する場合に使用します。

詳細はJava Script APIのリファレンス表示設定のリファレンスを参照してください。

ブラウザで表示設定を保持する

「どこでもView」側では表示設定の状態を保持しません。たとえば関連オブジェクトの開閉状態は必ず開いた状態でページが表示されます。これら表示設定をブラウザの開閉やリロード、ページの切り替えなどで引き継ぎたい場合には、setAllDisplaySettingsとgetAllDisplaySettingsを使用し、ブラウザのlocalStrageに保存する方法があります。

以下のコードを記述することで表示設定をlocalStrageに保持しブラウザの開閉などで引き継ぐことができます。

window.addEventListener("beforeunload", (evt) => {
            var sheet1 = gcbg.getRaySheet("sheet1");
            localStorage.clear(); 
            localStorage.setItem("settings", sheet1.getAllDisplaySettings());
        });

window.addEventListener("load", () => {
            var sheet1 = gcbg.getRaySheet("sheet1");
            var data = localStorage.getItem("settings");
            if(data) {
                sheet1.setAllDisplaySettings(data);
            }
        });

上記は”sheet1”というIDのRaySheetインスタンスが存在する前提のサンプルコードです。

表示設定を指定する

表示設定の各項目を個別に設定することもできます。例えば、ブラウザで表示設定を保持することに加えて、検索パネルの開閉状態だけは必ず開いた状態にするという制御もできます。

以下のコードを記述することで表示設定をlocalStrageに保持しながら検索パネルの開閉状態だけは必ず開いた状態にすることができます。ブラウザの開閉などで引き継ぐことができます。

window.addEventListener("beforeunload", (evt) => {
            var sheet1 = gcbg.getRaySheet("sheet1");
            localStorage.clear(); 
            localStorage.setItem("settings", sheet1.getAllDisplaySettings());
        });

window.addEventListener("load", () => {
            var sheet1 = gcbg.getRaySheet("sheet1");
            var data = localStorage.getItem("settings");
            if(data) {
                sheet1.setAllDisplaySettings(data);
            }
            sheet1.setDisplaySettingItemValue('MasterQueryPaneIsOn', true);
        });

上記は”sheet1”というIDのRaySheetインスタンスが存在する前提のサンプルコードです。

Copyright © 2019 GrapeCity inc. All rights reserved.