この記事では、テーブルの行を同一レコード内の別のテーブルへコピーする基本的な設定方法と、コピーする行を選んだり、行の値によってコピー先を振り分けたりする応用例を紹介します。


完成イメージ

テーブル1のフィールド値を、そのままテーブル2へ移す最もシンプルな形です。


アプリの設定

この記事では、次のようなアプリを例に説明します。

カスタマイズに必要なフィールドのみ下記に詳細を書き出します。

※フィールド名とフィールドコードは同じものを設定しています。

フィールド名

フィールドタイプ

備考

テーブル1

テーブル


ドロップダウン1

ドロップダウン

選択肢=[A,B]

日付1

日付


文字列1

文字列(1行)


テーブル2

テーブル


ドロップダウン2

ドロップダウン

選択肢=[A,B]

日付2

日付


文字列2

文字列(1行)


※例2では、テーブル2と同じ構成のテーブル3も使用します。


カスタマインの設定

以降では、それぞれのアクションを順に説明します。



ボタンを配置する(アクション 33)

コピーを実行するボタンを、テーブル1のフィールド名の右に配置します。

やること「ボタンをフィールド名の右に配置する」

【フィールド】

テーブル1

【ラベル】

全コピー


条件「追加画面・編集画面・詳細画面のいずれかを表示した時」

【一覧画面の鉛筆を押した時】

一覧画面の鉛筆を押した時は含めない


コピー元のテーブル行を取得する(アクション 34)

ボタンが押されたら、コピー元となるテーブル1の行を取得します。

やること「テーブル行をレコードとして取得する」

【テーブル】

テーブル1

【空の行を取得するかどうか】

空の行は取得しない


条件「ボタンを押した時」

【ボタン】

33


取得した行をコピー先のテーブルに書き出す

追加画面・編集画面と詳細画面とで、書き出しに使う「やること」が異なります。それぞれの画面用にアクションを設定します。

■追加画面・編集画面の場合(アクション 35)

やること「レコードをテーブルに書き出す」

【書き出し先テーブル】

テーブル2

【レコード】

34

【マッピング】

ドロップダウン2 = ドロップダウン1
日付2 = 日付1
文字列2 = 文字列1

【既存の行】

既存のテーブル行はクリアする


条件「他のアクションの実行が完了した時」

【アクション】

34


追加条件「現在の画面が詳細画面でないならば」

※「〜でないならば」の条件は、条件の一覧には表示されません。条件「現在の画面が詳細画面ならば」を選択したあと、右側の「条件を反転」ボタンを押すと設定できます。


■詳細画面の場合(アクション 36・37)

詳細画面では、レコードを直接更新してテーブル2に書き出し、そのあと画面をリロードして更新後の内容を表示します。

やること「レコードを指定アプリのテーブルに書き出す」

【書き出し先アプリ】

(カスタマイズ対象アプリと同じアプリ)

【キーとなるフィールド】

レコード番号

【キーの値】

= レコード番号

【書き出し先テーブル】

テーブル2

【元になるレコード】

34

【テーブルへのマッピング】

ドロップダウン2 = ドロップダウン1
日付2 = 日付1
文字列2 = 文字列1

【既存の行】

既存のテーブル行はクリアする


条件「他のアクションの実行が完了した時」

【アクション】

34


追加条件「現在の画面が詳細画面ならば」



やること「画面をリロードする」


条件「他のアクションの実行が完了した時」

【アクション】

36



どの画面で実行しても、【既存の行】に「既存のテーブル行はクリアする」を指定しているため、テーブル2にもともとあった行は削除され、テーブル1の内容に置き換わります。


応用例

基本の設定にアクションを追加すると、次のような使い方もできます。


例1:コピーする行を選ぶ(アクション 38)

ボタンを押すとテーブル1の行がポップアップで一覧表示され、チェックを入れた行だけをコピーします。


次のアクションをアクション34の後に追加します。

やること「レコードの一覧をポップアップで表示する」

【レコード】

34

【表示するフィールド】

ドロップダウン1, 日付1, 文字列1

【選択方法】

複数選択(チェックボックス)

【メッセージ入力】

コピーする行を選択して下さい

【OKボタンの名前】

OK

【キャンセルボタンの名前】

キャンセル

【未選択を許可するかどうか】

未選択の場合OKを押せなくする


条件「他のアクションの実行が完了した時」

【アクション】

34



あわせて、書き出しのアクション(35・36)の【レコード】【元になるレコード】に38を指定し、条件を「確認・入力ダイアログで「OK」を押した時」に変更して、【確認・入力ダイアログアクション】に38 を指定します。


例2:値によってコピー先を振り分ける(アクション 39)

ボタンを押すと、テーブル内のドロップダウン1の値が「A」の行はテーブル2へ、「B」の行はテーブル3へ振り分けてコピーします。


書き出しの前に、次のアクションを追加します。

やること「取得したレコードを絞り込む」

【元のレコード】

34

【条件になるフィールド】

ドロップダウン1

【条件】

等しい

【比較値】

= "A"


条件「他のアクションの実行が完了した時」

【アクション】

34


あわせて、書き出しのアクション(35・36)の【レコード】【元になるレコード】と、条件「他のアクションの実行が完了した時」の【アクション】に、39 を指定します。

また、テーブル3へは、【比較値】を「= "B"」にした絞り込みのアクションと、書き出し先をテーブル3にした書き出し・更新のアクションを同じように設定します。



まとめ

まずは基本の「全コピー」から試していただき、必要に応じて、行を選んでコピーしたり、値によって振り分けたりする設定もご活用ください。


ご不明な点がございましたら、チャットでお問い合わせください。

ドキュメントやサポートページも、ぜひご活用ください。