質問

これは常に、次のことを行うための最良の方法は何かを悩ませてきました...

フォームに2つのテーブル/グリッドがあり、2番目のテーブル/グリッドが最初のフィルタでフィルタリングされている場合、1対多の単純なデータベース。

フィルタコードを配置するのに最適な場所
例:

procedure TForm1.tblCustormersAfterScroll(DataSet: TDataSet);
begin
  if tblCustormersCustormerID.AsString <> '' then
   begin
     tblCustormersThings.Filter := 'CustormerID = ' + tblCustormersCustormerID.AsString;
     tblCustormersThings.Filtered := true;
   end;
end;

AfterScrollはほとんどの場合機能するようですが、投稿後などの一部のイベントで発生しません。通常、フィルターの更新を実行し、必要と思われる場所に配置する手順があります。

しかし、もっと良い方法があるかどうか疑問に思っていました。これは単にデルファイが知っておくべきことのように思えます...

それは重要ではないと思うが、Delphi7とNexusDB1を使用している

役に立ちましたか?

解決

<!> quot; many <!> quot;で MasterSource およびマスターフィールドプロパティを設定する必要があります。側。

これはマスター-詳細リレーションシップと呼ばれます。テーブル間のこのリレーションシップを作成する方法については、NexusDBヘルプで確認する必要があります。

テーブルがインデックスをサポートしている場合、 CustomerID でインデックスを作成し、 SetRange()メソッドも使用できます。

フィルタの設定方法は最も遅いものです。

ライセンス: CC-BY-SA帰属
所属していません StackOverflow
scroll top