フィールドリストのマージとマッピング

フィールドリストを LCFieldlistMerge および LCFieldlistMergeVirtual とマージすることにより、フィールドをマッピングできます。マッピングを実行するために、名前ソースとして 1 つ、フィールドおよびデータソースとして 1 つ、計 2 つのフィールドリストを用意します。マージのオプションに応じて、名前ソースの名前とデータソースのフィールドがマッピングされます。さらに、元のフィールドリストの各部分を参照する 3 つ目のフィールドリストが作成されます。仮想フィールドおよび LCFieldlistMergeVirtual を使用すると、データフィールドリストのフィールドのうち指定した仮想コードに一致するものはマッピングから除外され、別の新たな仮想フィールドリストに追加されます。

マッピングおよびマージ

あるフィールドリストを複数のアクションで使用する場合、アクションごとにフィールドの処理方法を変えなければならないこともあります。例えば、特定のオペレーションのコンテキストでのみ、フィールドリストマップのフィールドの順序の変更、名前の変更、および削除を実行するような場合です。このような状況では、次の 4 つのメソッドでマッピングを実行します。

MergeVirtual は Merge のバリエーションで、仮想コードも処理します。これらのメソッドにより、既存のフィールドリストから新しいフィールドリストが作成されますが、両方のフィールドリストから同じフィールドが参照されるため、一連のフィールドへの 2 種類の「マップ」が確立されることになります。この 2 つのフィールドリストを Connector の各種メソッドに渡すと、Connector は異なる順序の異なるフィールドセットであると見なしますが、参照するデータと共通フィールドは同じです。

Map、MapName、および Merge の 3 つのメソッドは、難易度と呼び出し元での制御範囲が異なります。どれを使用するかは、状況に応じて決定します。通常は、要件を満たす最も簡単なメソッドを使用します。これらのメソッドについて簡単なものから順に説明します。

Map は、フィールドリストに含まれる名前が正しく、フィールドの順序を変更したり、削除したりする場合に適しています。このメソッドはフィールドリストおよび名前のテキストリストを受け入れ、新しいフィールドリストには、元のフィールドリストのフィールドがテキストリストに指定された順序で格納されます。さらに、テキストリストに含まれていないフィールドは新しいフィールドリストから除外されます。

MapName は、フィールド名を変更する機能を Map に追加したもので、それ以外は Map と同じです。2 番目の名前のテキストリストを追加することにより、最初のテキストリストの各フィールドが 2 番目のテキストリストの対応するエントリの名前に変更されます。

Merge は、フィールドのリストと名前のリストの 2 つのフィールドリストを受け入れます。さらに、新しく作成されるフィールドリストを詳細に制御する一連のフラグも受け入れます。これらのフラグにより、マップの型、いずれかのフィールドリストからのフィールドの除外を許可するかどうか、および各フィールドフラグの作用を制御します。Merge は使い方が複雑であるため、Map および MapName の機能では不十分な場合にのみ使用してください。