作成するアプリケーションの規模が大きくなれば、ほぼ同じ内容の処理のコマンドセットを複数個所で使用したいことがあります。このようなときに同じようなコマンドを複数作成してしまうと、開発作業として同じ手順を繰り返し行う必要があるだけでなく、作成した複数のコマンドの修正も、すべてに対して行う必要があり開発生産性と保守性の両方が低くなります。
このようなケースでは、同じ処理のコマンドセットを再利用コマンドとして1つに集約することで、作成や保守の手間を削減できます。
再利用コマンドは、新規に作成する方法と既存のコマンドを再利用コマンドへと変換する2つの方法があります。
ここでは、チェックボックス型セルの値がTrueであればFalseに、FalseであればTrueに変更する再利用コマンドを作成します。
次のようなページを作成します。
B2セルのチェックボックス型セルには「Checkbox1」というセル名を、B6セルのチェックボックス型セルには「Checkbox2」というセル名を設定します。
[作成]リボンタブ - [再利用コマンド]ボタンをクリックし、[新しい再利用コマンドの作成]ダイアログを開きます。
[新しい再利用コマンドの作成]ダイアログで[名前]と[説明]を入力します。
ここでは[名前]を「チェックボックス値の反転処理」と設定します。
「パラメーター」タブをクリックしパラメーターを定義します。
[新しいパラメーター]ボタンをクリックしてパラメーターを1つ追加し、[名前]を「対象チェックボックス」に設定したら[OK]ボタンをクリックします。
[説明を追加...]で追加した説明は、「再利用コマンドの呼び出し」コマンドなどでパラメーターを参照するときに表示されます。
注意:ここで定義したパラメーター名を再利用コマンド内で使用し、パラメーターの値を参照できます。この際、この再利用コマンドの呼び出し元のページに存在するセル名と名前が重複している場合、セル名が優先されて参照されます。Forguncy Builderはこの名前の重複を検知できません。そのため、名前の重複が起こらないように、パラメーター名には「p対象チェックボックス」のように接頭辞を付けるなどのルールを適用することをおすすめします。
ヒント:
再利用コマンドの呼び出し元から値が引き渡されてくるのがパラメーターとなりますが、ここで定義したパラメーターはコマンド内では変数と同じ扱いとなります。たとえば、「p商品名」というパラメーターを定義し、コマンド内で[変数の設定]コマンドで「p商品名」という変数を作成した場合、「p商品名」という変数が再定義されることになるため、「p商品名」で参照される値は[変数の設定]コマンドで設定した値になりますす。
戻り値を定義するには[戻り値]タブをクリックします。
既定の戻り値としてリターンコードとリターンメッセージがあります。それ以外の戻り値を定義する場合は[新しい戻り値]をクリックして、戻り値の名前を設定します。
コマンドを追加します。
コマンドの編集アイコン[コマンド...]をクリックして[コマンドの編集]ダイアログを開きます。
[コマンドの選択]ドロップダウンリストから「条件分岐」を選択します。
「If [ 条件式 ]」を選択し、条件式を設定するタブを表示します。
[新しい条件]ボタンをクリックして条件を1つ追加します。
[フィールド]列にある[]ボタンをクリックしてダイアログを開きます。
変数一覧から「対象チェックボックス」ダブルクリックして数式へと追加し、[OK]ボタンをクリックします。
注意:
変数が数式やセル参照だった場合、処理するタイミングは変数を利用するコマンド実行時となります。
この時、変数を利用するコマンドが数式やセル参照に対応していなかった場合、値はnullとなりますのでご注意ください。
(例:条件分岐コマンドのフィールド列の値には「=A1+B1」といった数式を設定することはできません。もし変数「=A1+B1」を参照するように設定した場合、結果はnullとなります)
[値]列の値を「True」に設定します。
「[コマンド未設定]」を選択し、[コマンドの選択]ドロップダウンリストで「セルプロパティの設定」コマンドを選択します。
[対象セル]列の右側にある[]ボタンをクリックして[パラメーターの選択]ダイアログを開きます。
[変数一覧]で「対象チェックボックス」をダブルクリックして数式に追加し、[OK]ボタンをクリックしてダイアログを閉じます。
[設定値]列の値に「False」と入力します。
[Elseの追加]ボタンをクリックしてElseを追加します。
「Else」部分の下側にある「[コマンド未設定]」を選択し、[コマンドの選択]ドロップダウンリストで「セルプロパティの設定」コマンドを選択します。
先ほど同様の手順で、[対象セル]は「対象チェックボックス」ダブルクリックして数式に追加し、[設定値]は「True」を設定します。[OK]ボタンをクリックしてすべてのダイアログを閉じます。
「チェックの反転」ボタンを選択し、右ペインから[コマンド...]をクリックして[コマンド]ダイアログを開きます。
コマンドウィンドウで、[再利用コマンドの呼び出し]を選択します。
[使用する再利用コマンド]ドロップダウンリストで先ほど作成した「チェックボックス値の反転」再利用コマンドを選択します。
入力パラメーターである[対象チェックボックス]は、B2セルを選択して「=Checkbox1」と入力します。
手順15から17の操作と同様に、2つ目の「チェックの反転」ボタンに対しても「チェックボックス値の反転」再利用コマンド設定します。
入力パラメーターである[対象チェックボックス]は、B6セルを選択して「=Checkbox2」と入力します。[OK]ボタンをクリックしてダイアログを閉じます。
[ホーム]リボンタブにあるデバッグの[開始]ボタンをクリックし、アプリケーションの動作を確認します。
1つ目の「チェックの反転」ボタンをクリックすると、1つ目のチェックボックスの値が、2つ目の「チェックの反転」ボタンをクリックすると2つ目のチェックボックスの値が反転することを確認できます。
複数のデータ登録ページが存在するが、登録するデータは1つのフィールドのみが各ページで異なり、それ以外は共通であるような場合に使用できる再利用コマンドを既存コマンドを変換する方法で作成します。
次のようなフィールドを持つテーブルを作成します。
ここではテーブルの名前は「テーブル1」とします。
[作成]リボンタブから[テーブルからページを生成]ボタンをクリックし、「テーブル1」からページを作成します。
設定はすべて既定のままとします。
作成されたページ「テーブル1_登録・更新の共通ページ」を「登録ページA」に変更します。
ページ名の変更は右クリックのコンテキスメニューにある[名前の変更]か、F2キーで行えます。
「登録ページA」の上部に適当に結合したセルの領域を作成し、そのセルに対して[挿入]リボンタブから[キーワード]-[ページ名]を挿入します。
フォントの大きさやレイアウトは適宜調整してください。
「登録」、および「更新」となるボタン型セルを選択し、右ペインから[コマンド...]ハイパーリンクをクリックします。
ここではK12セルに配置されているボタンが対象となります。
[条件分岐]コマンドの最初の条件で実行される[テーブルデータの更新]コマンドを選択し、[詳細設定...]のハイパーリンクをクリック、[非データ連結フィールド]を1つ追加し、[フィールド]を「種類」、[値]を「=A1」とします。
このようにすることで、「%PageName%」キーワードにより取得されるページ名が、「種類」フィールドの値として登録されます。
コマンドの一覧が表示される左側の領域を右クリックし、コンテキストメニューから[再利用コマンドへ変換]を選択し、本コマンドセットを再利用コマンドへと変換します。
ここでは通常のコマンドセットを再利用コマンドに変換する方法を使用しますが、[高度な機能]リボンタブから再利用コマンドを新規作成することもできます。
再利用コマンドの名前を入力して[OK]ボタンをクリックします。
ここでは既定で表示される「再利用コマンド1」とします。
再利用コマンドに変換されるので、[OK]ボタンをクリックして[コマンド]ダイアログを閉じます。
「パラメーター1」の値に設定されているセル参照がページ名を表示するセル、「パラメーター2」の値に設定されているセル参照が「登録」、および「更新」となるボタン型セルであることを確認します。
[ナビゲーション ウィンドウ]上の「登録ページA」を右クリックし、コンテキストメニューから[複製]を選択します。
複製されたページの名前を「登録ページB」に変更します。
ページ名の変更は右クリックのコンテキスメニューにある[名前の変更]か、F2キーで行えます。
「登録ページB」が「登録ページA」と区別がつきやすいよう、適宜セルの塗りつぶしの色などを変更します。
「テーブル1_一覧ページ」ページの「登録ページ」ハイパーリンク型セルをコピーして、適当な位置に貼り付けます。
ここではG8セルをコピーし、L8セルの位置に貼り付けます。その後、分かりやすいようにそれぞれ「登録ページA」、「登録ページB」にセルの値を変更します。
コピーした「登録ページB」ハイパーリンク型セルを選択し、右ペインの[コマンド...]ハイパーリンクをクリックしてコマンドの内容を次の図のように変更します。
遷移先ページを「登録ページB」へと変更し、[遷移先ページの値の受け渡し]を設定します。
リストビュー内の「更新」ハイパーリンク型セルを選択し、右ペインから[コマンド...]ハイパーリンクをクリックして[コマンド]ダイアログを開きます。
ここではT10セルが対象セルとなります。
[条件分岐]コマンドを追加し、「テーブル1」テーブルの「種類」フィールドの値が「登録ページA」だった場合には「登録ページA」へと、そうでない場合には「登録ページB」へ遷移するようにコマンドを修正します。
[遷移先ページの値の受け渡し]では、「登録」、および「更新」となるボタン型セルに「更新」という値(文字列)を渡すようにそれぞれ設定します。
「テーブル1_一覧ページ」ページをスタートページに設定し、デバッグの開始を行います。
スタートページの設定方法はページの操作(ナビゲーションウィンドウ)を参照してください。1つの再利用コマンドを2つのページ上で再利用し、それぞれのページ名が「種類」フィールドに登録されることを確認できます。
[コマンド]ダイアログで、[コマンドの選択]ドロップダウンリストから[再利用コマンドの呼び出し]コマンドを選択します。
[使用する再利用コマンド]を選択し、適宜[パラメーター]を設定します。
ナビゲーションウィンドウの[再利用コマンド]には作成された再利用コマンドの一覧が表示されます。
再利用コマンドの先頭にある[]アイコンをクリックすると再利用コマンドを構成する下記の要素を確認できます。それぞれのダブルクリックするとダイアログで編集が可能です。
再利用コマンドを右クリックすると表示されるコンテキストメニューでは下記の操作を行えます。
項目 |
説明 |
---|---|
開く | 対象の再利用コマンドを[再利用コマンドの設定]ダイアログボックで開きます。 |
複製 |
対象の再利用コマンドを複製します。 |
名前の変更 |
対象の再利用コマンドの名前を変更します。 |
削除 |
対象の再利用コマンドを削除します。 |
すべての参照を検索 |
対象の再利用コマンドの使用箇所を検索し、作業スペースの下部にその一覧を表示します。 |
1つ上へ移動 |
対象の再利用コマンドの表示を1つ上に移動します。 |
1つ下へ移動 |
対象の再利用コマンドの表示を1つ下に移動します。 |
再利用コマンドに定義した戻り値の返し方と受け取り方を示します。
戻り値の返し方
再利用コマンドに追加した戻り値は[リターン(コマンドの終了)]コマンドを使用して返します。
戻り値の受け取り方
[リターン(コマンドの終了)]コマンドで返した戻り値は[再利用コマンドの呼び出し]コマンドで受け取ることができます。
作成した再利用コマンドを修正する例を示します。修正によってその再利用コマンドを利用しているすべての箇所が変更されます。
修正する再利用コマンドを選択します。
ナビゲーションウィンドウの再利用コマンドから該当の再利用コマンドを右クリックしコンテキストメニューの「開く」を選択します。
[再利用コマンドの設定]ダイアログボックスが表示されます。
コマンドを変更します。
[コマンド]タブの[コマンド...]をクリックすると、[コマンド編集]ダイアログボックスが開きます。
データの登録を行う[テーブルデータの更新]コマンドの[確認ダイアログを表示する]チェックボックスをチェックし、[OK]ボタンをクリックしてダイアログを閉じます。
本変更により、登録ボタンを押した際に確認ダイアログが表示されるようになります。
デバッグの開始を行い、動作を確認します。
1つの再利用コマンドの修正により、「登録ページA」と「登録ページB」の両方において、その修正が反映されていることを確認できます。