CookBook

IM-BloomMaker スプレッドシート 特定のセルを編集できないようにするには?

投稿日:

この CookBook では intra-mart Accel Platform 2020 Winter から利用可能になった「スプレッドシート」エレメントで、特定のセルを編集できないようにする方法を紹介します。
なお「スプレッドシート」エレメントの利用には IM-Spreadsheet for Accel Platform のライセンスが必要になります。

はじめに

サンプル資材をインポートし、コンテンツ一覧画面からコンテンツ名 im_cookbook_190418 のデザイナ画面を開いてください。
サンプル資材: cookbook_190418_im_bloommaker

あらかじめ、数量と価格に入力すると合計金額を計算するテーブルを用意しています。
また、「行挿入」ボタンのクリックでテーブルに1行挿入する仕組みも用意しています。

一度プレビューで確認してみましょう。

この時点では「スプレッドシート」エレメントの sheetsEditable プロパティはデフォルトのままなのでセルの編集はできます。

1行挿入して数量と価格を入力してみましょう。

ここでは数量を2、価格を50としました。
金額と合計金額が変わったかと思います。

ただ、金額は関数で計算しているので入力する必要はないかと思います。
入力できないようにセルを保護できれば良いのですが、ピンポイントで保護することはできません。
しかし、シート全体を編集できないようにした上で編集可能なセルを指定すれば、似たようなことができます。
ここで使用するのが、シートの保護と特定のセルの保護解除の組み合わせです。
では実際に設定してみましょう。

設定方法 

  1. 「スプレッドシート」エレメントの sheetsEditable プロパティを false にします。
    これによりシートが保護され、セルの編集もできなくなります。
  2. アクションタブを開きます。
  3. 「IM-Spreadsheet」-「スプレッドシート(elementId:〇)の Workbook インスタンスを操作する。」アクションを配置します。
  4. 以下の内容を入力します。
    elementId: im-element-2
    ※elementId は「スプレッドシート」エレメントの共通プロパティのIDです。


  5. アクション名を Unprotect table にして保存します。
  6. 「スプレッドシート」エレメントの onCreateWorkbookEvent プロパティに Unprotect table アクションを設定します。
  7. プレビューで確認します。
    商品、数量、価格のみに入力でき、他のセルは編集不可になりました。
    ただしこの Unprotect table アクションは初期表示時のみにしか呼び出していないため、
    行挿入した場合は、セルが保護されたままで入力することができません。
    保護を解除するには、Insert row アクションの実行後に、Unprotect table アクションも呼び出す必要があります。

  8. アクションタブを開き、Insert Row アクションを編集します。

  9. 「標準」-「アクション〇を実行する」を配置し、Unprotect table を設定します。

    以上でアクションの設定は完了です。
    これで行挿入で増えたセルも編集できるようになりました。

-CookBook
-

執筆者:


comment

メールアドレスが公開されることはありません。 が付いている欄は必須項目です

関連記事

no image

【ViewCreator】検索にヒットした件数を取得する関数の作り方。

このCookBookでは、ViewCreatorで検索にヒットした件数を取得する関数の作り方についてご紹介します。 ユーザ定義関数についての詳細は下記のドキュメントを参照してください。 ViewCre …

no image

申請画面で設定した特定の期日までは承認が行えないフローの作成方法

このCookbookでは、申請画面で設定した特定の期日までは承認が行えないフローの作成方法を紹介します。 アクション設定の表示モード変換を使用し、承認可能日の前後で承認ボタンの表示有無が切り替わる画面 …

no image

Accel-Mart Plus on AWSにて複数のベースURLを利用する方法

製品標準の設定では、テナント一つにつき、一つの BaseURL のみが設定可能ですが、BaseUrlProvider インタフェースを実装することで、複数の BaseURL を持たせることができます。 …

IM-BloomMaker のアクション「複数選択組織検索ダイアログを表示する」の使い方

このCookBookでは、「複数選択組織検索ダイアログを表示する」アクションの使用方法について紹介します。 「複数選択組織検索ダイアログを表示する」アクションは、共通マスタから取得した組織情報をダイア …

no image

IM-LogicDesignerで、Redmineカスタムクエリのチケット一覧を取得する方法

このCookBookでは、IM-LogicDesignerを使用してRedmineのチケット (issues) 一覧を取得する方法を紹介します。 Redmineは、外部からチケット一覧を取得するための …