Setコマンド(サブコマンド)

 Setコマンドは、WriteSheetコマンド、WriteReportコマンド、ReadReportコマンドと組み合わせて使う、サブコマンドです。

XCuteでは、Excelの印刷範囲がHTML変換されてブラウザに渡されます。これとは逆にブラウザからExcelに値を引き渡す仕組みが必要で、それを実現しているのがSetコマンドなのです。

 Setコマンドの性質上、このコマンドが指定されるのはURLやフォームの中に限られます。また、XCute内で擬似的にURLを指定するコマンド連鎖でも使われます。

 メインコマンドとSetコマンドで指定されたクエリー・ストリングをXCuteがサーバ側のExcelで受け取ると、まず、メインコマンドを調べひな型シートを見つけ出しそのコピーを作成し、その後にSetコマンドをExcelに展開し、画面を再生します。この時、Set先のセルに入力規則が設定され且つエラーメッセージが設定されていれば、値を書きこんだ後に入力規則のチェックが行われ、エラーが発生したなら、処理を中断してブラウザに戻りエラーメッセージを表示します。

 また、ひな型シートにExcelの入力規則を設定すると、このSetコマンドが自動で作成されます。

書式
Set_RyCx=値


Setコマンドの配列化
 
Setコマンドは配列化もサポートされています。 配列化は、複数選択可能なリストボックスや、複数選択してのファイルアップロードなど、入力規則は一つだが、複数のアイテムを選択、指定する場合に用います。

例:
 以下のようなリストボックス(複数選択)を定義した場合
   AAA  <--- 選択
   BBB
   CCC  <--- 選択
 上記のように、複数(AAAとCCC)を選択できます。
 
・Setコマンドを配列化しない場合の例:
 リストボックスは入力規則により作成します。 属性差込位置に、|mutiple=multiple|Name=Set_R10C10 と定義されているものとします。
 発行されるSetコマンドは以下となります。
 Set_R10C10=AAA
 Set_R10C10=CCC
 同一番地のSetとなり、R10C10にセットされる値は後勝ちの「CCC」のみ となります。 このままですと複数選択可能な場合、最初に選択された値を取得することが出来ません。

・Setコマンドを配列化した場合の例:
 リストボックスは入力規則により作成します。 属性差込位置に、|mutiple=multiple|Name=Set_R10C10[V] と定義されているものとします。
 発行されるSetコマンドは以下となります。
 Set_R10C10=AAA
 Set_R11C10=CCC
 縦に行番地が足された形のSetとなります。番地が重ならないので、 「AAA」と「CCC」の値が取得できるようになります。

利用可能バージョン
XCute Build (12or13).13.12以降

書式
 Set_RyCx[H|V]=値
 「H」と「V」は、Setの展開方向です。Hは水平方向、Vは垂直方向にSetコマンドが発行されます。

なお、ファイルアップロード の、属性差込位置に、|mutiple=multiple|Name=Set_R10C10[V] と定義すれば、複数選択ファイルのアップロードが可能となります。


Setコマンドで値を戻す時のエラーチェック

下記は、ひな型のあるセルに入力規則を文字列とし、空白を無視しない設定を行い、エラー・メッセージも設定します。


このセルの値を空白にした時のExcelのエラーをブラウザにおいても以下のように表示します。

なお、Setコマンドはセキュリティ・ホールを生みやすく、proles.Ini ファイルのSetCommandLevelで、Setコマンドが認められるセルを指定できます。

proles.iniのSetCommandLevelとSetコマンドが禁止される領域(セル)
SetCommandLevel Setコマンドが禁止される領域
-1 禁止領域はなし
0 1〜3行と;htmltagの右下(タグ差込領域)
1 上記0と印刷範囲の入力規則未設定のセル
2 上記0と全ての入力規則未設定のセル

適用位置
ブラウザURL、フォーム

参照
 ○
Proles.iniファイル