【问题标题】:Dataset Update Filter Location数据集更新过滤器位置
【发布时间】:2009-01-20 23:44:56
【问题描述】:

这一直困扰着我做以下事情的最佳方式......

使用简单的一对多数据库,当您在一个表单上有 2 个表/网格并且第二个被第一个过滤时。

哪里是放置过滤器代码的最佳位置
即:

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

AfterScroll 似乎大部分时间都在工作,但不会因某些事件而被解雇,例如发布后。通常我会有一个程序来更新过滤器并将它放在似乎需要的地方。

但我想知道是否有更好的方法,这似乎只是 delphi 应该知道的东西......

我认为这并不重要,但我使用 Delphi7 和 NexusDB1

【问题讨论】:

    标签: database delphi delphi-7


    【解决方案1】:

    您应该在“多”端设置 MasterSource 和主字段属性。

    它被称为 Master - Detail 关系,您应该查看 NexusDB 帮助以了解在表之间创建这种关系的方法。

    如果您的表支持索引,那么您可以在 CustomerID 上创建索引并使用 SetRange() 方法。

    你设置Filter的方式是最慢的。

    【讨论】:

    • 我知道必须有更好的方法,Nexusdb 表是从 Tdataset 派生的,所以 MasterSource 和 MasterFields 在那里,我只需要修复一些索引。谢谢你
    猜你喜欢
    • 1970-01-01
    • 2012-07-22
    • 1970-01-01
    • 1970-01-01
    • 2019-11-05
    • 1970-01-01
    • 2018-01-14
    • 2018-10-10
    • 2013-05-04
    相关资源
    最近更新 更多