2

販売伝票 (請求書など) を入力するためのユーザー インターフェイスを生成する必要があります。「開発者エクスプレス」のコンポーネント、特に QuantumGrid コンポーネント (TcxGrid) を使用しようとしています。マスター/ディテール コンポーネントのデモと devexpress サポート センターでの検索を見てきましたが、いずれも 2 つのグリッドを使用してマスター/ディテール関係を処理し、一度に複数のレコードを編集するため、役に立ちませんでした。

一度にレコード (ドキュメント) を編集し、ヘッダーとグリッドで一対のオブジェクト データウェア コンポーネント (TDBEdit など) を使用して詳細を処理するだけです。

このようなもの

代替テキスト

これらのコンポーネントをこのように使用する基本的な例はどこにありますか?

4

4 に答える 4

1

QuantumGridのマスター/子プロパティは、主にグリッド内の複数のアイテムをネストするように設計されています。データコンポーネントでリレーションシップを設定すると、コントロールを正しいデータソースに接続するだけで、すべてが機能します。

したがって、2つのDataSetsCustomerとInvoiceがある場合。請求書マスターデータソースは顧客データソースです。次に、編集コントロールで顧客データソースをポイントし、グリッドを請求書データソースにポイントします。

マスター/詳細関係が何をしているのかを考えると、実際には、詳細データセットのレコードをフィルター処理して、マスターデータセットの現在のレコードと一致させます。個々の編集コントロールは、接続されているデータセットの「現在の」レコードを常に表示します。グリッドには、接続されているデータセット内のすべての表示可能なレコードが表示されます。

ここに示すように、編集フォームでマスターと詳細の関係を使用しない傾向があります。別の画面で、編集する請求書を選択する方法があると思います。私は通常、この編集に必要なレコードのみを使用して、必要なデータセットのコピーを作成します。既存の請求書を編集している場合は、現在のレコードをコピーします。新しい請求書の場合は、空のレコードセットから始めることができます。それはもっと手間がかかります-データセット構造をコピーしてから、そのデータセットに1つ以上のレコードをコピーするいくつかの汎用ライブラリ関数があります。設定によっては、データベースを再クエリして、関心のあるレコードを取得することもできます。明らかに、すべての場合に実行する必要はありません。このアプローチのもう1つの問題は、このデータで使用している可能性のある他のデータセット、つまりメインの検索画面を更新する方法が必要なことです。

ただし、編集画面に入ると、作業が簡単になります。これで、トップレベルでのマスターと詳細の関係について心配する必要はありません。請求書に内部のマスター/詳細関係がある場合は、それらを処理できますが、データセットにはこの1つの請求書のデータのみがあり、データベース内のすべてではありません。

フォームの場合、データセット内のデータを制限すると、すべてを直接接続するだけで、期待どおりに機能するはずです。Customer DataSetにはレコードが1つだけあり、請求書にはこの請求書のレコードだけが含まれます。

于 2009-12-19T18:27:31.337 に答える
1

ClientDataSource コンポーネントのマスターと詳細の関係に注意する必要があると思います。グリッドはこの関係に従います。

于 2009-12-18T14:08:52.073 に答える
0

前提は、コンポーネントに関係なく、他のマスターと詳細の関係と同じです。目的を達成するには、データセットレベルでマスター詳細を設定する必要があります。

于 2009-12-21T22:09:21.277 に答える
0

support@devexpress.com でこれを聞いてみませんか?

私が vcl サブスクリプションを持っている理由は、もちろんコンポーネントの品質とは別に、優れたサポート サイトとスタッフがいるからです。

そこで、そのようなものを書いた人に直接尋ねると、彼らは喜んでサンプル プログラムを提供してくれるでしょう (少なくとも、私は長年にわたって多くのサンプルを受け取ってきました)。

于 2009-12-21T15:53:08.743 に答える