OnSheetForm - OnSheetフォームの作成

OnSheetで作成したワークブックに対しRuleを設定しOnSheetの編集画面に機能追加します。

OnSheetとの連携の概要や必要な設定については、OnSheetとの連携についてを参照してください。

■ストリーム情報

入力フォーマットすべて
接続数無制限
説明 入力ストリームは使用せず、すべて無視します。
出力フォーマットHTML
説明 ワークブックにRuleを設定した画面を返すHTMLを返します。

■コンポーネントプロパティ

名前プロパティ型マッピング説明
コネクション名connection- OnSheetサーバーへの接続情報を定義した汎用コネクションを指定します。
ワークブックstring入力&出力 Ruleを設定するOnSheetのワークブックを指定します。
ワークブックの指定方法は以下のいずれかです。
  • 「corp1/workspace1/book1」のように法人名から指定。
  • 「workspace1/book1」のようにワークスペースから指定。法人名はコネクションで定義した値になります。
  • 「book1」のようにブック名のみを指定。ワークスペースはログインユーザーの個人ワークスペースになります。
  • 「55」のようにワークブックIDを指定
タイトルstring入力&出力 生成する画面のタイトルを指定します。
省略時はワークブック名になります。
表示group- 画面に表示するUI部品を設定するプロパティ群です。
メニューバーboolean入力&出力 メニューバーを表示するかどうかを指定します。
ツールバーboolean入力&出力 ツールバーを表示するかどうかを指定します。
数式バーboolean入力&出力 数式バーを表示するかどうかを指定します。
ステータスバーboolean入力&出力 ステータスバーを表示するかどうかを指定します。
行番号boolean入力&出力 行番号を表示するかどうかを指定します。
列番号boolean入力&出力 列番号を表示するかどうかを指定します。
種別boolean入力&出力 Ruleの設定を元のワークブック自体に行うか、一時的なコピーの画面に行うかを指定します。
入力画面 [true] - 一時的な入力画面として指定のワークブックのコピーを作成しそのブックに対してRuleを設定します。
元画面 [false] - 指定の入力画面自体にRuleを設定します。
ルールシートを削除boolean入力&出力種別プロパティが入力画面の場合のみ表示されます。
ルール設定シート(「#Rule」という名前のシート)を削除するかどうかを指定します。
共有設定choice-種別プロパティが入力画面の場合のみ表示されます。
生成された入力画面のアクセス権を指定します。
テンプレートの設定を引き継ぐ [extend] - 元のワークブックで共有設定されているユーザーのみが画面を表示できます。
インターネットに公開 [public] - アクセス制限をかけません。ブラウザのユーザーがOnSheetにログインしていない状態でも画面を表示できます。
全ユーザーに公開 [common] - すべてのユーザーが画面を表示できます。(ブラウザのユーザーがOnSheetにログインしてさえいれば画面を表示できます。)
ユーザー指定 [user] - アクセス権を与えるユーザーを共有するユーザー名プロパティで設定します。
なし [none] - 元のワークブックのオーナーだけが画面を表示できます。
共有するユーザー名string入力&出力共有設定プロパティがユーザー指定の場合のみ表示されます。
アクセス権を与えるユーザーをカンマ区切りで指定します。
スクリプトstring入力&出力 生成する画面に差し込むJavaScriptを指定します。
言語choice- 生成する画面の言語を指定します。
日本語 [ja_jp] - 日本語
英語 [] - 英語

■トランザクション処理

コミット何もしません。
ロールバック何もしません。

■エラー処理

タイプパラ
メータ
エラー処理フロー
へのストリーム
エラー
コード
説明
汎用 なし コンポーネントの入力ストリーム なし OnSheetサーバーに接続できなかった場合
なし 指定のワークブックが見つからない場合

■コネクション設定

OnSheetコンポーネントを使用するためにはあらかじめ汎用コネクションにOnSheetサーバー接続用の設定をしておく必要があります。コネクション設定では以下のパラメータを定義します。

パラメータ名設定内容
url OnSheetサーバーのWebAPIのURLを指定します。
URLは通常「http://<ホスト名>/api/v1/rpc」です。
appKey OnSheetサーバーのアプリケーションキーを指定します。
アプリケーションキーの生成方法についてはOnSheetのWebAPIガイドを参照してください。
organisation OnSheetサーバーにログインするユーザーの法人名を指定します。
user OnSheetサーバーにログインするユーザー名を指定します。
password OnSheetサーバーにログインするユーザーのパスワードを指定します。
useProxy FSMCで設定したプロキシーサーバを使用する場合「true」を指定します。
プロキシサーバを使用しない場合は設定不要です。

■Ruleとは

本コンポーネントではOnSheetの画面に何らかの機能追加を行う設定を「Rule」と呼んでいます。

などの複数のRuleが定義されており、これらを組み合わることでOnSheetの画面に機能追加を行うことが可能です。
またRuleの設定を計算テンプレートに対して行うことができるので、作成した画面をマルチユーザーで使用する Webアプリケーションの入力インターフェースとして利用することもできます。

■種別についての注意事項

種別を「入力画面」とした場合、本コンポーネントは指定したワークブックの一時的なコピー(計算テンプレート)を 作成し、そこにRuleを設定したビューを返します。
そこで入力した内容は元のワークブックには一切反映されずブラウザを終了した時に破棄されます。

一方、種別を「元画面」とした場合、指定したワークブック自体にRuleを設定したビューを返します。
この場合は画面上で修正した内容がすべて元のワークブックにも反映されます。
ただしRuleが設定されるのはあくまで本コンポーネントが生成した一時的なビューなのでOnSheetサーバーに ログインして指定したワークブックを開いてもそこでRuleが有効になるわけではありません。

■Ruleの設定方法

Ruleは本コンポーネントのプロパティとして設定するのではなくワークブックプロパティに指定するワークブック上で行います。

具体的にはRuleを設定するワークブックに「#Rule」という名前のワークシートを作成し、そのシート上で、

ことでRuleが本コンポーネントにより設定されます。

設定できるRuleには以下のものがあります。

Rule名(A列)概要パラメータ
ShowRangeList指定のセル範囲の編集時に選択リストを表示します。
選択リストは別のセル範囲に定義します。
B列編集時にリストを表示する対象セル範囲
C列リスト化するセル範囲
指定範囲の先頭のセルの値は選択リストのタイトルになります。
ShowStaticList指定のセル範囲の編集時に選択リストを表示します。
選択リストはパラメータで指定します。
B列編集時にリストを表示する対象セル範囲
C列選択リストのタイトル
D列リスト化する文字列をカンマ区切りで指定
ShowHttpList指定のセル範囲の編集時に選択リストを表示します。
選択リストはフローで作成します。
B列編集時にリストを表示する対象セル範囲
C列リストを作成するフローを実行設定したURL
D列 (オプション) リストをキャッシュするかどうかを指定します。
キャッシュする場合、リスト作成のフローは一度しか実行されません。
省略時はFalseになります。
E列 (オプション) リスト作成するフローに渡すパラメータを指定します。
パラメータは「<パラメータ名>=<セル名>」の形式でカンマ区切りで複数指定できます。
ShowCalendar指定のセル範囲の編集時にカレンダーを表示します。B列編集時にカレンダーを表示する対象セル範囲
CheckNumber指定のセル範囲の入力値が整数であるかどうかをチェックします。B列値をチェックする対象セル範囲
C列(オプション)値の最小値
D列(オプション)値の最大値
E列(オプション)値が不正だった場合のメッセージ
F列(オプション)値が不正だった場合のセルの背景色
G列(オプション)値が正当だった場合のセルの背景色
CheckRegexp指定のセル範囲の入力値を正規表現でチェックします。B列値をチェックする対象セル範囲
C列値のチェックに用いる正規表現
D列 (オプション) C列で指定した正規表現にマッチした場合をエラーとするか、マッチしなかった場合をエラーとするかを指定します。
省略時はTrueになります。
E列(オプション)値が不正だった場合のメッセージ
F列(オプション)値が不正だった場合のセルの背景色
G列(オプション)値が正当だった場合のセルの背景色
ObserveCell指定のセル範囲のセルが編集された時に背景色を変更します。B列編集を監視する対象セル
C列 (オプション)監視する変更の種別を指定します。
local - ローカルでの編集のみを監視します。
remote - リモートでの編集のみを監視します。
all - ローカルとリモートの両方の編集を監視します。
省略時にはlocalになります。
D列 (オプション)編集時に設定する背景色を指定します。
省略時には0xCCFFFFになります。
KickHttp指定のセル範囲のセルが編集された時にフローを実行します。B列編集を監視する対象セル範囲
C列セル編集時に実行するフローを実行設定したURL
D列 (オプション) 実行するフローに渡すパラメータを指定します。
パラメータは「<パラメータ名>=<セル名>」の形式でカンマ区切りで複数指定できます。
AlertCell 指定のセルに書き込まれた文字列を警告ダイアログで表示します。
※このRuleは種別プロパティが入力画面の場合のみ有効です。
B列監視するの対象セル
ConfirmCell 指定のセルに書き込まれた文字列を確認ダイアログで表示し、はいが選択された場合にフローを実行します。
※このRuleは種別プロパティが入力画面の場合のみ有効です。
B列監視するの対象セル
EvalCell 指定のセルに書き込まれた文字列をスクリプトとして実行します。
※このRuleは種別プロパティが入力画面の場合のみ有効です。
B列監視するの対象セル

セル範囲の指定は以下の書式で行います。

<シート名>!<セル位置>[:<セル位置>]
//例 「Sheet1!A1:C10」「Sheet1:B5」

シート名の省略や名前付きセル範囲の指定はできません。

「#Rule」シートのA列が上記Rule名以外だった場合はその行は無視されます。
設定できるRuleは最大で100個です。

■Ruleの詳細

ShowRangeList

セルが編集状態になった時に同じワークブック内に定義した選択用のリストを表示するRuleです。

B列にリスト表示を行うセル(範囲指定可)を指定し、C列にリスト化するセル範囲を指定します。

リスト化するセル範囲の先頭セルの文字列が選択リストのタイトルとなり、残りのセルの文字列が選択リストのアイテムとなります。
セル範囲中の空白セルは無視され、リストに含まれません。
またセル範囲の文字列の変更は次に選択リストが表示される際に反映されます。

ShowStaticList

セルが編集状態になった時に静的に定義した選択用のリストを表示するRuleです。

B列にリスト表示を行うセル(範囲指定可)を指定し、C列に選択リストのタイトルを、D列に選択リストをカンマ区切りで指定します。

//D列の指定方法
営業部,開発部,企画部

ShowHttpList

セルが編集状態になった時にHttp経由でフローを実行しそのレスポンスを選択リストとして表示するRuleです。

B列にリスト表示を行うセル(範囲指定可)を指定し、C列に選択リストを作成するために実行するフローのURLを指定します。
指定するフローはこのコンポーネントが実行されているフローと同一サーバー上でなければなりません。
(逆から言えばURLの指定は相対パスで構いません。)

D列、E列の指定はオプション項目なので省略が可能です。
D列は実行結果をキャッシュするかどうかの指定です。
TRUEを指定した場合、Httpリクエストによるフローの実行は初回に1度だけ実行されそれ以降はキャッシュが使用されます。
(ただしE列でパラメータが指定された場合はここでの指定に関わらず毎回Httpリクエストが発行されます。)

E列では実行するフローに渡すパラメータを指定できます。
例えば

dept=Sheet1!C3,empid=Sheet1!C4

とするとSheet1のC3セルの値がdeptパラメータの値として、C4セルの値がempidパラメータの値としてHttpリクエストに渡されます。
(つまり実行するフローのHttpStartコンポーネントでParameterListのフィールドとして定義しておくことによってその値をフロー内で利用できます。)

実行するフローは出力ストリームとして「title」という文字列と「items」という文字列の配列を持つJSONテキストを返すように作成します。

{
"title" : "部署一覧",
"items" : [ "営業部", "開発部", "企画部"]
}

このようなJSONテキストはParameterList型のストリームで

title: String
items: String[]

というフィールド定義を行いHttpEndコンポーネントでJSON変換を行うことで作成することができます。

出力ストリームを

{
"error" : "部署が見つかりません",
}

のように「error」という文字列を持つJSONテキストにした場合選択リストは表示されず代わりに指定のメッセージでエラーダイアログが表示されます。

選択リストを表示するRuleの使い分け

ShowRangeListでは表示するリストは同一ワークブック内のどこかに定義されている必要があります。
つまり選択リストの内容はユーザーの目にするところにありますし、編集も可能です。
(そしてユーザーの編集結果は即座に選択リストに反映されます。)

ShowStaticListは選択リストが固定的な場合に適しており、 「種別=入力画面」かつ 「ルールシートを削除=はい」の場合はユーザーの目から 完全に隠すことができます。

ShowHttpListはDBを使用するなど外部のデータソースから選択リストを作成する場合に使用します。
またパラメータによって選択リストの内容を動的に切り替えることができるのもこれだけです。

ShowCalendar

セルが編集状態になった時に日付入力のためのカレンダーを表示するRuleです。

B列にカレンダーを表示を行うセル(範囲指定可)を指定します。
日付の表示形式はセルの書式設定に従います。

CheckNumber

セルの編集完了時に入力値をチェックし、値が指定の範囲内の整数でない場合はエラーダイアログを表示するRuleです。

B列にチェックを行うセル(範囲指定可)を指定します。

C列以降はオプション項目なので省略が可能です。
C列、D列には値の最小値、最大値を指定できます。
指定の最小値より小さい値または最大値より大きい値を指定した場合にはエラーとなります。
省略時には最小値(または最大値)のチェックは行われません。

E列にエラーメッセージを指定することで値が不正な場合のエラーメッセージを変更することができます。
省略時にはエラーメッセージは「設定値が不正です」となります。

F列、G列に値が不正な場合と正当な場合の背景色を指定することでに入力された値に応じて背景色を変更することができます。
値の指定方法は「0xFF0000」のように16進数値で行います。
省略時には背景色の変更は行われません。

CheckRegexp

セルの編集完了時に入力値をチェックし、不正な場合にはエラーダイアログを表示した上で背景色を赤色にするRuleです。
チェック内容は正規表現で指定します。

B列にチェックを行うセル(範囲指定可)を指定し、C列にチェックする正規表現を指定します。

D列以降はオプション項目なので省略が可能です。
TRUEの場合はC列で指定した正規表現にマッチしなかった場合にエラーとなり、
FALSEの場合はマッチした場合にエラーとなります。
省略時にはTRUEとなります。

E列にエラーメッセージを指定することで値が不正な場合のエラーメッセージを変更することができます。
省略時にはエラーメッセージは「設定値が不正です」となります。

F列、G列に値が不正な場合と正当な場合の背景色を指定することでに入力された値に応じて背景色を変更することができます。
値の指定方法は「0xFF0000」のように16進数値で行います。
省略時には背景色の変更は行われません。

ObserveCell

指定のセル範囲の値が変更された時にセルの背景色を変更するRuleです。
B列に監視を行うセル(範囲指定可)を指定しェックする正規表現を指定します。

C列、D列はオプション項目なので省略が可能です。
C列は監視するセルの変更がユーザーの手によって行われたもの(local)を対象とするか
(KickHttpで起動されたフローによって)サーバー側で行われたもの(remote)を対象とするかを指定します。
両方を対象とする場合は「all」を指定します。

C列、D列はオプション項目なので省略が可能です。
C列は監視するセルの変更がユーザーの手によって行われたもの(local)を対象とするか
(KickHttpで起動されたフローによって)サーバー側で行われたもの(remote)を対象とするかを指定します。
両方を対象とする場合は「all」を指定します。
省略時は「local」となります。

D列には変更を感知した時に設定する背景色を指定します。
色の指定は「0xCCFFFF」のように16進数値で行います。
省略時は「0xCCFFFF」になります。

KickHttp

指定のセル範囲の値が変更された時にHttpRequestを発行するRuleです。

B列に監視を行うセル(範囲指定可)を指定し、C列に実行するフローのURLを指定します。
指定するフローはこのコンポーネントが実行されているフローと同一サーバー上でなければなりません。
(逆から言えばURLの指定は相対パスで構いません。)

D列指定はオプション項目なので省略が可能です。
D列ではShowHttpListの場合と同様の書式でHttpリクエストに渡すパラメータを指定できます。
ただしKickHttpの場合はShowHttpListと異なりパラメータの定義を行わずとも標準で付加されるパラメータとして以下のものあります。

bookIdワークブックID
sheetIdシートID
sheetNameシート名
cellNameKickHttpのトリガーとなったセルのセル名
cellValueKickHttpのトリガーとなったセルの値

bookIdやsheetNameを利用することで現在表示中のワークブックに対してフローの中から値を設定することが可能になります。

AlertCell

指定のセルに値がリモートから書き込まれた時にそれを警告ダイアログで表示するRuleです。

B列に監視を行うセルを指定します。

KickHttpやボタンによって実行されたフローの中からこのセルに値を書き込むことで警告ダイアログを表示させることができます。
表示するメッセージの中にはHTMLのタグが自由に使用できます。

このRuleは「種別=元画面」の場合は無視されます。

ConfirmCell

指定のセルに値がリモートから書き込まれた時に確認ダイアログを表示し、「はい」が選択された時にHttpリクエストを実行するRuleです。

B列に監視を行うセルを指定します。

KickHttpやボタンによって実行されたフローの中からこのセルに値を書き込むことでユーザーの意思を確認した上で次の処理に進ませることができます。
AlertCellと組み合わせることによって

  1. ボタンクリック時に入力されたセルの値をチェックするフローを実行
  2. フロー内でワークブック上に入力された値をチェックし、不備がある場合はAlertCellにエラーメッセージを書き込んで終了
    → ユーザーの画面上では警告ダイアログが表示される。
  3. 不備がない場合はConfirmCellに確認メッセージと次に実行する処理のURLを書き込んで終了
    → ユーザーの画面上では確認ダイアログが表示され「はい」をクリックすると次の処理が実行される。

というような実行確認の処理を作成することができます。

ConfrimCellに書き込む値は確認メッセージと次に実行するURLをカンマで区切って指定します。
メッセージにはHTMLのタグが使用でき、URLの指定には相対パスが使用できます。

本当に削除しますか?,../Project1/Flow1

このRuleは「種別=元画面」の場合は無視されます。

EvalCell

指定のセルにJavaScriptコードがリモートから書き込まれた時にそれを実行するRuleです。

B列に監視を行うセルを指定します。

KickHttpやボタンによって実行されたフローの中からこのセルにJavaScriptコードを書き込むことでそのスクリプトをクライアント側で実行することができます。
書き込む値は実行可能なJavaScriptコードでなければなりません。

alert("JavaScriptによるメッセージ表示です。");

※技術的にはここでのスクリプトでOnSheet自体を操作することも可能ですが、OnSheetのJavaScriptAPIは原則非公開でありバージョンアップ時の互換性は保証されていません。

このRuleは「種別=元画面」の場合は無視されます。