2013-08-06 118 views
1

我有两个级别(让我们说,lvCountries和lvCities)和两个视图(tvCountries和tvCities恭敬地)的QuantumGrid。 在两个视图中的所有属性都设置正确和网格显示,因为它应该:QuantumGrid Master-detail

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

直至目前为止一切都被罚款。

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

  • 巴黎
  • 马赛
  • 里昂

我连着同一数据源编辑形式的网格,我用于主要形式的详细视图,但显示来自所有国家的所有城市。

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

据我了解,这是因为详细数据在他们的数据源没有经过过滤,但在他们看来,并且数据源显示其数据集中的所有值(顺便说一下,我使用ADODatasets)。

有没有办法在另一个窗体上仅显示当前主记录的详细数据?

回答

2

将属性添加到设置为所选记录的键值的详细信息表单中。例如

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; 
+0

谢谢你,你的解决方案是好的。 –

相关问题