データベース設計文書
なんか問題がある?心配しないで、答えは全部ここにいる。
全サイト検索

データコンバート

データコンバート

データコンバートのアクションボタンを設定すると、ソースフォーム上で直接アクションボタンをクリックし、特定のフィールドに格納されているデータを別のフォームにコピーすることができます。(すべてのフィールドをコピーするか、特定のフィールドのみを選択してデータコンバートするかは、選択可能)

データコンバートのリンク方法は、マルチシートとは異なります。

データコンバートのポイントは、あるデータをコンバートすると、そのデータは別のフォームにコピーされ、新しいデータとして保存されるので、両者のデータはりんくしていないことです。

そのため、データソースに影響を与えることなく、コンバートされるデータを編集することができます。

別のフォームにデータコンバートを設定する

あるフォームから別のフォームにデータをコンバートして、別のデータとして保存するには、ソースフォームのデザインモードのフォームツールの下にあるデータコンバートをクリックしてください。

以下の例では、販売注文を作成していますが、見積書から顧客への受注書が作成されています。

見積書のフォームには、受注書フォームに必要なデータがすでに含まれています。 注文するかしないかはお客様の選択なので、2つのフォームをリンクさせたくないため、データコンバートを使用します。

受注書のフォーム構造は見積書と非常に似ています。 実際にデータコンバートを設定する際には、フォーム間のデザインが似ていたり、データコンバート用のフィールドを多く含む必要はありませんが、このような一貫したデザインは、修正や識別のために便利です。

ソースフォーム(見積書フォーム)でデザインモードに入ります。見積書フォームから特定のデータを販売注文書にコンバートする設定をします。

フォームツールフォームツールカスタムボタンの下にあるデータコンバートを選択します。

データをコンバートするフォームを選択します。ここでは、受注書を選択します。

そして、このフォーム(見積書)のどのフィールドを別のフォーム(受注書)のどのフィールドに転送するかを決定するために、フィールドの割り当て作業を開始します。

プラス記号を使用して、対応するフィールドをさらに追加します。 また、右側の「フィールドを自動選択」をクリックすると、左右で同じフィールド名のフィールドを自動的に合わせることができます。

両方のフォームのすべてのフィールドをマッチさせてデータをコンバートするか、一部のフィールドのみを選択することができます。

2つのフォームのフィールドを対応付ける場合、それぞれの側のフィールドの名前が異なる場合がありますので、その際は正しい対応付けを行うようにしてください。

問題がなければ、レコードコンバートボタンを作成するボタンを押します。

すると、このアクションボタンの名前を入力するためのメッセージが表示されます。

ここでは、「見積書から受注書を作成する」と入力します。

アクションボタンの名称は、他のユーザーがデータベースを利用しやすいように、シンプルでわかりやすいものにすることをお勧めします。

上記の手順が完了すると、アクションボタンがフォームに追加されます。

フォーム設定アクションボタンから確認することができます。

デザインを忘れずに保存をクリックすれば、新しいデータコンバートアクションボタンを追加する手順は完成です!

アクションボタンでデータをコンバート

すでにリンクツールのデータコンバート機能を使って見積書フォームにアクションボタンを作成していますので、見積書フォームにデータを保存した後にこのアクションボタンが表示されます。

このボタンを押すと、先ほど設定した対応フィールドに従って、見積書の内容が受注書にコピーされます。

つまり、受注書には新しいレコードがあり、アクションボタンを押した見積書からコンバートせれたことがわかります。

一般的なフィールドデータだけでなく、子テーブルの商品アイテム情報もコンバートすることができる。

同じデータに対してこのボタンを複数回クリックすると、別のフォームに複数の新しいデータが生成されます。例えば、ある見積書に対して「データコンバート」ボタンを複数回クリックすると、その見積書から多くの受注書が生成されます。

同じレコードが重複コンバートされないようにするため、この文書を参考にしてください。

このアクションボタンにさらにフィールドを追加する必要がある場合は、デザインモードに戻り、「リンクシート」→「データコンバート」をクリックし、ボタン名前をクリックして対応するフィールドを編集または追加することができます。

子テーブルからデータをコンバート

一般フィールドから他のフォーム上の一般フィールドにデータをコンバートするだけでなく、子テーブル上のフィールドから他のフォームにデータをコンバートすることもできます(子テーブルから子テーブル、子テーブルから一般フィールドのいずれか)。

子テーブルのフィールドには複数の値が含まれることがあり(子テーブル上では複数行のデータとして表示される)、コンバートされるとそれらはすべて一緒にコンバートされることに注意してください。 それぞれのデータには異なる子テーブルデータが含まれるので、コンバートする行を指定することはできません。

以下は、子テーブルからのコンバートの2つの状況である。

子テーブルから子テーブルへ:前回の「見積書から受注書へ」の事例で、コンバートボタンを設定すると、見積書の「見積書番号」「見積書宛先」の一般フィールドを受注書の一般フィールドに投げる以外に、「子テーブルから子テーブルへ」の事例を見ることができます。また、見積書の「品目」「商品名」の子テーブルフィールドを、受注書の対応する子テーブルフィールドに投げて、ボタンを1回押せば、コンバートでデータを作成します。

