1

2 つのレベル (lvCountries と lvCities としましょう) と 2 つのビュー (tvCountries と tvCities を丁重に) を持つ QuantumGrid があります。両方のビューのすべてのプロパティが正しく設定され、グリッドが適切に表示されます。

  • フランス
    • パリ
    • マルセイユ
    • リヨン
  • ドイツ
    • ドレスデン
    • ハンブルク

この瞬間まで、すべてが順調です。

しかし、編集フォームもあります (マスター/詳細グリッドのあるフォームのボタンでアクティブ化されます)。現在の詳細からのデータを含む新しいグリッドをこのフォームに表示したいと思います。メインフォームでフランスが選択されている場合、編集フォームはグリッドにフランスの都市のみを表示する必要があります。

  • パリ
  • マルセイユ
  • リヨン

メインフォームの詳細ビューに使用したのと同じデータソースを編集フォームのグリッドに添付しましたが、すべての国のすべての都市が表示されます。

  • パリ
  • マルセイユ
  • リヨン
  • ドレスデン
  • ハンブルク

私が理解しているように、これは、詳細データがデータソースではなくビューでフィルター処理され、データソースがそのデータセットのすべての値を表示するために発生します (ちなみに、私は ADODatasets を使用しています)。

現在のマスター レコードのみの詳細データを別のフォームに表示する方法はありますか?

4

1 に答える 1

2

選択したレコードのキー値に設定されたプロパティを詳細フォームに追加します。例えば

TFormDetail= Class(TForm)
..
Public
  Property CountryID : String Read FCountryID Write FCountryID;
End;

In FormShow

Procedure TFormDetail.FormShow(Sender : TObject);
Begin
// Add your filter/where clause to CountryID
  End;

FormDetail を呼び出す場合:-

    lFrm := TFormDetail.Create(Nil);
    Try
      lFrm.CountryID := // whatever
      lFrm.ShowModal;
    Finally
      FreeAndNil(lFrm);
    End;
于 2013-08-06T13:28:23.287 に答える