2013-08-06 5 views
1

У меня есть QuantumGrid с двумя уровнями (скажем, lvCountries и lvCities) и двумя видами (tvCountries и tvCities). Все объекты в обоих видах установлены правильно и отображение сетки, как должно:QuantumGrid Master-detail

  • Франция
    • Париж
    • Марсель
    • Лион
  • Германия
    • Дрезден
    • Гамбург

т.д.

До этого момента все было нормально.

Но у меня также есть форма редактирования (активируется кнопкой в ​​форме с сеткой основных деталей). Я бы хотел отобразить на этой форме новую сетку с данными из текущей детали. Если в основной форме Франция выбрана, форма редактирования должна отображаться только французские города в сетке:

  • Париж
  • Марсель
  • Лион

Я прикрепил один и тот же источник данных для редактирования сетки форме как I используется для подробного просмотра в основной форме, но отображает все города из всех стран.

  • Париж
  • Марсель
  • Лион
  • Dresden
  • Hamburg

Как я понимаю, это происходит потому, что подробно данные фильтруются не в их источнике данных, но, по их мнению, и datasource отображает все значения из своего набора данных (кстати, я использую 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

Спасибо, ваше решение в порядке. –