子テーブルから一般フィールドへ:少し状況が違います。 子テーブルにN列のデータがあり、ボタンを1回押すと、対応するフォームにレコードN枚が作成されるとします。 ここでは、その例を挙げて説明します

「見積書」と「商品見積記録書」のフォームがあると仮定して、「見積書」の子テーブルから「商品見積記録書」の一般フォームに情報をコンバートしたいと思います。

「見積書」には、見積書番号のフィールドと、品目、商品名、単価、数量、金額の子テーブルフィールドがあります。

「商品見積記録書 」には、見積書番号、品目、商品名、単価、数量、金額などのフィールドがあります。

見積書フォームのデザインモードに入り、フォームツール>リンクシート>データコンバートで、商品見積記録書フォームにコンバートするフィールドを設定し、「商品見積記録書にコンバート」のアクションボタンを作成し、デザインを保存します。

完成すると、データをコンバートする際に、この見積書は子テーブルの3項目の見積記録が含まれているので、商品見積記録書フォームは自動的に対応レコード3枚を作成します。

高度なコンバート設定-子テーブルのフィルタ条件を適用する

例えば、コンバートのソースに子テーブルフィールドがある場合、条件を満たす子テーブルデータにフィルタを適用することができます。 例えば、見積書が受注書にコンバートされた場合、おそらく顧客は見積書の最後に数点の購入を選択するだけですが、子テーブルに「購入確定」というフィールドがある場合、この設定でフィルタを適用することが可能です。

例えば、以下の図では、当初3つの品目が見積書に記載されていたが、最終的に顧客が購入するのは2つだけであり、子テーブルにはどの2つの品目を購入するかを記録するフィールドも存在する:

元々、受注書フォームに直接コンバートすると、すべての子テーブルデータがコンバートされてしまい、変換後に不要な子テーブルデータを「手動で」削除しなければなりませんでした。 しかし、コンバートアクションボタンの高度設定に子テーブルフィルタを適用することで、これを自動化することができます。

設定された条件に応じて、次の2つの子テーブルデータのみが、コンバートで作成された受注書に使用できます:

高度なコンバート設定-子テーブルのグループ条件を適用する

子テーブルフィールドが一般フィールドにコンバートされる+子テーブルフィールドが子テーブルフィールドにコンバートされる、つまりN個のデータを持つ子テーブルがN枚の別レコードにコンバートされ、それぞれの別レコードに同じN個の子テーブルデータが含まれる、というコンバート設定がされている場合(詳細説明は本章をご覧ください)しかし、子テーブルデータを特定のフィールド値に基づいてN個のグループに分け、グループ分けの結果に基づいて、いくつの別々のデータを生成し、それぞれのデータにいくつの子テーブルデータを含めるかを決定したい場合、この設定で子テーブルグループ条件を適用することが可能です。

販売注文書をコンバートボタンで発注書を作成したい場合、コンバートボタンを一般フィールド→一般フィールド+子テーブルフィールド→子テーブルフィールドに対応するように設計すると、1つの販売注文書を1つの発注書にしかコンバートできません。しかし、実際に販売注文書の各項目について異なる業者から購入している場合、直接コンバートを行うと、購入先の業者の総数に応じて、発注書の業者を「手動」で選択し、その業者に属さないの子テーブル項目を削除する必要があります。

例えば、この販売注文の複数の販売品目が、合計で2つの業者のものである場合:

データコンバートボタンによる高度な設定 - 子テーブルのグループ条件を適用し、グループ化基準として子テーブルに基づいて「業者番号」の一般フィールドにコンバートする:

このように設定すると、2つのベンダーの発注書に直接コンバートでき、それぞれにそのベンダーに属する子テーブル項目が含まれるようになります:

:グループ条件として設定したフィールド値が空白値の場合、デフォルトではグループ化されずにコンバートされないが、グループ化されていないフィールド値もコンバートされたい場合(NULL値が独自のグループを形成する)、"子テーブルグループフィールドに空白値を持つ子テーブルデータもコンバートする"のボックスをチェックしてください。

子テーブルと一般フィールドのコンバート関係

子テーブルフィールドと一般フィールドのデータコンバート関係は下表の通り。

コンバートソース 一般フィールドにコンバート 子テーブルにコンバート
一般フィールドから 可能(対応のレコード一枚を作成) 不可
子テーブルから 可能(対応するN枚のレコードが作成され、Nは子テーブルの行数) 可能(対応のレコード一枚を作成)

説明:一般フィールドはカラムに1つの値しかなく、子テーブルはカラムに複数の値を持つことがあるため、Ragicで一般フィールドから子テーブルフィールドにデータをコンバートすることはできず、システムはブロックします。

アクションボタンの削除と追加設定

アクションボタンの削除については、こちらの文書をご覧ください。

また、アクションボタンの使用権限を制限するなど、アクションボタンに関する追加設定を行いたい場合は、こちらの文書を参照してください。

一番上に戻る 目次

無料でRagicを始める

Googleアカウントに登録