QuantumGridのマスター/子プロパティは、主にグリッド内の複数のアイテムをネストするように設計されています。データコンポーネントでリレーションシップを設定すると、コントロールを正しいデータソースに接続するだけで、すべてが機能します。
したがって、2つのDataSetsCustomerとInvoiceがある場合。請求書マスターデータソースは顧客データソースです。次に、編集コントロールで顧客データソースをポイントし、グリッドを請求書データソースにポイントします。
マスター/詳細関係が何をしているのかを考えると、実際には、詳細データセットのレコードをフィルター処理して、マスターデータセットの現在のレコードと一致させます。個々の編集コントロールは、接続されているデータセットの「現在の」レコードを常に表示します。グリッドには、接続されているデータセット内のすべての表示可能なレコードが表示されます。
ここに示すように、編集フォームでマスターと詳細の関係を使用しない傾向があります。別の画面で、編集する請求書を選択する方法があると思います。私は通常、この編集に必要なレコードのみを使用して、必要なデータセットのコピーを作成します。既存の請求書を編集している場合は、現在のレコードをコピーします。新しい請求書の場合は、空のレコードセットから始めることができます。それはもっと手間がかかります-データセット構造をコピーしてから、そのデータセットに1つ以上のレコードをコピーするいくつかの汎用ライブラリ関数があります。設定によっては、データベースを再クエリして、関心のあるレコードを取得することもできます。明らかに、すべての場合に実行する必要はありません。このアプローチのもう1つの問題は、このデータで使用している可能性のある他のデータセット、つまりメインの検索画面を更新する方法が必要なことです。
ただし、編集画面に入ると、作業が簡単になります。これで、トップレベルでのマスターと詳細の関係について心配する必要はありません。請求書に内部のマスター/詳細関係がある場合は、それらを処理できますが、データセットにはこの1つの請求書のデータのみがあり、データベース内のすべてではありません。
フォームの場合、データセット内のデータを制限すると、すべてを直接接続するだけで、期待どおりに機能するはずです。Customer DataSetにはレコードが1つだけあり、請求書にはこの請求書のレコードだけが含まれます。