QuantumGrid Master-detail

时间:2013-08-06 12:53:53

标签: delphi master tcxgrid quantumgrid

我有一个QuantumGrid有两个级别(比方说,lvCountries和lvCities)和两个视图(tvCountries和tvCities恭敬)。 两个视图中的所有属性都已正确设置,网格显示应该:

  • 法国
    • 巴黎
    • 马赛
    • 里昂
  • 德国
    • 德累斯顿
    • 汉堡

到目前为止,一切都很好。

但我也有一个编辑表单(由带有主 - 细节网格的表单上的按钮激活)。 我想在此表单上显示一个包含当前详细信息数据的新网格。如果选择了主要形式的法国,则编辑表单应仅在其网格中显示法国城市:

  • 巴黎
  • 马赛
  • 里昂

我将相同的数据源附加到编辑表单的网格,就像我在主窗体中用于详细视图一样,但它显示了来自所有国家/地区的所有城市。

  • 巴黎
  • 马赛
  • 里昂
  • 德累斯顿
  • 汉堡

据我所知,这是因为细节数据不是在他们的数据源中过滤,而是在他们的视图中过滤,数据源显示其数据集中的所有值(顺便说一下,我使用ADODatasets)。

有没有办法只在当前主记录的另一个表单上显示详细数据?

1 个答案:

答案 0 :(得分:2)

向详细信息表单添加属性,该属性设置为所选记录的键值。 e.g。

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

在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;