我有一个QuantumGrid有两个级别(比方说,lvCountries和lvCities)和两个视图(tvCountries和tvCities恭敬)。 两个视图中的所有属性都已正确设置,网格显示应该:
等
到目前为止,一切都很好。
但我也有一个编辑表单(由带有主 - 细节网格的表单上的按钮激活)。 我想在此表单上显示一个包含当前详细信息数据的新网格。如果选择了主要形式的法国,则编辑表单应仅在其网格中显示法国城市:
我将相同的数据源附加到编辑表单的网格,就像我在主窗体中用于详细视图一样,但它显示了来自所有国家/地区的所有城市。
据我所知,这是因为细节数据不是在他们的数据源中过滤,而是在他们的视图中过滤,数据源显示其数据集中的所有值(顺便说一下,我使用ADODatasets)。
有没有办法只在当前主记录的另一个表单上显示详细数据?
答案 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;