表示設定を制御する

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 © 2024 MESCIUS inc. All rights reserved.